Linux와 커맨드 라인 기초

많은 Linux에서 'ls -l /usr/bin/passwd'를 실행하면 '-rwsr-xr-x 1 root root ...'로 표시된다. 소유자의 실행 위치에 있는 's'의 의미로 올바른 것은?

  1. Asetuid가 설정되어 있어, 누가 실행하든 그 프로그램은 파일의 소유자(여기서는 root)의 권한으로 동작한다
  2. B스티키 비트가 설정되어 있어, 소유자와 root 이외의 사용자는 이 파일을 삭제하거나 이름을 바꿀 수 없다
  3. C이 파일이 공유 라이브러리임을 나타내며, 다른 프로그램에서 호출될 뿐 명령으로 직접 실행할 수는 없다
정답과 해설 보기

정답: A. setuid가 설정되어 있어, 누가 실행하든 그 프로그램은 파일의 소유자(여기서는 root)의 권한으로 동작한다

s는 setuid(set user ID) 비트와 실행 권한이 둘 다 설정되어 있음을 나타내며, 그 프로그램은 실행한 사용자가 아니라 파일 소유자의 권한으로 동작합니다. passwd는 일반 사용자가 자신의 비밀번호를 바꿀 때 root만 쓸 수 있는 /etc/shadow를 갱신해야 하므로, setuid root 프로그램으로 되어 있습니다. setuid 프로그램에 결함이 있으면 일반 사용자가 root 권한을 얻는 발판이 되므로, 함부로 붙여서는 안 됩니다. 8진수에서는 4000의 자리로 나타내며, chmod 4755로 하면 -rwsr-xr-x가 됩니다.

이 분야 연습하기 분야로 돌아가기

Linux와 커맨드 라인 기초의 다른 문제

  1. 위의 명령을 순서대로 실행했을 때, 마지막 cat으로 표시되는 내용으로 올바른 것은?
  2. 위와 같이 a.txt는 있고 nofile은 없는 디렉터리에서 마지막 명령을 실행했다. 결과로 올바른 것은?
  3. 위의 조작에서 마지막 명령이 출력하는 값으로 올바른 것은?
  4. 위의 조작에서 마지막 grep이 출력하는 줄로 올바른 것은?
  5. 선택지에서는 줄 맨 앞의 공백을 빼고 나타낸다. 위의 조작에서 마지막 명령이 출력하는 줄로 올바른 것은?