나는 `one liner'를 사용하여 setuid 실행 파일을 찾으려고 노력해 왔습니다.
내가 처음 시도한 라인은 다음과 같습니다.
find / -perm /u+s -type f
그런 다음 비슷하지만 다른 결과를 제공하는 줄을 찾았습니다.
find / -perm /6000 -type f
내가 알 수 있는 한 이것들은 동일해 보이지만 첫 번째 결과는 두 번째 결과만큼 많은 결과를 표시하지 않습니다(대부분 이상한 그룹이 있는 결과는 누락됨). 왜, 무엇이 다른가요?
답변1
대부분의 사람들은 알지 못하지만 Unix 권한은 실제로 단순한 사용자, 그룹 및 기타(rwx) 권한이 아닙니다. 이 3개 트라이어드는 사용자, 그룹 및 기타 사용자가 파일 및 디렉터리에 액세스할 수 있도록 허용하는 일반적인 권한입니다. 그러나 사용자 비트 앞에 오는 비트 그룹도 있습니다. 이러한 비트를 "특수 모드"라고 합니다.
.chmod
$ chmod 644
실제로는 다음과 같습니다.
$ chmod 0644
비트 목록은 다음과 같습니다.
다음과 같은 제목의 Wikipedia 기사를 발췌했습니다.chmod
Flag Octal value Purpose
---- ----------- -------
S_ISUID 04000 Set user ID on execution
S_ISGID 02000 Set group ID on execution
S_ISVTX 01000 Sticky bit
S_IRUSR, S_IREAD 00400 Read by owner
S_IWUSR, S_IWRITE 00200 Write by owner
S_IXUSR, S_IEXEC 00100 Execute/search by owner
S_IRGRP 00040 Read by group
S_IWGRP 00020 Write by group
S_IXGRP 00010 Execute/search by group
S_IROTH 00004 Read by others
S_IWOTH 00002 Write by others
S_IXOTH 00001 Execute/search by others
귀하의 질문
따라서 첫 번째 명령에서 찾고 있는 u+s
것은 bit 가 될 것입니다 04000
. 비트를 요구하는 숫자 표기법을 사용할 때04000
그리고 02000
. 이렇게 하면 사용자 또는 그룹 setuid 비트가 설정된 파일이 제공됩니다.
추가 자료
나는 Unix의 권한을 더 잘 이해하고 싶은 사람에게 다음을 읽어볼 것을 강력히 제안합니다.Wikipedia 페이지에 대해chmod
. 매우 간단하게 설명되어 있어 잊어버렸을 때 훌륭한 참고 자료가 됩니다.
참고자료
답변2
모드 6000
는 u+s,g+s
단순한 u+s
것이 아닙니다 4000
.
find / -perm /u+s
또는 find / -perm /4000
setuid 비트가 설정된 파일만 찾습니다. find / -perm /u+s
또는 find / -perm /6000
setuid 비트가 설정되거나 setgid 비트가 설정된 파일을 찾습니다.