ユーザー(この場合はtest
)がsudoers
ファイルを使用してapt-get update
コマンドのみを実行できるようにする方法がわかりません。ユーザーを追加してテストしようとすると、ユーザーはコマンドを実行できません。
誰かが私を助けてくれますか?私はこれを一日中研究してきましたが、まだ理解できません。私はおそらく間違った何かを入力しています。
Ubuntu 14.04を使用しています。
Andre Herman Bezerraの答えを見て、これに関する唯一の問題は、このしないでくださいコメントで指摘されていますユーザーを更新のみに制限します(パッケージをインストール/削除できます)。
ユーザーが更新のみできるように制限したい場合は、次の方法をお勧めします。
グループを作成するか、%staff
グループを使用します。
この例では、staffユーザーグループを使用することを選択しています。
sudoers
ドキュメントを更新します。
export editor="vi" && Sudo visudo
bash スクリプトを定義するCmnd_Alias
を作成します。
Cmnd_Alias UPDATER_ONLY = /usr/local/bin/updater.sh
このコマンドを許可する方法を定義する必要があります。
# Require staff to enter password when updating.
%staff ALL= UPDATER_ONLY
# Or, password is not required, just run the updater.
%staff ALL= NOPASSWD: UPDATER_ONLY
最後に、シェルを作成する必要があります。
ファイルの編集を禁止するには、これはルートおよび読み取り専用が所有するか、実行中に作成する必要がありますSudo。
$ Sudo echo '#!/bin/bash' >> /usr/local/bin/updater.sh
$ Sudo echo 'Sudo apt-get update && Sudo apt-get upgrade -y' >> /usr/local/bin/updater.sh
$ Sudo chmod 0755 /usr/local/bin/updater.sh
これは次のようになります。
$ ls -la /usr/local/bin/updater.sh
-rwxr-xr-x 1 root root 60 Jan 22 08:50 /usr/local/bin/updater.sh*
ほぼ完了です!
ユーザーをスタッフグループに追加して、この特権を許可することを忘れないでください。
Sudo usermod -aG staff the-user
誰かが何かをインストールしようとすると、これは彼らが受け取るものです:
test-me@comp0:~$ Sudo apt-get install test
[Sudo] password for test-me:
Sorry, user test-me is not allowed to execute '/usr/bin/apt-get install test' as root on comp0.
まず、/etc/sudoers
をvisudo
のみで編集します
次の行を追加するだけで、ユーザーjoe
for apt-get
コマンドにアクセス許可を設定できます。
%joe your_hostname=(root):/usr/bin/apt-get
joe
としてログインすると、権限を確認できます。
Sudo -l
編集:ユーザーは、apt-getの更新、アップグレード、インストールなどを使用できます。これらはapt-getコマンドの単なるフラグであるためです。