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


19

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


2
man sudoersおよびを参照してくださいsudo cat /etc/sudoers
goldilocks

@goldilocksに感謝します。sudoersファイルは、以前はrootアクセスを許可するためだけのものだといつも思っていました。
Programster

回答:


30

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

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

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

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

これは以下の画像で見ることができますここに画像の説明を入力してください

今、あなたがしようとするとsudo apt-get updatesudo apt-get dist-upgradeそれらのコマンドはパスワードを要求せずに実行されます。パスワードの入力を求められる場合はNOPASSWD、コマンドグループへのユーザーアクセスを許可するビットを削除します。

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

参照資料


6
ユーザーに実行許可を与えるapt-getだけでなくapt-get upgrade完全なルートアクセスを与えることに注意してください。多くのアップグレードスクリプトでは、たとえば、構成ファイルが変更された場合に、対話型ユーザーがシェルを実行できます。安全のために、apt-get特定のコマンドに制限し、強制的に非対話的にします。とのパスワードなしのsudoをsshユーザーに与えることは安全ですか?をapt-get updateapt-get upgrade
ジル 'SO-悪であるのをやめる'

私の場合、私は後にラインを配置する必要がありました%sudo ...
アレクセイ

コマンドラインからそれを行う方法はありますか?
カミルジェジチ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.