0
나는 다음과 같은 내용으로 다음 "루트 파일"이 :Linux에서 Set-user-id 비트는 어떻게 작동합니까?
$ ls -l root-file
-rwsr-sr-x 1 root root 15 Nov 18 02:20 root-file
설정 사용자-ID 비트가이 설정되어 있기 때문에 :
$ cat root-file
#!/bin/bash
echo $EUID
id
다음이 파일에 대한 권한은 이 파일을 실행하면 비 루트 사용자가 실행하더라도 유효 UID가 0으로 표시됩니다 (set-user-id 비트는 프로세스가 유효한 사용자 ID로 실행되도록하기 때문에). 파일 소유자 (이 경우 root). 그러나 대신 루트가 아닌 쉘에서 "root-file"을 실행할 때 다음 출력을 얻습니다.
$ ./root-file
1000
uid=1000(chanakya) gid=1000(chanakya) groups=1000(chanakya),4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare)
이 파일은 유효한 사용자 ID가 0으로 실행되지 않습니다. 이유는 무엇입니까?
루트가 파일을 소유하고 있습니까? SUID 비트는 사용자 ID를 소유자의 사용자 ID로 설정합니다. 소유자의 ID는 루트가 아니지만 (대부분의 SUID 프로그램은 루트에서 소유하고 있습니다). –
예, root가 파일을 소유합니다. "ls -l root-file"의 출력을보십시오. – gjain