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


45

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

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

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

この場合、このユーザーにアクセスを許可して、すべてのインストール権限で2つのサービス(ApacheおよびMySQL)を再起動します。

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

回答:


48

制限された管理者権限のために新しいグループを作成することで問題を解決しました...そのグループの名前は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

システムがドメインであるかどうかに関係なく、完全に機能します。


あなたは#includedirラインの後に物を置くことになっていない?
ハムスター

@hamstarこんにちは はい、あなたは正しいです、あなたは私が今2年以上私の会社でこの設定ファイルを使用しており、それは完全に正常に動作します。最後の2行を前に置くことをお勧めし#includedirます。
Hrish

3
または、/ etc / sudoersを編集する代わりに、これらの2行を/etc/sudoers.dの下の新しいファイルに入れてください。
tgharold

@tgharoldはい相棒!! あなたは正しいです...それは本当に私が提案したものよりも良いオプションです... :)あなたのアイデアが私の場所でも実装しようとすることを感謝してください。
13

#includedirはコメントですか?または、インクルードは自動的に行われ、コメントはそれを思い出させますか?
HeatfanJohn 14

12

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

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

ソース


あなたが言及した方法で権利を与えましたが、以下のエラーメッセージが表示されました。<br/> E:ロックファイル/ var / lib / dpkg / lockを開けませんでした-開く(13:許可が拒否されました)<br/> E:管理ディレクトリ(/ var / lib / dpkg /)をロックできません。あなたはルート?...誰でもこれを助けることができますか?
ハリッシュします。

私は家に帰ったら@Rishee私がしようとします
カルティクT

私のsudoresファイルには以下のものが含まれています。
ハリッシュします。

#ユーザー権限の指定root ALL =(ALL:ALL)ALL#adminグループのメンバーはルート権限を取得できる%admin ALL =(ALL)ALL#グループsudoのメンバーにコマンドの実行を許可%sudo ALL =(ALL:ALL) ALL #includedir /etc/sudoers.d $ sudo nano / etc / sudoers%Domain_Name \\ administrators ALL =(ALL)ALL%Domain_Name \\ user.name ALL = NOPASSWD:/ usr / bin / apt-get install、/ etc /init.d/apache2 restart
Hrish

2

私がやったことは(あなたが探しているものに似ています):

## 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はあなたが知っているWindowsベースの監視ツールです)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.