sudo를 사용하지 않고 루트가 아닌 계정에서 루트가 필요한 스크립트 포함 명령을 실행하고 싶습니다.
/usr/local/bin/dodo
#!/bin/bash
/bin/sync && /usr/sbin/pm-suspend-hybrid
내가 한 일은 루트로 만들고 SUID 비트를 설정한 것뿐입니다.
chown root:root /usr/local/bin/dodo
chmod a+xrs /usr/local/bin/dodo
하지만 실행하려고 하면 결과는 다음과 같습니다.
$ /usr/local/bin/dodo
This utility may only be run by the root user.
또한 파일을 추가하여 sudoer 솔루션을 시도했습니다 /etc/sudoers.d/dodo
.
%family ALL = (root) NOPASSWD: /usr/local/bin/dodo
내 기억이 맞다면 그룹 패밀리의 사용자는 비밀번호 없이 루트로 dodo를 실행할 수 있는 권한을 받아야 합니다. 그러나 결과는 같습니다.
내가 무엇을 놓치고 있는지 말해주세요. 저는 데비안을 사용하고 있습니다 Jessie
편집: 마지막 경우에는 sudo dodo
비밀번호 없이 작동합니다.
답변1
AlexP의 링크와 다른 답변으로 판단하면 다음과 같이 작동합니다.
cat /usr/local/bin/dodo
#!/bin/bash
/bin/sync
exec sudo /usr/sbin/pm-suspend-hybrid
_
ls -l /usr/local/bin/dodo
-rwxr-xr-x 1 laurent family 60 déc. 18 17:47 /usr/local/bin/dodo
_
cat /etc/sudoers.d/dodo
%family ALL = (root) NOPASSWD: /usr/sbin/pm-suspend-hybrid
그런 다음 홈 그룹의 모든 사람에 대해 다음을 수행하십시오.
dodo
비밀번호나 sudo 없이 동기화 및 pm-suspens-hybrid를 수행할 수 있습니다.