1. ホーム
  2. bash

[解決済み] Cygwinでrootユーザ/sudoに相当しますか?

2022-04-23 12:30:05

質問

Cygwinでbashスクリプトを実行しようとしています。

次のようになります。 Must run as root, i.e. sudo ./scriptname のエラーが発生します。

chmod 777 scriptname は何の役にも立ちません。

Cygwinでsudoを真似てrootユーザーを追加する方法を探しましたが、"su"を呼び出すとエラーになります。 su: user root does not exist とか、何か役に立つことはないかと考えていましたが、何も見つかりませんでした。

どなたか、ご意見をお聞かせください。

解決方法は?

この質問に対する回答は スーパーユーザー しかし、OPがその質問に対する唯一の答えであった役に立たない答えを無視した後にのみ、その質問に答えることができました。

Cygwinでパーミッションを昇格させる正しい方法は、SuperUserでの私自身の回答からコピーしたものです。

に答えがありました。 Cygwinメーリングリスト . 実行するには command Cygwinで昇格した特権でコマンドを実行するには、コマンドの前に cygstart --action=runas のようにします。

$ cygstart --action=runas command

管理者パスワードを求めるWindowsのダイアログボックスが表示され、適切なパスワードが入力されるとコマンドが実行されます。

これは簡単にスクリプト化できます。 ~/bin がパスに入っています。ファイルを作成する ~/bin/sudo を以下の内容で作成します。

#!/usr/bin/bash
cygstart --action=runas "$@"

ここで、このファイルを実行可能な状態にします。

$ chmod +x ~/bin/sudo

でコマンドを実行できるようになりました。 昇格した特権を持つ :

$ sudo elevatedCommand

を追加する必要があるかもしれません。 ~/bin をパスに追加してください。Cygwin CLIで以下のコマンドを実行するか、または、以下のように追加します。 ~/.bashrc :

$ PATH=$HOME/bin:$PATH

64bit版Windows 8で動作確認済み。

また、上記の手順の代わりに、このコマンドのエイリアスを以下の場所に追加することもできます。 ~/.bashrc :

# alias to simulate sudo
alias sudo='cygstart --action=runas'