web-dev-qa-db-ja.com

特定のゲストに特定のコマンドの実行を許可する

コマンドapt-get updateおよびapt-get dist-upgradeを使用してサーバーを更新できるDebian/Ubuntuホストの一部に新しいユーザーを作成したいのですが、完全なSudoを提供したくありません他に何でもできるアクセス。これは可能ですか?おそらく、編集はできないが実行できるスクリプトを作成する方法があります。これは、rootユーザーとして実行されます。

20
Programster

Sudoおよび/etc/sudoersファイルは、ユーザーに完全なrootアクセスを許可するためだけのものではありません。

コマンドSudo visudoを使用して、既存のSudoユーザーでsudoersファイルを編集できます。

次のように、アクセスを許可するコマンドをグループ化できます。

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get

次に、これらのコマンドに次のように特定のユーザー特権を与えることができます。

[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS

これは下の画像で見ることができますenter image description here

Sudo apt-get updateまたはSudo apt-get dist-upgradeを試してみると、パスワードを要求せずにこれらのコマンドが実行されます。パスワードの入力を求められるようにするには、コマンドグループへのユーザーアクセスを許可しているNOPASSWDビットを削除します。

Sudoユーザーとして他のものを実行しようとすると、パスワードの入力を求められ、失敗します。

参考文献

33
Programster