Cygwin を使用して Windows マシン上で Linux スクリプトを実行しようとしています。
私はすでに解決策を読んで試しましたCygwinには「sudo」コマンドはありません、何の成功もありませんでした。
通常の Linux 環境で sudo を使用するスクリプトがあります。しかし、cygwin でスクリプトを実行すると、次のエラー メッセージが表示されます。
project_common.sh: line 604: sudo: command not found
Cygwin には sudo がないことはわかっていますが、前述の参照質問では以下を使用するように言われています。
>#!/usr/bin/bash
>"$@"
スクリプトを実行する前にそのコマンドを実行してみました。また、スクリプトにコマンドを埋め込むことも試しました。どちらも役に立ちませんでした。何が足りないのかわかりません。
答え1
sudo
ファイル内の 's をすべて削除し、管理者としてスクリプトを実行します。
そうは言っても、Linux の Administrator の考え方root
と Windows の Administrator の考え方は正確には一致しません。特に Windows Vista/7 では、手動で修正するか、スクリプトをさらに変更して修正する必要がある権限の問題がまだある可能性があります。
ちなみに、参照された質問では、
>#!/usr/bin/bash
>"$@"
という名前のファイルに を実行してsudo
、 で実行権限を与え、などchmod
の 内のディレクトリに配置します。作成されたファイルは、コマンドとして指定したパラメータを実行する以外は何も行いません。何も行わない「偽の」sudo を作成するのが目的でした。ファイルから を削除することもできます。$PATH
/sbin
sudo
答え2
これを試して:
#!/usr/bin/env bash
cygstart --action=runas "$@"
sudoと同様に動作しますが、欠点はUACダイアログを手動で確認する必要があることです。このスクリプトは私のドットレポ。
答え3
他の回答もありますスタックオーバーフローそしてスーパーユーザーこれは、Cygwin プロンプトから昇格された権限でコマンドを実行する方法を示しています。エイリアスを使用しています:
alias sudo="cygstart --action=runas"
外部プログラム(ただし、シェル組み込みではない)には魅力的に機能します。
sudo chown User:Group <file>