<<권한 변경>>
-특정 파일 , 디렉터리의 권한을 변경하는 기능
# chmod [권한] [경로/파일명 또는 디렉터리명]
위쪽의 [권한] 에 대한 내용
# r (read)
.파일 = 해당 파일안의 데이터를 확인할 수 있는 권한을 의미한다.
.디렉터리 = 해당 디렉터리안의 파일 및 디렉터리 정보를 볼수 있는 일부 권한 (ls -l)
chmod 8진수 값은 4
# w (write)
.파일 = 해당 파일안의 데이터를 수정 또는 변경할 수 있는 권한
.디렉터리 = 해당 디렉터리와 그 하위의 파일 및 디렉터리의 생성 및 병경 , 삭제할수 있는 권한
chmod 8진수 값은 2
# x (excute)
.파일 = 파일에 'x' 권한이 없으면 일반 문서파일을 의미하며 'x' 권한이 있으면 실행파일을 의미한다.
root 계정이나 일반 사용자 계정을 사용하여 파일을 생성하면 기본적으로 'x' 권한이 없는 일반 문서파일로 생성된다.
해당 파일을 실행파일로 변경하기위해서는 별도의 설정을 통해서 수동으로 변경해야 한다.
디렉터리의 경우에선 해당 디렉터리로 들어갈 수 있는 권한을 의미한다.
chmod 8진수 값은 1
디렉토리 최대권한 : 777 (디렉토리는 실행권한 까지 있어야 접근가능 하기 때문)
파일 최대 권한 : 666
즉 # chmod [권한] 부분에 소유주, 그룹, Other 순서로
rwx : 7, r-x : 5, rw- : 6 -wx : 3 --x : 1 숫자를 넣어주면 되는것이다.
ex. 나는 /A라는 파일의 소유주에게 모든 권한을 주고, 같은 그룹에겐 읽기권한만 주고, 다른사람은 못접근하게 할래.
chmod 720 /A
<<소유권 변경>>
-소유권은 파일 또는 디렉터리이 지배권리를 의미한다.
-소유권은 사용자 소유권과 Group 소유권으로 나뉜다.
# chown [UID:GID] [경로/파일명 또는 디렉터리명]
======================================================================================
-위의 기능들 만으로는 소유주/ 그룹/ 그외 그룹 세가지 분류의 권한밖에 지정해 줄 수 없어
4번째의 권한을 설정할 수 없게 된다.
-그래서 ACL을 사용하여 각 디렉토리나 파일 별로 유저 계정에 접근 수준을 설정해 준다.
# setfacl -m u:a:rw /test : 유저 a에 대해 특정 디렉토리나 파일 권한 부여
# setfacl -x u:a test : 유저 a에 대한 특정 권한 삭제
# setfcal -m d:u::rw test : 디렉토리만 가능(d), 하위디렉토리까지 권한 상속
# setfcal -b test : 모든 권한 초기화
# getfacl test : 권한 확인+마스크 확인
사용자 m1 m2는 log 디렉토리에 모든 권한, db 디렉토리에는 접근 권한만, 사용자 admin은 모든 권한을 준 장면이다.
# setfacl -m m::r test mask : 사용자 및 그룹의 권한보다 우선한다.
-어떤 작업으로 인해 일시적으로 사용자들의 권한을 제한하려면 mask값을 만지는게 좋다.
Q. 아래 이미지는 팀장, 부팀장, 사원, 사원 구성의 회사이고 9rum이라는 공유디렉토리와
그 하위에 사원들의 개인 디렉토리들을 만들어, 서로의 디렉토리에 접근 권한을 다르게 설정한 실습 결과이다.
팀장은 모든 디렉토리에 접근가능
부팀장은 모든 디렉토리에 읽기 접근 가능
사원들은 접근만 가능하고
본인의 디렉토리는 모든 권한을 준다.
getfacl에서도 보이는 mask라는 항목은 최대로 부여되는 허가권의 천장이다.
유저에게 저 마스크보다 높게 부여하고 getfacl을 확인해 보면 해당 유저 옆에 설정한 권한보다
더 낮게 적용된다는 메세지가 보인다.
<<특수권한>>
1. set-uid : 해당 권한이 설정된 파일을 실행하는 동안에는 소유주의 권한으로 실행된다.
실행 파일이 종료시 권한도 함께 중단된다.
일반사용자가 실행하면 소유주의 권한을 갖는다.
# chmod 4000 (~ 4777)
허가권의 표기는 소유주의 허가권 자리에 'x'가 's'로 표기된다. (rws rwx rwx)
s-실행권한있음. S-실행 권한 없음
2. set-gid : 해당 권한이 설정된 파일을 실행하는 동안에는 그룹의 권한으로 실행된다.
사용자가 파일이나 디렉터리를 실행/생성하게되면 사용자가 속한 그룹과 관계없이 그룹의 권한을 갖는다.
# chmod 2000 (~ 2777)
허가권의 표기는 그룹의 허가권 자리에 자리에 'x'가 's'로 표기된다. (rwx rws rwx)
s-실행권한 있음, S-실행권한없음
3. stikybit : 해당 권한이 설정된 디렉토리에서는 파일이나 디렉토리를 생성한 사용자만 삭제가 가능하다.
다른 사용자는 해당 파일을 읽거나 복사가 가능해서 복사본을 만들고 파일을 수정하는 방식이다.
# chmod 1000 (~1777)
/tmp
t - 실행권한 있음, T-실행권한없음.
4. Umask : 파일이나 디렉토리의 최대 권한에서 해당값을 빼 값이 기본 권한으로 적용됨.
# umask 값 으로 설정 가능. 기본값은 0022
변경 후 생성하는 디렉토리나 파일은 유마스크의 여집합 개념으로 권한 부여
업데이트 등등 이벤트로 사용자들의 일시적 권한 변경때 쓰기 편한 기능이다. (유저 전부를 수정안해도 됨)
umask의 맨 앞자리는 특수번호자리 + 소유자, 그룹, other 세자리
ex. umask 0022
디렉터리의 허가권은 최대값이 777이므로 umask를 적용하게되면 허가권이 755가된다.
파일의 허가권은 최대값이 666이므로 umask를 적용하게되면 허가권이 644가된다.
'Linux' 카테고리의 다른 글
Storage 관리-2 (LVM) (0) | 2022.11.01 |
---|---|
Storage 관리-1 (partition - format - mount) (0) | 2022.10.31 |
사용자 계정 (0) | 2022.10.31 |
파일 압축 (compress) (0) | 2022.10.30 |
Vi 편집기 (0) | 2022.10.30 |