2022. 11. 20. 16:55ㆍ리눅스(Linux)
Ownership/Permission
$ 관련된 구성요소
- 파일 유형
- 파일 허가권
- 링크 수
- 파일 소유자 이름
- 파일 소유 그룹 이름
drwxr-xr-x 2 root root 4096 3월 11 18:23 Desktop
-rw------- 1 root root 1655 3월 11 06:02 anaconda-ks.cfg
-rw-r--r-- 1 root root 46643 3월 11 06:01 install.log
-rw-r--r-- 1 root root 6863 3월 11 05:59 install.log.syslog
-rw-r--r-- 1 root root 74625 3월 17 23:17 iptables.txt
-rw-r--r-- 1 root root 199 3월 11 18:06 scsrun.log
$ Owner/Group/Others
UID(Owner) → 소유자 , 소유자랑 그룹 둘다 같다면 소유자 권한 먼저 해당됨
GID(Group) → 그룹
Other → 소유자도 아니고 그룹도 아니면 해당하는곳
# id
uid=1000(user) gid=1000(user) groups=1000(user)
- rwx(소유자) rwx(그룹) rwx(other)
$ 자주 사용되는 명령어 예제(Permission)
# chmod 644 test
- test 파일의 사용자 권한은 rw, 그룹의 권한은 r, 그 외 사용자의 권한은 r 로 설정 (numeric method)
# chmod g+rx test
- test 파일의 그룹에 읽기와 실행권한을 허가(symbolic method)
# chmod o+rwx 2test
- test 파일의 그 외 사용자에게 읽기/쓰기/실행 권한 허가
# rm /backup/test
# rm /backup/testfile
- other일 경우 상위 경로에 변경사항이 있어야 적용됨
상위경로 backup 디렉터리에 권한이 있어야 하위 test, testfile 권한 사용 가능
파일에서의 r 권한
- cat , more , vim , cp, tail, head 등과 같은 파일의 내용을 읽어 들이는 것과 관련이 있다.
파일에서의 w 권한
- cat , echo , vim 등과 같은 파일의 내용을 수정,변경 하는 것과 관련이 있다.
- vim 같은 경우는 :wq!로 저장이 가능하긴 하다. (소유주만 적용)
파일에서의 x 권한
- 실행 파일 같은 경우 실행 여부와 관련이 있다.
- 모든 명령어 실행(문서파일은 의미 없음)
디렉터리 에서의 r 권한
- ls , dir등과 같은 디렉터리의 내부 내용을 읽어 들이는 것과 관련이 있다.
디렉터리 에서의 w 권한
- mkdir , touch , rm , mv등과 같은 디렉터리 내부에 생성,삭제와 관련이 있다
디렉터리 에서의 x 권한
- 디렉터리의 접근과 관련이 있다. (cd)
- 디렉터리에 x가 없다는것은 대부분의 명령어를 이용 할 수가 없게 된다는 것.
$ 자주 사용되는 명령어 예제(Changing Ownership)
# chown testuser1 test
- test 파일의 소유자를 testuser1 으로 바꿈
# chown testuser1:testuser1 test
- test 파일의 소유자와 그룹을 testuser1 으로 바꿈
# chown testuser1:root test
- test 파일의 소유자는 testuser1 그룹은 root 로 바꿈
# chown user. a
-rw-r--r-- 1 user user 0 5월 24 11:27 a
- .뒤에 두면 UID, GID 전부 변경
# chown .root a
-rw-r--r-- 1 user root 0 5월 24 11:27 a
- .앞에 두면 GID만 변경
$ Group Ownership
# chgrp testgroup1 test
- test 파일의 소유그룹을 testgroup1 으로 바꿈
특수권한
- 특수한 동작을 하는 권한
- 특수한 목적으로 사용하는 권한
- setUID, setGID, sticky bit 3가지의 특수 권한이 있다.
4777r w s r w x r w x: setUID (안쓰는걸 강추)
2777r w x r w s r w x: setGID
1777r w x r w x r w t: sticky bit
* x 위치의 문자가 s/t로 변경(x가 있는 상태였다면 소문자 s/t, x가 없는 상태였다면 대문자 S/T)
ex> rwsr-xr-x : 4755
rwSr-xr-x : 4655
$ SetUID
# chmod 4XXX <파일>
- S나 s 로 표현되고 8진수 모드로는 4000 으로 표현됨
- 사용자가 SetUID 권한이 설정되어 있는 실행파일을 실행 할 경우
그 파일의 소유자 권한을 가지게 된다
# chmod 2XXX <파일>
- S 나 s로 표현되고 8진수 모드로는 2000 으로 표현된다
- SetUID와 동일한 내용을 가지며 다만 그룹의 권한으로 실행 된다는 것만이 다름
- 허가 되지 않은 setuid 유입시 버퍼플로우 당할 우려가 있다.
- 관리자는 바로 내부 라이브러리에 새로운 기능을 적용시키지않고 테스트환경에서 확인 후 적용해야한다.
- setuid는 기존에 걸려있는거 말곤 건드리지 않는게 좋다.
- 보통 조정하게되면 심볼릭 방식을 사용한다. ex) chmod u-s
$ Sticky bit
# chmod 1XXX<파일>
- T 나 t로 표현되며 8진수 모드로는 1000 으로 표현된다
- 해당 권한이 설정되어 있는 디렉터리의 모든 유저는 파일을 생성하고
삭제하는 것이 자유롭지만, 삭제시에는 소유권자 혹은 슈퍼유저만 지울 수 있다
$ chattr 명령어
- 리눅스의 second extended 파일 시스템에서 제공되는 파일 속성 변경 명령어
# chattr [option] [+-=] [속성값] [File / Directory]
- 사용 형식
속성값
- a(append) : 추가 모드만 지원함(소유주만 가능)
- c(compressed) : 압축상태로 저장함
- d(no dump) : 덤프를 하지 않음
- i (immutable) : 변경 불가능 상태로 설정
- j(journaling) : 저널링으로 기록하게 함(ext3맊 가능)
- s(secure deletion) : 안전한 쓰기를 제공
- u(undelete) : 삭제한 데이터를 debugfs 명령어로 복구 함
$ UMASK
# umask [mode]
$ ACL (Access Control List)
- ACL은 특별한 권한 설정기능을 제공한다.
- 우리는 기존에 파일이나 디렉터리에 부여하던 소유자, 그룹, 기타 사용자의 권한을 특정 사용자, 특정 그룹에게 추가해서 설정할 수 있다.
- ACL은 그룹에게는 읽기 권한만 주고, 특정 유저에게는 읽기/쓰기 권한을 줄 수도 있다.
$ Setfacl
# setfacl [option] [u,g,o::---] [File / Directory]
$ Getfacl
# getfacl [option] [File / Directory]
'리눅스(Linux)' 카테고리의 다른 글
[Centos 7] Process Management (프로세스 관련 명령어) (0) | 2022.11.20 |
---|---|
[Centos 7] Investigating and Managing Processes (프로세스 조사) (0) | 2022.11.20 |
[Centos 7] User Account Management(사용자 계정 관리) (0) | 2022.11.20 |
[Centos 7] String Process(문자열 프로세스) - sed, echo, diff, sort (0) | 2022.11.17 |
[Centos 7] String Process(문자열 프로세스) - Grep, Egrep, Fgrep, Awk (0) | 2022.11.16 |