Linux와 커맨드 라인 기초
많은 Linux에서 'ls -l /usr/bin/passwd'를 실행하면 '-rwsr-xr-x 1 root root ...'로 표시된다. 소유자의 실행 위치에 있는 's'의 의미로 올바른 것은?
- Asetuid가 설정되어 있어, 누가 실행하든 그 프로그램은 파일의 소유자(여기서는 root)의 권한으로 동작한다
- B스티키 비트가 설정되어 있어, 소유자와 root 이외의 사용자는 이 파일을 삭제하거나 이름을 바꿀 수 없다
- C이 파일이 공유 라이브러리임을 나타내며, 다른 프로그램에서 호출될 뿐 명령으로 직접 실행할 수는 없다
정답과 해설 보기
정답: A. setuid가 설정되어 있어, 누가 실행하든 그 프로그램은 파일의 소유자(여기서는 root)의 권한으로 동작한다
s는 setuid(set user ID) 비트와 실행 권한이 둘 다 설정되어 있음을 나타내며, 그 프로그램은 실행한 사용자가 아니라 파일 소유자의 권한으로 동작합니다. passwd는 일반 사용자가 자신의 비밀번호를 바꿀 때 root만 쓸 수 있는 /etc/shadow를 갱신해야 하므로, setuid root 프로그램으로 되어 있습니다. setuid 프로그램에 결함이 있으면 일반 사용자가 root 권한을 얻는 발판이 되므로, 함부로 붙여서는 안 됩니다. 8진수에서는 4000의 자리로 나타내며, chmod 4755로 하면 -rwsr-xr-x가 됩니다.