たとえば、に追加した行の場合/etc/sudoers
:
t ALL=(ALL) NOPASSWD: /path/to/myscript
/path/to
PATH
現在のユーザーにはありますが、にはt
ありません。PATH
root
$ sudo /path/to/myscript
パスワードなしで動作しますが、run scriptを使用するたびにスクリプトのパス名を指定する必要がありますかsudo
?
$ sudo myscript
[sudo] password for t:
sudo: changeCpuFreq.sh: command not found
のmyscript
パスがのパスではないため、パスワードを使用しても機能しません。PATH
root
$ sudo -E env "PATH=$PATH" myscript
[sudo] password for t:
PATH
がt
にコピーされたため、パスワードを使用できますが、root
問題はまだパスワードが必要なことです。
ありがとうございます。
答え1
ただし、sudoers自体ではフルパス名を定義する必要はありません。しなければならないセキュリティ上の理由からこれを行います。
それ以外の場合は、root権限を取得するのはかなり簡単です。その他同じ名前のバイナリファイルプレスト楽章、即時ルート権限。
答え2
あなたはカスタマイズすることができますSudo編集者/etc/sudoers
。/etc/sudoers.d/*
警告する! ! !もしあなたの根アカウントが無効になっています。ビジュドはい強く編集の提案Sudo構成。
sudoer のさまざまな検索パスを以下に定義します。私のユーザー:
Defaults:myuser secure_path="/path/to:/usr/sbin:/usr/bin:/sbin:/bin"
以下は、sudoを実行するときにさまざまな検索パスを定義します。根
Defaults>root secure_path="/path/to:/usr/sbin:/usr/bin:/sbin:/bin"
/path/to/myscript
以下は、呼び出し時に他の検索パスのみを定義します。Sudo:
Defaults!/path/to/myscript secure_path="/path/to:/usr/sbin:/usr/bin:/sbin:/bin"
上記のエントリはすべて「NOPASSWD」ルールとよく統合されており、呼び出し時にパスプレフィックスは必要ありませんsudo myscript
。