시스템 보안 및 관리 - 특수 권한

2022. 2. 5. 23:36리눅스마스터 1급 - 필기/리눅스 시스템 관리

리눅스는 다수의 사용자들이 동시에 접속하여 사용 가능한 운영체제입니다. 즉 여러 사용자들이 저장공간을 공유하며 사용한 다고 볼 수 있는데 이는 한 사용자가 생성한 파일에 원치 않은 접근이 있을 수 있다는 의미입니다. 이와 같은 문제를 해결하기 위해 리눅스에는 허가권과 소유권, 이 두개의 권한을 통해 다른 사용자의 접근을 제어할 수 있습니다.

 

권한에 대한 기본적인 설명은 다음 글을 읽어주시길 바랍니다. https://roykeum1998.tistory.com/29

이번 글에서는 권한중에서 특수 권한에 대한 내용을 알아보겠습니다.

 

이 특수 권한은 기존의 rwx와 다른 권한을 부여 해주기 위한 권한으로 Set-UID, Set-GID, Sticky-Bit 이 있습니다.

 

1. Set-UID : 보통 실행 파일에 사용되며 이 권한이 부여된 실행파일을 실행시 실행한 사용자의 권한이 아니라 실행 파일의 소유자 권한으로 실행됩니다. chmod 4777 파일명을 통해 권한을 부여 할 수 있으며 파일 소유자 권한 허가권의 x 부분이 s로 바뀝니다. 실행 권한이 있는 파일이라면 s로 없으면 S로 바뀝니다.

777 위치는 예시를 든것으로 여기서 Set-UID 권한을 부여 하기 위해서는 앞의 4를 꼭 부여 해야합니다.

 

 

2. SetGID : 파일에 SetGID가 부여되어 있을 경우 실행시 실행한 사용자의 권한이 아닌 파일의 그룹 소유권 권한으로 실행됩니다. SetGID는 주로 디렉터리에 부여됩니다. 이 권한이 부여된 디렉터리에 사용자들이 파일이나 디렉터리를 생성하면 사용자의 그룹 소유권이 아닌 디렉터리 그룹 소유권으로 생성됩니다. chmod 2777 파일명을 통해 권한을 부여 할 수 있으며 파일 그룹 권한 허가권의 x 부분이 s로 바뀝니다. 실행 권한이 있는 파일이라면 s로 없으면 S로 바뀝니다.

 

파일에 부여 할 경우

 

 

디렉터리에 부여할 경우

 

 

3. Sticky-Bit : 주로 디렉터리에 부여되는 특수 권한으로 공유 디렉터리를 만들 때 부여합니다. 한 디렉터리의 other 권한에 rwx가 부여되어 있다면 모든 사용자가 이 디렉터리에 파일이나 디렉터리를 생성 할 수 있습니다. 하지만 자신이 생성한 것 뿐만 아니라 다른 사용자가 생성한 파일이나 디렉터리에 접근하여 수정 및 삭제까지 할 수 있다는 단점이 있습니다. 이와 같은 단점을 Sticky-Bit를 부여 함으로써 해결 할 수 있습니다. 이 권한이 부여 된 디렉터리에는 모든 사용자들이 파일이나 디렉터리를 생성 할 수 있지만 수정 및 삭제 또한 자신이 생성한 파일, 디렉터리에만 할 수 있습니다. 즉 다른 사용자들의 파일, 디렉터리를 건드릴 수 없는 것입니다. 

 

chmod 1777 디렉터리명을 통해 권한을 부여 할 수 있으며 디렉터리 other 권한 허가권의 x 부분이 t로 바뀝니다. 실행 권한이 있는 파일이라면 t로 없으면 T로 바뀝니다.

 

 

chang 사용자는 자신이 생성한 디렉터리와 파일만 수정 및 삭제 할 수 있습니다. 다른 사용자가 생성한 파일의 경우는 읽을 수는 있지만 수정은 할 수 없고 디렉터리의 경우에도 내부를 조회하거나 내부로 이동은 가능하지만 파일명 수정과 삭제는 불가능합니다. 

 

 

이와 같이 삭제는 불가능 하지만 다음과 같이 디렉터리로의 이동, 조회, 파일 읽기 등은 가능합니다.