들어가며
- linux의 권한은 시스템의 사용자를 파일의 소유주, 그룹 소유주, 나머지 사용자의 세 부류로 나누고 있습니다.
- 각 부류에 대해 파일에 대한 권한을 읽기, 쓰기, 실행 세 가지로 나타내고 있습니다.
- 이러한 권한 이외에 몇 가지 특별한 권한에 대해 알아봅니다.
SetUID
비밀번호가 암호화되어 저장된 /etc/shadow 파일은 root 사용자 이외에는 읽을 수 없습니다.
만일 한 사용자가 자신의 비밀번호를 변경하려면, /etc/shadow 파일의 내용을 읽을 수 있어야만 합니다.
그렇다면 비밀번호를 변경할 때마다 root 사용자에게 요청을 해야 하는 걸까요?
이러한 경우에 setuid 정책을 사용하여 명령어가 실행되는 동안만은 소유주의 권한을 갖도록 해줄 수 있습니다.
즉, setuid는 일시적으로 파일 소유자의 권한을 얻어 실행할 수 있도록 합니다.
ls -al /usr/bin/passwd -rwsr-xr-x. 1 root root 27856 Mar 31 2020 /usr/bin/passwd
위 결과의 소유주의 퍼미션 값에 실행의 값인 x 기호가 아닌 s 기호가 대신 명시되어 있는 것을 확인할 수 있습니다.
setUID는 절대모드 표현에서 일반 퍼미션에 4000을 더하거나 뺄 수 있습니다.
또는 상대모드로 u+s, u-s 로 적용할 수 있습니다.
chmod u+s file1 ls -al -rwsrwxrwx 1 root root 0 Feb 6 21:06 file1
SetGID
setgid는 setuid와 비슷한 권한으로, 파일 및 명령어가 실행되는 동안에는 그룹 소유주의 권한을 갖게 됩니다.
setuid는 실행 파일에만 명시될 수 있지만, setgid는 실행 파일 뿐만 아니라 디렉터리에도 명시될 수 있습니다.
setGID는 절대모드 표현에서 일반 퍼미션에 2000을 더하거나 뺄 수 있습니다.
또는 상대모드로 g+s, g-s 로 적용할 수 있습니다.
chmod 2755 test/ ls -al drwxr-sr-x 2 root root 19 Feb 6 21:06 test
Sticky bit
이 권한은 모든 사용자가 읽고, 쓰고, 삭제가 가능합니다.
단, 일반 사용자들은 자신이 생성한 것 이외에는 수정 및 삭제는 불가능 합니다.
리눅스에서 대표적인 sticky bit가 적용된 디렉터리는 /tmp와 /var/tmp 입니다.
ls -al drwxrwxrwt. 8 root root 172 Feb 6 21:23 tmp
위 결과의 소유주의 퍼미션 값에 실행의 값이 x 기호가 아닌 t 기호가 대신 명시되어 있는 것을 확인할 수 있습니다.
sticky bit는 절대모드 표현에서는 일반 퍼미션에 1000을 더하거나 뺄 수 있습니다.
또는 상대모드로 o+t, o-t 로 적용할 수 있습니다.
chmod o+t ls -al -rwxr-xr-t 1 root root 0 Feb 6 21:26 file2
마무리
- linux에서의 특별한 퍼미션에 대한 이해와 활용 방법에 대해 알아보았습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.