태그 보관물: bash

bash

암호없이 다른 사용자로 스크립트를 실행하는 방법은 무엇입니까?

user2로 실행해야하는 script.sh가 있습니다. 그러나이 스크립트는 내 응용 프로그램의 user1에서만 실행할 수 있습니다.

다음 명령을 실행하고 싶습니다.

su user2 -C script.sh

암호없이 실행할 수 있습니다.

또한 user1에서는 user2에서만 script.sh를 실행할 수 있기 때문에 매우 제한적이기를 원합니다.

sudoers 파일 로이 작업을 시도했지만 몇 시간 동안 노력한 끝에 끝없이 혼란스러워졌습니다.

누군가 sudoers와 같은 일반적인 것이 아니라 어떻게 이것이 달성 될 수 있는지에 대한 명확한 예를 제공 할 수 있다면 크게 감사하겠습니다.



답변

전화 visudo해서 이것을 추가하십시오 :

user1 ALL=(user2) NOPASSWD: /home/user2/bin/test.sh

명령 경로는 절대해야합니다 ! 그런 다음 껍질 sudo -u user2 /home/user2/bin/test.sh에서 전화하십시오 user1. 끝난.


답변

달리기를 시도하십시오.

su -c "Your command right here" -s /bin/sh username

해당 사용자로 sudo 권한이있는 경우 명령이 username으로 실행됩니다.


답변

`su -c "Your command right here" -s /bin/sh username`

위의 명령은 정확하지만 selinux가 적용되는 경우 Red Hat에서는 cron이 다른 사용자로 스크립트를 실행할 수 없습니다. 예;
execl: couldn't exec /bin/sh
execl: Permission denied

setroubleshoot 및 setools를 설치하고 다음을 실행하여 허용해야했습니다.

yum install setroubleshoot setools
sealert -a /var/log/audit/audit.log
grep crond /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.p

답변