4 Set-uid

파일에 set-uid (소유자) 혹은 set-guid (그룹) 권한을 설정하면 소유자가 아닌 다른 사용자가 그 파일을 실행할 경우에는 파일의 실행 동안은 소유자나 그룹의 권한을 갖게 된다. 한동안 set-uid의 권한을 잘못 설정 했을 경우에 일어나는 보안의 문제 때문에 set-uid에 대한 많은 문서들이 만들어지곤 했었다.

파일에 set-suid나 set-guid를 설정하려면 역시 chmod 명령어를 다음과 같이 사용한다.

chmod u+s filename         ; set-suid를 설정할 경우
chmod g+s filename         ; set-guid를 설정할 경우
혹은 절대 모드를 사용하여 설정할 수도 있다. 권한을 나타내는 비트의 처음에 '4'를 설정하면 suid를 의미하고, '2'를 설정하면 guid를 의미한다. suid와 guid를 동시에 설정할 경우에는 '6'를 사용하면 된다. 다음의 예를 보면서 이해를 해보자.

명령               생성된 모드           의미

chmod 4755 rws r-x r-x 파일에 set-uid 설정
소유자는 읽기, 쓰기, 실행이 가능
그룹과 다른 사용자는 읽기와 실행이 가능
실행시에 소유자의 권한을 가짐
chmod 2711 rwx -s -x 파일에 set-guid 설정
소유자는 읽기, 쓰기, 실행이 가능
그룹과 다른 사용자는 실행만 가능
실행시에 그룹의 권한을 가짐
chmod 6755 rws r-s r-x 파일에 set-guid 설정
소유자는 읽기, 쓰기, 실행이 가능
그룹과 다른 사용자는 읽기와 실행이 가능
실행시에 소유자와 그룹의 권한을 가짐

주의 해야 할 것은 set-id를 설정할 때에는 반드시 실행 권한이 있는 파일이어야 한다는 것이다. 가끔씩 rwS r-x r-x와 같이 suid가 설정이 되어 's'가 표시되어야 할 자리에 'S'가 표시되는 파일들이 있는데, 이는 실행 권한이 없는 파일을 suid로 설정했기 때문이다. 이럴 경우, suid는 무시 된다.

Dong-Hoon Yoo
2002-03-15