回答:
NOPASSWDディレクティブを使用するファイルでNOPASSWDディレクティブを使用でき/etc/sudoersます。
ユーザーが呼び出さuserれ、ホストが呼び出されたhost場合、次の行を追加できます/etc/sudoers。
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
これにより、ユーザーはパスワードを入力せずにuser目的のコマンドを実行できhostます。他のすべてのsudoedコマンドには、引き続きパスワードが必要です。
sudoersファイルで指定されたコマンドは、manページで説明されているように、完全に修飾されている(つまり、実行するコマンドへの絶対パスを使用している)必要がありsudoersます。相対パスを指定すると、構文エラーと見なされます。
コマンドが末尾の/文字で終了し、ディレクトリを指している場合、ユーザーはそのディレクトリ内のコマンドを実行できます(ただし、サブディレクトリ内のコマンドは実行できません)。次の例では、ユーザーuserはディレクトリ内の任意のコマンドを実行できます/home/someuser/bin/。
user host = (root) NOPASSWD: /home/someuser/bin/
注意:必ず、コマンドを使用しvisudo編集することsudoersは、システムの外に自分自身をロックしないことを確認するためにファイルを-念のためにあなたが偶然に間違って何か書きsudoersファイルを。visudo変更されたファイルを一時的な場所に保存し、変更されたファイルをエラーなしで解析できる場合にのみ、実際のsudoersファイルを上書きします。
/etc/sudoers.d変更する代わりに使用する/etc/sudoers/etc/sudoersファイルを編集する代わりに、/etc/sudoers.dたとえばの新しいファイルに2行を追加できます/etc/sudoers.d/shutdown。これは、sudo権利に対するさまざまな変更を分離するエレガントな方法であり、sudoersアップグレードを容易にするために元のファイルをそのまま残します。
注:繰り返しますが、コマンドvisudoを使用してファイルを編集し、システムからロックアウトされないようにする必要があります。
sudo visudo -f /etc/sudoers.d/shutdown
また、これにより、新しいファイルの所有者と権限が正しく設定されます。
sudoers混乱した場合visudoファイルの編集に使用せずに誤ってファイルを台無しにし/etc/sudoersたり、ファイルを台無しにした/etc/sudoers.d場合、ロックアウトされsudoます。
解決策pkexecは、を使用してファイルを修正することですsudo。
修正するには/etc/sudoers:
pkexec visudo
修正するには/etc/sudoers.d/shutdown:
pkexec visudo -f /etc/sudoers.d/shutdown
いずれかのsudoersファイルの所有権やアクセス権が正しくない場合、ファイルは無視されるsudoため、この状況でロックアウトされる可能性があります。繰り返しますが、pkexecこれを修正するために使用できます。
正しい許可は次のようになります。
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
次のpkexecように使用して、所有権と権限を修正します。
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown
user他の方法でsudo権限が付与されていない場合、このユーザーは他のコマンドをsudoできません。見ているman sudoとman sudoers。
mgd ALL=(root) NOPASSWD: /var/root/test。私はユーザーでmgdあり、「すべてのホストから」ALLという意味です。は、アクセス許可を持つ単純な「Hello World」シェルスクリプトです。私はシステムに他の変更を加えませんでした。/var/root/test-rwx------ 1 root wheel 27 12 Jun 09:54 /var/root/test
hostsudoersファイルには何が含まれていますか?