sudoers를 통해 여러 명령에 nopasswd 액세스를 제공하는 방법은 무엇입니까?


45

아래는 내가 아는 것입니다.

sudoers특정 작업에 대해 사용자에게 권한을 부여하려면 파일에 아래 행을 추가해야합니다 .

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

이 경우 모든 설치 권한으로 2 개의 서비스 (예 : ApacheMySQL) 를 다시 시작할 수 있도록이 사용자에게 액세스 권한을 부여하려고합니다 .

위의 줄을 사용하여 그에게 모든 설치 권한을 부여했습니다. 이제 서비스에 대한 권한을 부여하기 위해 동일한 줄을 두 번 더 추가해야합니까? 아니면 쉼표 또는 다른 것으로 구분하여 동일한 줄에 해당 명령을 추가 할 수 있습니까?

답변:


48

제한된 관리자 권한에 대한 새 그룹을 만들어 문제를 해결했습니다 ... 그 그룹의 이름은 그 LimitedAdminssudoers파일을 다음과 같이 업데이트했습니다 .

내가 추가 한 줄은 다음과 같습니다.

%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

@hamstar 안녕하세요! 예, 맞습니다.이 회사 에서이 구성 파일을 2 년 이상 사용해 왔으며 완벽하게 작동합니다. 심지어 마지막 두 줄을 앞에 두는 것이 좋습니다 #includedir.
Hrish

3
또는 / etc / sudoers를 편집하는 대신이 두 줄을 /etc/sudoers.d의 새 파일에 넣으십시오.
tgharold

@tgharold 네 친구! 당신이 옳습니다 ... 그것은 내가 제안한 것보다 정말로 더 나은 옵션입니다 ... :) 당신의 아이디어가 내 자리에서 구현하려고 시도 할 것입니다.
Hrish

#includedir은 주석입니까? 또는 포함이 자동으로 발생하고 주석이 그 사실을 상기시켜줍니다.
HeatfanJohn

12

쉼표가 필요한 것 같습니다.

Cmnd_Alias ​​PRINTING = / usr / sbin / lpc, / usr / bin / lprm
...
user3 ALL = 인쇄

출처


나는 당신이 언급 한대로 권리를 부여했지만 다음과 같은 오류 메시지가 나타납니다. <br/> E : 잠금 파일 / var / lib / dpkg / lock을 열 수 없음-열림 (13 : 권한 거부) <br/> E : 관리 디렉토리 (/ var / lib / dpkg /)를 잠글 수 없습니다. 당신은 뿌리? ... 누구든지 이것에 대해 도울 수 있습니까?
Hrish

@Rishee 집에 도착하면 한번 시도하겠습니다
Karthik T

내 sudores 파일에는 다음과 같은 것들이 포함되어 있습니다.
Hrish

# 사용자 권한 사양 root ALL = (ALL : ALL) ALL # 관리자 그룹의 구성원은 루트 권한을 얻을 수 있습니다 % 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 설치, / etc /init.d/apache2 restart
2013 년

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.