티스토리 뷰
리눅스를 사용하다보면 파일에 접근 권한이 없다는 것을 자주 볼 수 있을것이다.
간단하게 생각하면 내가 지금 접속한 계정이 해당 파일에 허용된 계정인가? 그룹인가?에 대한 문제입니다.
위의 그림처럼 그룹2에 있는 유저가 다른 그룹에 있는 파일을 접근하지 못하도록 막아두는 것이다.
그 권한중에서는 rwx(read, write, execute) 세개가 있다.
# ls -l
total 12
-rw------- 1 root root 2361 Sep 15 14:17 anaconda-ks.cfg
-rw-r--r-- 1 root root 608 Sep 15 14:17 anaconda-post.log
-rw------- 1 root root 2059 Sep 15 14:17 original-ks.cfg
현재 파일의 권한을 어디까지 허용하는지 변경하는 명령어는 chmod이다.
변경하는 방법은 2가지가 있는데 실수하지 않고 가독성이 좋게 심볼릭을 추천한다.
rwx rwx rwx: 심볼릭(현재 이 방법으로 권장)
-> $ chmod u+rwx,g-w,o=rw
+: 퍼미션 추가
-: 퍼미션 제거
=: 퍼미션 강제 대입
$ chmod 724 --> chmod u=rwx,g=w,o=r
chmod a=rwx (a는 u,g,o 모두 일괄 적용)
chmod u+s: Set UID
g+s: Set GID
o+t: Sticky
위와 같이 원하는 기능을 추가하면 되고 순서는 USER, GROUP, OTHER 이렇게 순서로 r(read), w(write), x(execute)를 추가 삭제 하면 된다.
** 주의 : 리눅스 글에서 갑자기 Mac인가 싶겠지만 숫자로 적용할때, BSD 커널에서는 맨 앞에 sticky bit를 두고 나머지 세개가 적용된다.
chmod 744 ---> GNU > chmod 0+744 ---> 0744
BSD > chmod 00+744 ---> 7(bit/sticky)44
** sticky bit란?
[S/B, PERM] [KERNEL]
[USER] ---> access ---> FILESYSTEM ---> DAC(Defined Access Control(?)) ---> OBJECT
- rule set [FILE/DIR]
- 8bit, rwx
TRUE
student ---> ls, cp ... ---> syscall ---> userspace => kernel space => DAC => discriptor
[APP] [call] SB[8bit] I/O
\__DRIVE___/ ux=rw
g=rw
o=
|
|
V
NO ACCESS
DAC는 ring1 -> ring2
다음과 같은 과정으로 접근에 대해 확인한다.
참고) protection ring
커널이 메모리에 올라가면 하드웨어와 os의 채널을 열어준다.(BIOS <부팅>) 이후, 커널 모듈로 올라온다.
(ring0, ring1 kernel쪽, ring2, ring3이 user쪽)
https://ko.wikipedia.org/wiki/%EB%B3%B4%ED%98%B8_%EB%A7%81
(또한, root계정은 기본적으로 kernel권한이라서 권한이 없어도 모두 접근이 가능하다...)
다음으로 현재 파일의 접근 권한을 누구에게 줄지 소유권을 바꾸는 명령어인 chown이다.
chmod(change mode, S/B)
.------. .---> # chgrp
/ \ /
-rwx rwx rwx 1 user group
\______/
chown(change owner, SB)
-> chgrp: 그룹만 변경
-> chown: 사용자 및 그룹 변경
# chown user:group
# chown user
# chown :group
---------------------
shift키가 불편해서 생긴 문법... + shift 오른손 권장
# chown user. ;; BSD에서는 사용이 불가능
# chown .group ;; BSD에서는 사용이 불가능
-> 이렇게 하면 user, group 모두 바뀜( : 도 마찬가지)
그룹 빼기: groupdel 명령어
다음과 같이 사용하면 되고, 만약 하나의 계정에 여러 개의 그룹이 속해있는 경우가 있다.
# usermod -aG <GROUP> <계정>
만약 그룹을 제거하고 싶으면 다음과 같이 하면 된다.
gpasswd -d <USER> <GROUP>
'Linux' 카테고리의 다른 글
[Rhel/CentOS] 6. 프로세스 모니터링(Process Monitoring) (0) | 2021.12.10 |
---|---|
[Rhel/CentOS] 5. SELinux (0) | 2021.12.10 |
[Rhel/CentOS] 3. 로컬 사용자 및 그룹 관리 (0) | 2021.12.07 |
[Rhel/CentOS] 2. File System(파일 시스템) (0) | 2021.12.07 |
[Rhel/CentOS] 1. System Access (0) | 2021.12.06 |
- Total
- Today
- Yesterday
- spring
- broker
- KAFKA
- spring boot
- 리액트
- Firebase
- JPA
- apache kafka
- NextJS
- React
- backend
- caching
- feign client
- frontend
- Java
- Data Engineering
- Linux
- apache
- 프론트엔드
- centos
- consumer
- K8S
- Container
- API
- OS
- cs
- Producer
- zookeeper
- Front
- rhel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |