programing

패스워드 없이 다른 사용자로 스크립트를 실행하는 방법

goodsources 2023. 4. 11. 21:59
반응형

패스워드 없이 다른 사용자로 스크립트를 실행하는 방법

대본이 있어요.sh는 user2로 실행해야 합니다.단, 이 스크립트는 어플리케이션의 user1에서만 실행할 수 있습니다.

다음 명령을 실행하려고 합니다.

su user2 -C script.sh

패스워드 없이 실행할 수 있습니다.

또한 user1에서는 스크립트만 실행할 수 있기 때문에 매우 제한적이기를 바랍니다.sh는 user2 아래에만 있고 다른 것은 없습니다.

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

만약 누군가가 (use sudoers와 같은 일반적인 것 대신에) 이것을 어떻게 달성할 수 있는지에 대한 명확한 예를 제공할 수 있다면, 매우 감사할 것입니다.

실행 시도:

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

사용자로 sudo할 수 있는 권한이 있는 경우 이 명령을 사용자 이름으로 실행합니다.

불러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`

위의 명령어는 올바르지만 Red Hat에서는 selinux가 적용 중인 경우 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

언급URL : https://stackoverflow.com/questions/6905697/how-to-run-script-as-another-user-without-password

반응형