uid 비트를 설정하고 싶은 셸 스크립트가 있습니다. 소유자를 root로 설정하고 uid 비트를 설정합니다. 셸에서 'whoami'를 추가하여 제대로 작동하는지 확인합니다. 하지만 스크립트를 실행했을 때 whoami는 루트가 아니라 사용자의 이름을 반환했습니다. 그렇다면 이것은 잘못된 것입니까? uid가 올바로 설정된 경우 루트 권한을 얻었어야합니다. 맞습니까?setuid 비트 결과
2
A
답변
3
setuid 비트를 셸 스크립트와 함께 사용할 수 없습니다. 셸은 shebang 행을 구문 분석하여 실행할 프로그램을 결정한 다음 스크립트에 설정된 setuid 비트에 대해 조금도 신경 쓰지 않고 해당 프로그램을 시작합니다.
https://serverfault.com/questions/8449/cannot-set-uid-on-shell-scripts을 참조하십시오.
4
아니요, setuid 비트는 로그인 한 사용자를 변경하지 않으며 스크립트가 실행되는 유효 사용자 (euid)를 변경합니다.
또한 setuid 비트는 스크립트에서 작동하지 않습니다.
권한이 낮은 사용자가 스크립트를 루트 권한으로 실행하려면 "su"또는 "sudo"를 조사하는 것이 좋습니다.
* setuid 비트가 스크립트에서 작동하지 않는 이유는 무엇입니까? * 1 시간 낭비했습니다. 고마워요 @ 마틴 –