回答:
NOPASSWD
ディレクティブを使用するファイルでNOPASSWD
ディレクティブを使用でき/etc/sudoers
ます。
ユーザーが呼び出さuser
れ、ホストが呼び出されたhost
場合、次の行を追加できます/etc/sudoers
。
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
これにより、ユーザーはパスワードを入力せずにuser
目的のコマンドを実行できhost
ます。他のすべてのsudo
edコマンドには、引き続きパスワードが必要です。
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
host
sudoersファイルには何が含まれていますか?