내 질문은 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