나는 setuid 실행 파일을 찾기 위해 "oneliner"를 사용하려고 노력해 왔습니다.
내가 시도한 첫 번째 줄은 다음과 같습니다.
find / -perm /u+s -type f
그런 다음 비슷하지만 다른 결과를 제공하는 줄을 찾았습니다.
find / -perm /6000 -type f
내가 알 수 있는 한, 이것들은 동일해 보이지만 첫 번째는 두 번째만큼 많은 결과를 표시하지 않습니다(대부분 홀수 그룹이 누락됨). 왜, 차이점이 무엇인가요?
답변1
대부분의 사람들이 모르는 것은 Unix 권한이 실제로 단순한 사용자, 그룹 및 기타(rwx) 이상의 의미를 갖는다는 것입니다. 이 세 가지 트리플은 사용자, 그룹 및 기타 사용자가 파일 및 디렉터리에 액세스할 수 있도록 허용하는 일반적인 권한입니다. 그러나 사용자 비트 앞에 오는 비트 세트도 있습니다. 이러한 비트를 "특수 모드"라고 합니다.
와 같은 것을 다룰 때 사용하는 약식 표기법에 가깝습니다 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 비트가 설정된 파일을 찾으십시오.