나는 쉘 스크립트를 작성했습니다(이것) 새 웹사이트 프로젝트를 시작합니다. 이는 사용자에 의해 실행되어야 합니다(그 사용자가 바로 나이기 때문에 루트 권한이 있는지 여부는 중요하지 않습니다).
보시다시피 사용자는 다음을 수행할 수 있어야 합니다.
- 편집하다
/etc/hosts
; - 에 새 파일을 추가합니다
/etc/apache2/sites-available/
. /var/www/
에 새 디렉터리(ln 포함)를 만듭니다.- 주문
a2ensite
실행 - 주문
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
.