![sudoersファイルの変更は機能しませんか? [コピー]](https://linux33.com/image/173848/sudoers%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%A4%89%E6%9B%B4%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
sudo shutdown -h now
私はUbuntu 18.04LTSを使用しており、sudoersファイルをパスワードなしで実行するように変更したいと思います(for my_username
)。私が取ったアクションは次のとおりです。
私のユーザーはmy_username
端末を開きます。
sudo visudo
私が追加した行は次のとおりです。
my_username ALL=(ALL) NOPASSWD: /sbin/shutdown
最初の部分(ユーザーとALLの間)にはタブ文字が1つだけ、残りはスペースです。ユーザーはid
端末に表示されるユーザーです。その後、システムを再起動して入力しましたが、引き続きsudo shutdown -h now
パスワードを要求することがありました。
私は何が間違っていましたか?
- - -編集する - - -
まあ、行を追加する順序が重要かどうかわからなかったので、要求に応じてファイル全体を追加しました(非常に単純なsudoers構成でした)。
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# 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:
my_username ALL=(ALL) NOPASSWD: /sbin/shutdown
#includedir /etc/sudoers.d
この方法は私にとって本当にうまくいきます。問題は、この行をルート行の後に追加したことです。
答え1
sudoersのマニュアルページ(男 5 sudoers)が言及された
複数の項目がユーザーと一致する場合は、順次適用されます。一致する項目が複数ある場合は、最後の項目が使用されます(最も具体的なものである必要はありません)。
したがって、構成が具体的であるかどうかは重要ではない。
sudoers
また、グループ(wheel
Red Hatベースのディストリビューションなど)がある場合は、次の行を検討してください。
%wheel ALL=(ALL) ALL
前にする必要がありますNOPASSWD
答え2
構成
my_username ALL=(ALL) NOPASSWD: /sbin/shutdown
ユーザーが引数を使用または使用せずにパスワードを指定せずにmy_username
実行できるようにします。ただし、必ず使用する必要があり、単に選択する実行可能ファイルはその内容によって異なります。/sbin/shutdown
/sbin/shutdown
shutdown
$PATH