web-dev-qa-db-ja.com

sudoersを介して複数のコマンドにnopasswdアクセスを与える方法

以下は私が知っていることです:

特定のタスクの権限をユーザーに付与するには、sudoersファイルの行の下にこれを追加する必要があります。

user_name ALL=NOPASSWD: /usr/bin/apt-get install

この場合、このユーザーにアクセス権を付与して、すべてのインストール権限で2つのサービス(つまり、ApacheMySQL)を再起動します。

上記の行を使用して、私は彼にすべてのインストール権を与えましたが、サービスの権利を与えるために同じ行をさらに2回追加する必要がありますか?または、これらのコマンドをカンマなどで区切って同じ行に追加できますか?

44
Hrish

制限された管理者権限の新しいグループを作成することで問題を解決しました...そのグループの名前はLimitedAdminsです。その後、sudoersファイルを以下のように更新しました。

追加した行は次のとおりです。

%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/Apache2 restart

これは完全な/etc/sudoersファイルです:

# This file MUST be edited with the 'visudo' command as root.    
#   
# Please consider adding local content in /etc/sudoers.d/ instead of directly modifying   his file.   
#   
# See the man page for details on how to write a sudoers file.  
# 
Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group Sudo to execute any command
%Sudo   ALL=(ALL:ALL) ALL  

#includedir /etc/sudoers.d
%domain_name\\administrators ALL=(ALL) ALL
%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/Apache2 restart

システムがドメインであるかどうかにかかわらず、完全に機能します。

46
Hrish

カンマが必要なようです。

Cmnd_Alias PRINTING =/usr/sbin/lpc、/ usr/bin/lprm
...
user3 ALL =印刷

ソース

11
Karthik T

私がやったことは、あなたが探しているものと同様です:

## PRTG monitoring
Cmnd_Alias PRTG = /bin/cat /proc/loadavg, /bin/df, /var/prtg/scripts/check_proc.sh
prtg ALL = NOPASSWD: PRTG

内部:/etc/sudoers.d/666-prtg

(666、なぜなら...まあ... prtg ISあなたが知っているWindowsベースの監視ツール)

2
Mark Maas