~/bin$ cat setbrightness
id
echo $1 > /sys/class/backlight/intel_backlight/brightness
~/bin$ whoami
rag
~/bin$ sudo -l
Matching Defaults entries for rag on this host:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User rag may run the following commands on this host:
(root) NOPASSWD: /home/rag/bin/setbrightness
(ALL : ALL) ALL
編集: /etc/sudoers
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
Cmnd_Alias SETBRIGHTNESS = /home/rag/bin/setbrightness
# User privilege specification
root ALL=(ALL:ALL) ALL
rag ALL=NOPASSWD:SETBRIGHTNESS
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
コマンドの実行
~/bin$ sudo /home/rag/bin/setbrightness 3000
[sudo] password for rag:
sudo
このコマンドを実行したときにパスワードの入力を求める理由を指摘できる人はいますか?
答え1
順序は次のとおりです。以下を使用して sudoers ファイルをコピーする場合:
Cmnd_Alias TESTCOMM = /bin/more
root ALL=(ALL:ALL) ALL
dave ALL=NOPASSWD:TESTCOMM
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
sudo をさらに実行するには、sudo と同様に、パスワードが必要な場合と同じ動作が発生します。
しかし...
Cmnd_Alias TESTCOMM = /bin/more
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
dave ALL=NOPASSWD:TESTCOMM
パスワードなしでもっと使いましょう。別のものをリクエストしてください。
私はこれがsudoのチェック順序(下から上へ)のためだと思います。
答え2
sudoersファイルをどのように編集しましたか? sudoersファイルが有効であることを確認するには、常にこのvisudo
コマンドを使用してsudoersファイルを直接編集しないでください。こんな状況の一つのようです。