참고글



리눅스 특수 퍼미션
리눅스 redHat 7.2 이상 버전에서의 퍼미션은 우리가 일반적으로 알고 있는 777과 같은 세 자리가 아닌 4777과 같이 네 자리의 비트로 표현될 수 있습니다. 물론 여전히 거의 대부분은 세 자리로 표현합니다.
1000 단위 자릿수에는 4, 2, 1이 들어갈 수 있으며 각각 SetUID, SetGID 그리고 Sticky Bit를 뜻합니다.
특수 퍼미션은 chmod 명령어와 함께 절대모드 또는 상대 모드 지정 방법을 통해서 지정 가능합니다.
예를 들어 SetUID를 적용하면서 777권한을 적용하는 경우 다음과 같이 사용 가능합니다.
1
2
chmod 4777 [파일명]
chmod ug+s [파일명]   #상대 지정 방법으로도 가능                                            
cs

퍼미션
의미
절대 모드
설명
t
skicky bit
1000
파일의 소유자만 삭제 가능하도록 설정
S
SetGID(Set User ID)
2000
프로세스 실행시의 GID로 설정
S
SetUID(Set User ID)
4000
프로세스 실행시의 UID로 설정


특수 퍼미션과 일반 퍼미션
SetUID는 파일 또는 명령어가 실행되는 동안에는 실행한 사용자가 아닌 파일의 소유자의 권한을 부여하게 되는 퍼미션 설정입니다. 마찬가지로 SetGID는 파일 또는 명령어가 실행되는 동안에는 실행한 사용자 그룹이 아닌 파일의 소유 그룹 권한을 부여하게 되는 퍼미션 설정입니다. 마지막으로 Sticky Bit가 적용된 디렉터리에서는 누구든 파일 쓰기와 실행이 가능하지만 파일 삭제는 소유자만 가능하도록 설정하는 퍼미션입니다. 대표적으로 Sticky Bit 퍼미션이 적용된 디렉터리는 /tmp 디렉터리가 있습니다.

특수 퍼미션
소유자 권한(User)
소유 그룹 권한(Group)
다른 사용자 권한(Others)
S (SetUID)
S (SetGID)
t (Sticky Bit)
r
w
x
r
w
x
r
w
x
4000
2000
1000
400
200
100
40
20
10
4
2
1




SetUID
SetUID를 사용하는 목적은 파일을 실행했을 때 해당 파일이 프로세스로 실행되는 동안은 현재 접속한 사용자의 권한이 아닌 해당 파일의 소유자 권한으로 실행되도록 하기 위함입니다.
즉 현재 접속한 사용자가 root이고 SetUID가 설정된 파일의 소유자가 centos 라는 계정이라면 root가 아닌 centos 계정의 권한으로 실행되는 것입니다.
SetUID를 사용하여 퍼미션을 설정하는 경우 8진수 값 4000을 적용해야 합니다. 또한 SetUID가 적용되는 경우 소유자 실행권한이 rwx에서 rwS로 변경됩니다.

파일 권한 확인


변경 후 확인 S가 소유자 실행 권한에 붙은것을 확인





SetGID
SetGID는 SetUID와 마찬가지로 파일 또는 디렉터리를 실행시에 해당 파일 및 디렉터리의 소유 그룹의 권한을 갖게 되는 퍼미션 설정입니다.
SetGID가 적용되면 그룹 실행 권한에 rwx에서 rwS로 변경됩니다.
SetGID를 사용하여 퍼미션을 설정하는 경우 8진수 값 2000을 적용해야 합니다.

파일 권한 확인



변경 후 확인 소유 그룹 실행 권한에 S가 붙은것을 확인






Sticky Bit
리눅스는 다중 사용자 시스템이며, 여러 사용자가 동시에 시스템에 접속하여 공동 작업을 하게 됩니다.
이때 공통의 사용 디렉터리에 작성 권한을 주게 되면 파일을 읽고 쓸 수 있을 뿐만 아니라 삭제할 수 있는 권한도 갖게 됩니다.
이럴 때 Sticky Bit를 설정하면 파일을 작성할 수는 있지만 다른 사용자의 파일을 지우지 못하게 할 수 있습니다.

또한 MS-DOS의 램상주 프로그램(TSR) 처럼 실행이 종료된 뒤에도 메모리에 남아 다음 실행시에 이전보다 빨리 실행할 수 있도록 설정하는 속성을 Sticky Bit라고 하며 /tmp 디렉터리가 대표적으로 Sticky Bit가 설정된 디렉터리입니다.

Sticky Bit가 설정된 디렉터리에서는 모든 사용자가 읽기, 쓰기, 실행이 가능하며 파일의 삭제는 소유자만 가능하게 됩니다.
Sticky Bit를 설정하기 위해서는 8진수 값 1000을 퍼미션에 추가하면 되고 실행 권한이 rwx 대신에 rwt 로 표기됩니다.


Sticky Bit가 적용된 /tmp 디렉터리 권한




testDir 디렉터리 생성




Sticky Bit 적용


블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,