특수 권한(Special Permission)
- 시스템 관리의 효율성을 높이기 위해 사용하는 특별한 권한
- 보안의 취약점이 될 수 있으므로 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋다.
특수 궈난 | 절대 모드 | 상대 모드 |
---|---|---|
Setuid | 4000 | u+s |
Setgid | 2000 | g+s |
Sticky bit | 1000 | o+t |
Setuid (4000 = u+s)
- 파일을 실행하는 동안 해당 파일의 소유주의 구너한으로 실행
- 일반적인 실행은 파일을 이용하려는 사용자의 소유권에 의해 실행권한이 부여되지만, setuid 권한이 적용되어 있는 파일은 실행되는 동안은 사용자가 아닌 파일의 소유주의 권한을 할당 받는다.
- 실행 파일에만 설정이 가능 하다.
-
소유자의 허가원에서 실행 권한이 x가 아닌 s로 표시 된다.(예:rwsr–r–)
- 예(passwd)
- 패스워드를 변경하려면 /etc/shadow 파일의 읽기 및 쓰기 권한을 가지고 있어야지 패스워드를 기록 할 수 있다.
- passwd 실행 파일에 setuid 권한이 부여 되어 있으므로 passwd 명령이 실행되는 동안은 소유주의 권한(root)으로 동작하게 된다.
Setgid (2000 = g+s)
- 파일을 실행하는 동안 해당 파일의 소속 그룹 권한으로 실행
- 파일이 실행되는 동안은 사용자가 아닌 파일의 소속 그룹 권한을 할당 받는다.
- 파일 및 디렉터리에서 설정 가능
-
소속 그룹의 허가권에서 실행 권한이 x가 아닌 s로 표시 된다.(예:rwxr-sr–)
- 디렉터리 적용
- setgid가 적용된 디렉터리의 하위에 생성되는 디렉터리도 동일하게 setgid가 설정된다.
- setgid가 적용된 디렉터리 안에서 새로운 디렉터리를 생성하면 setgid에 명시된 소속그룹으로 설정된다.
Sticky bit(1000 = o+t)
- 모든 소유권에 모든 허가권을 부여하지만 삭제는 소유주만 가능 하다.
- 디렉터리에 설정 한다.
- 나머지 사용자(other)의 허가권에서 실행 권한이 x가 아닌 t로 표시 된다.(예:rwxr-xr-t)
- /tmp,/var/tmp에 적용되어 있다.
- 기본 소유권과 허가권을 먼저 확인하기 때문에 기본 허가권에 삭제 권한이 있으면 삭제가 가능 하다.
확장 권한(ACL)
- 기본적인 소유권과 허가권 외의 세부설정이 필요한 경우 사용되는 permission
- 파일 및 디렉터리에 특정 소유자/소유 그룹의 권한을 부여할 때 사용한다.
- 파일 및 디렉터리의 세부 정보 중에서 권한 정보(rw-r–r–.)의 마지막 10번쨰 값으로 권한 ACL설정 여부를 확인한다.
rw-r-r–. | |
---|---|
. | 권한 ACL이 설정되지 않았음 |
+ | 권한 ACL이 설정되어 있음 |
확장 권한(ACL)관리 명령어
getfacl | 권한 ACL 확인 |
setfacl | 권한 ACL 설정 |
getfacl
-
파일 및 디렉터리에 설정된 권한 ACL 확인
-
사용법
- #getfacl [옵션] [파일이름]
OPTIONS | |
---|---|
-n | 소유자, 소속그룹의 정보를 uid,gid 형태로 출력 |
-d | 기본 권한 정보만 출력 |
-c | 확장 권한 정보만 출력 |
-R | 디렉터리 하위의 파일, 디렉터리의 정보도 함께 출력 |
setfacl
-
파일 및 디렉터리에 설정된 권한 ACL 설정
-
사용법
- #setfacl [옵션][정책][파일이름]
OPTIONS | |
---|---|
-m | 권한 ACL 설정 |
-x | 한 항목씩 ACL 설정 삭제 |
-b | ACL 모두 삭제(초기화) |
-R | 이미 존재하는 하위 경로의 파일 및 디렉터리에도 함께 설정 |
-d | 하위 경로의 파일 및 디렉터리가 생성될 때 즉시 설정 |
RULES |
---|
[소유권]:[확장할 사용자]:[허가권] (예: u:test:rx(=5) |