지난 포스팅에서는 리눅스에서의 소유권과 허가권에 대해 다루었습니다.
이번에는 파일 생성 시 기본적으로 설정되는 권한을 관리하는 umask와 특수 권한에 대해 알아보겠습니다.
umask는 기본 권한 설정을 조정하는 중요한 도구이며, 특수 권한은 추가적인 보안과 관리 기능을 제공합니다.
umask란?
umask는 "User file creation MASK"의 약자입니다.
리눅스에서 새로 생성된 파일이나 디렉터리의 기본 권한을 제한하는 데 사용됩니다.
즉, 파일이나 디렉터리가 생성될 때 기본적으로 어떤 권한이 부여될지를 결정하는 역할을 합니다.
기본 파일 및 디렉터리 권한
리눅스에서 새 파일이나 디렉터리가 생성될 때, 기본 권한은 다음과 같습니다.
- 파일: 기본적으로 666 (rw-rw-rw-) 권한이 부여됩니다.
- 디렉터리: 기본적으로 777 (rwxrwxrwx) 권한이 부여됩니다.
하지만 이 기본 권한에서 umask 값이 빼지면서 최종 권한이 결정됩니다.
umask 값 계산하기
umask 값은 기본 권한에서 빼기를 통해 최종 권한을 결정합니다.
- 예를 들어, umask 값이 022라면:
파일의 최종 권한은
기본 권한: 666
umask: 022
최종 권한: 666 - 022 = 644 (rw-r--r--)
- 디렉터리의 최종 권한:
기본 권한: 777
umask: 022
최종 권한: 777 - 022 = 755 (rwxr-xr-x)
umask 확인 및 설정
umask
명령어를 통해서 현재 umask 값을 확인하거나, 새로 설정할 수 있습니다.
umask 027
umask의 값이 변경된 것을 확인할 수 있습니다. 또한 현재 상태에서 새로 디렉터리를 생성하게 되면
umask변경값이전에 설정되어있던 허가권한과 다르게 '750'의 허가권한을 가진 것을 확인 가능합니다.
특수 권한 (Special Permissions)
특수 권한은 기본적인 읽기, 쓰기, 실행 권한 외에 추가로 설정할 수 있는 고급 권한입니다.
특수 권한에는 다음 세 가지가 있습니다.
- Setuid (Set User ID, s): 파일을 실행할 때, 해당 파일의 소유자의 권한으로 실행됩니다. 주로 실행 파일에 사용됩니다.
- Setgid (Set Group ID, s): 파일의 경우 해당 파일을 실행할 때, 그 파일의 소유 그룹의 권한으로 실행됩니다. 디렉터리의 경우, 해당 디렉터리 내에 생성되는 모든 파일의 소유 그룹이 디렉터리의 그룹과 동일하게 설정됩니다.
- Sticky Bit (t): 디렉토리에 설정되며, 해당 디렉터리의 파일을 삭제할 수 있는 권한을 소유자와 루트 사용자만 가지도록 제한합니다. 주로 /tmp 디렉터리에 설정되어 있습니다.
특수 권한 설정 방법
특수 권한은 chmod 명령어를 통해 설정할 수 있습니다. 기호모드나 8진수 모드를 사용할 수 있습니다.
#Setuid부여
chmod u+s filename
#Setgid
chmod g+s filename
#Sticky Bit
chmod +t filename
위처럼 기호를 통해서 특수권한을 적용이 가능합니다.
명령어를 통해서 test.txt 파일에 Setuid를 적용해 보았습니다.
Setuid와 setgid는 같은 s를 공유해서 한번에 적용이 가능합니다.
tset디렉터리에는 모든 특수권한을 한번에 적용해 보았습니다.
#Setuid부여
chmod 4777 filename
#Setgid
chmod 2777 filename
#Sticky Bit
chmod 1777 filename
이번에는 문자가 아닌 숫자를 통해서도 특수권한을 적용해 보도록 하겠습니다.
숫자모드허가권을 변경할 때와 같지만 3 숫자가 아닌 앞에 1, 2, 4 숫자를 추가해서 적용이 가능합니다.
위처럼 test디렉터리에 setuid가 적용된 것을 확인 가능합니다.
또한 숫자를 합쳐서 한 번에 적용도 가능합니다.
(소문자 (s, t)는 기본 권한과 함께 설정되었을 때 사용됩니다.
대문자 (S, T)는 특수 권한은 설정되었지만, 기본 실행 권한이 없는 경우 사용됩니다.)
umask를 통해 새로 생성되는 파일과 디렉터리의 기본 권한을 제어할 수 있으며,
특수 권한을 통해 보안과 접근 제어를 더욱 강화할 수 있습니다.
이상으로 이번 포스팅을 마치도록 하겠습니다.
'Linux' 카테고리의 다른 글
tar- 압축, 풀기 (0) | 2024.08.17 |
---|---|
데몬(Daemon)과 패키지 관리 도구(dnf,yum,rpm) (0) | 2024.08.14 |
리눅스 허가권과 소유권: chmod, chown (0) | 2024.08.13 |
리눅스-그룹관리 (0) | 2024.08.08 |
리눅스-사용자 관리 (0) | 2024.08.08 |