바이너리에 suid 추가

바이너리에 suid 추가

내 질문은 suid! 이에 대한 논리는 사용자가 권한 있는 명령을 실행할 때 루트 권한을 부여하는 것입니다. 예를 들어 passwd이런 기능이 있습니다.

$ ls -l /usr/bin/passwd 
-rwsr-xr-x 1 root root 54224 Aug 21  2017 /usr/bin/passwd

를 열 섹션을 작성하여 실행 파일에 zsh수동으로 추가했습니다 .suid

$ chmod u+s myzs
$ ls -l myzs
-rwsr-xr-x 1 mahmood mahmood  7360 Jul  6 21:34 myzs

그러나 바이너리를 실행하면 루트 사용자 대신 현재 사용자(나)에 대해 셸이 열립니다. 내 바이너리와 비밀번호의 차이점은 무엇입니까? 둘 다 수드를 가지고 있습니다.

$ ./myzs 
% whoami                                                                                       
mahmood

답변1

~에서man chmod

   4000    (the set-user-ID-on-execution bit) Executable files with this bit set 
           will run with effective uid set to the uid of the file owner. 

따라서 바이너리를 실행하려는 사용자로 파일 소유자를 설정해야 합니다.

sudo chown root myzs

관련 정보