루트 사용자로부터 /root/script.sh 파일을 실행할 수있는 권한을 다른 사용자에게 부여하려면 어떻게해야합니까?
아이디어는 다음과 같이 스크립트를 실행하는 것입니다 sudo -u user1 /root/script.sh
답변
나는 결코 좋아하지 않는다고 말해야합니다 sudo
(특히 그 구성). 평범한 옛날 su
:
su -c 'command' - user
루트에서 실행되면 암호를 묻지 않습니다.
답변
사용자는 가지고 있어야합니다
-
전체 디렉토리 경로에 대한 실행 권한 (여기서
/root
만) -
파일에 대한 실행 권한
-
파일에 대한 읽기 권한
/root
이 목적 을 위해 손대지 않고 다른 디렉토리를 작성 (또는 사용) 하는 것이 좋습니다 (예 🙂 /usr/local/bin
. user1
스크립트를 파일의 소유자로 지정하거나 root
소유자 및 그룹으로 남겨 두어 단순 액세스 권한 ( chmod
)을 설정 770
하고 user1
ACL ( setfacl
)로 추가 하여 스크립트를 실행할 수 있는 유일한 사용자를 만들 수 있습니다 .
답변
스크립트가 루트 디렉토리에 있으면
$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar 5 20:14 /root
user1
루트 만 될 수 있습니다.
귀하의 /etc/sudoers
항목은 같은 모양
Cmnd_Alias SCRIPT=/root/script.sh
# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT
일반적으로 파일을 편집합니다 visudo
당신은 또한 -u root
당신의 sudo
명령 에 넣을 필요가 없습니다 .
는 %
사용자 그룹을 의미한다. 당신이 그것을 떠나면 사용자 만이 명령을 실행할 수 있습니다. 사용자 그룹이 실행하도록하려면 그대로 두십시오.