사용자에게 일부 루트 권한(특히 Apache 파일 및 명령)을 부여하는 가장 좋은 방법

사용자에게 일부 루트 권한(특히 Apache 파일 및 명령)을 부여하는 가장 좋은 방법

나는 쉘 스크립트를 작성했습니다(이것) 새 웹사이트 프로젝트를 시작합니다. 이는 사용자에 의해 실행되어야 합니다(그 사용자가 바로 나이기 때문에 루트 권한이 있는지 여부는 중요하지 않습니다).

보시다시피 사용자는 다음을 수행할 수 있어야 합니다.

  1. 편집하다 /etc/hosts;
  2. 에 새 파일을 추가합니다 /etc/apache2/sites-available/.
  3. /var/www/에 새 디렉터리(ln 포함)를 만듭니다.
  4. 주문 a2ensite실행
  5. 주문 service apache2 reload실행

이러한 모든 작업은 루트로 수행되어야 합니다. 그런데 일반 사용자에게 이런 권한을 부여하는 것이 가능한가요? 이렇게 하려면 파일의 소유자나 사용자 그룹 또는 둘 다를 변경해야 하며 어떻게 해야 합니까?

답변1

이는 일반적으로 sudo. 최신 시스템에서는 파일을 추가하여 /etc/sudoers.d새 권한을 추가할 수 있습니다.

# Rules for running am apache script.
User_Alias APACHE = yourUser
Cmnd_Alias APACHE = /usr/local/sbin/your_script
APACHE ALL = NOPASSWD: APACHE 

귀하는 사용자이기 때문에 /etc/sudoers관리자용으로 정의된 그룹에 귀하의 계정을 추가할 수 있습니다. Debian 또는 Ubuntu 시스템에서는 입니다 admin. 다른 배포판에서는 다른 값을 사용합니다. 이것은 관리자 그룹에 대한 Ubuntu의 정의입니다.

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

sudo자세한 매뉴얼 페이지가 함께 제공됩니다. sudo, sudoers및 에 대한 매뉴얼 페이지를 확인해 보세요 visudo. 매뉴얼 페이지를 색인화한 경우 명령을 사용하여 sudo 관련 매뉴얼 페이지 목록을 얻을 수 있습니다 man -k sudo.

관련 정보