Linux의 특수 권한

작성자 김아름 수정일 2023-02-07 11:33

#Linux, #리눅스, #권한, #특수, #permission

들어가며

  • 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에서의 특별한 퍼미션에 대한 이해와 활용 방법에 대해 알아보았습니다.

아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300