Skip to content

Setuid

Unix 액세스 권한 플래그 setuidsetgid ("set user ID"및 "set group ID"의 약자) 를 사용하면 사용자가 각각 실행 파일 소유자 또는 그룹의 파일 시스템 권한으로 실행 파일을 실행하고 디렉토리의 동작을 변경할 수 있습니다. 이들은 종종 컴퓨터 시스템의 사용자가 특정 작업을 수행하기 위해 일시적으로 상승 된 권한으로 프로그램을 실행할 수 있도록하는 데 사용됩니다.

SUID

절대표기값은 4000이다 일반사용자가 소유자 권한으로 실행할수 있도록 하는 것 보안상 문제가 있기 때문에 조심해서 사용하여야 한다.

SGID

절대표기값은 2000 일반사용자가 소유그룹의 권한을 실행할수 있도록 하는 것 파일 적용이 되면 다른 그룹이 소유그룹의 권한으로 파일을 실행하는것과 같다.

Sticky bit

모든 사용자가 쓸 수 있는 디렉토리를 적용하여 디렉토리내에 있는 파일을 임의대로 삭제할수 없고, 오직 소유자에게만 삭제,변경 권한이 있다. 리눅스에서는 /tmp디렉토리가 대표적 인 stick bit로 설정이 되어있다.

다음과 같이 명령을 치면,

ls -ld /tmp

다음과 같이 출력된다.

drwxrwxrwt 19 root root 4096 Nov 20 14:14 /tmp

drwxrwxrwt 에서 마지막, t에 주목하면 된다.

설정 방법

## suid를 적용한다는 뜻이다. (u -> user)
chmod u+s 파일이름
## suid를 적용해제 시키겠다는 뜻이다. (u -> user)
chmod u-s 파일이름

## sgid를 적용하겠다는 뜻이다. (g -> group)
chmod g+s 파일이름
## sgid를 적용해제 시키겠다는 뜻이다. (g -> group)
chmod g-s 파일이름

## stick bit를 적용시키겠다는 뜻이다. (o -> other)
chmod o+t 파일이름
## stick bit를 적용해제시키겠다는 뜻이다. (o -> other)
chmod o-t 파일이름

파일 찾기

각각 sgid, suid ,stickybit 가 적용된 파일을 찾기위해선 다음과 같이하면 된다.

find / -perm -04000 > setuid.txt
find / -perm -02000 > setgid.txt
find / -perm -01000 > sticky.txt

See also

Favorite site