특정 명령에만 sudo 액세스 권한을 부여 할 수 있습니까?


24

배경 : LAMP가 설정된 개발 머신이 있습니다. 여러 개발자가 때때로 컴퓨터에 액세스합니다. 그들이 구성 파일에 일부 변경을 할 때마다 그들이 사용하는 아파치 서버를 다시 시작해야합니다 sudo service apache restart또는sudo /etc/init.d/apache2 restart

질문:

내가 지금 원하는 것은 머신에 액세스하는 모든 개발자가 모든 것에 대해 sudo 액세스 권한을 갖지 않는다는 것입니다. 오히려 servicesudo 만 사용 하여 명령 을 실행할 수 있어야합니다 . 그렇게 할 수 있습니까?

답변:


35

예.

새로운 그룹, 웹 만들기 (원하는 것으로 부르십시오)

sudo addgroup web

웹 그룹에 개발자를 추가하십시오 (로그인 이름 사용).

sudo adduser your_developer_user web

그런 다음을 실행하십시오 sudo visudo -f /etc/sudoers.d/somefile(대신에 의미있는 이름 사용 somefile).

행을 추가하십시오 (명령의 전체 경로 사용).

%web ALL=(ALL) /usr/bin/service apache2 *

그런 다음 개발자는

sudo service apache

로그인 비밀번호를 사용합니다.

웹 그룹에 관리자를 추가하지 마십시오.

추가 정보는 man sudoers 를 참조하십시오


1
@Ankit : web그룹 의 사용자가 모든 서비스를 시작 / 중지 할 수 있는 방식 이며, 이것이 원하는 것이 아닙니다. 해결책은에 정확한 명령 (및 매개 변수 포함)을 넣어야합니다 /etc/sudoers.
enzotib

@enzotib 내가 새로운 명령이 될 수 있도록 그렇게 할 수 /usr/bin/service apache2있습니까?
Ankit

3
@Ankit :/usr/bin/service apache2 *
enzotib

이것은 아마도 아마/usr/sbin/service
Erfan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.