[권한 (permission)]
- 리눅스의 권한은 허가권, 소유권 두 종류로 볼 수 있다.
- 모든 디렉토리나 파일은 무조건 허가권과 소유권이 존재한다.
- 권한 설정에 다라 디렉토리나 파일의 사용형태가 결정된다.
- 허가권, 소유권은 ls -l 명령어로 볼 수 있다.
- 허가권 : chmod (change modification)
* 디렉토리나 파일에 읽기(r), 쓰기(w), 실행(x)권한을 표시하는 것
- 소유권 : chown (chagne ownership)
* 디렉토리나 파일을 소유하고 있는 꼐정과 그룹이 누구인지 표시하는 것
[-rw-r--r--. 1 root root 4303 5월 3 17:44 grub.cfg]
- -rw-r--r-- : 허가권
- root root : 소유권
[허가권]
- 파일/디렉토리에 대한 허가 권한을 알려줍니다.
- 허가권은 r, w, x로 구성합니다.
* r = read = 읽기권한 (4)
* w = write = 쓰기권한 (2)
* x = execute = 실행권한 (1) (파일 - 실행권한, 디렉토리 - 접근권한)
rwx | rwx | rwx |
421 (7) | 421 (7) | 421 (7) |
owner | group | other |
- 허가권은 3개씩 끊어서 분류합니다. (rwxrwxrwx > rwx rwx rwx)
- 허가권은 숫자로도 표현할 수 있습니다. (읽기 4, 쓰기 2, 실행 1 / 최대 허가권은 777이다)
- 허가권은 사용자(owner), 그룹(group), 기타(other) 3가지로 분류합니다.
소유권과 같이 사용해야 정확하게 확인할 수 있습니다.
- ls -l로 조회하려서 허가권을 볼 때 부여된 허가권은 rwx로 보이고
부여되지 않는 허가권은 -로 보인다.
- 예) -rw-r--r--(644) : owner(rw- / 6), group(r-- / 4), other(r-- / 4)
파일 사용자(읽기, 쓰기 권한), 파일 그룹 사용자(읽기 권한), 기타 사용자(읽기 권한)
※ root는 허가권에 영향을 받지 않습니다.
[허가권 변경하기]
- chmod : change mode
- 파일이나 디렉토리의 허가권은 root계정이나 owner의 계정만이 변경할 수 있습니다.
① 숫자로 변경하기
- owner, group, other의 허가를 한번에 바꿀 때 사용하면 유용합니다.
- 읽기(4), 쓰기(2), 실행(1) 각 번호를 합산한 가격을 사용하게 된다.
- 모든 권한 허용 - 7, 모든 권한 제거 - 0
[사용방법]
- chmod [바꾸고 싶은 허가권 숫자] [파일 혹은 디렉토리 경로]
- /home/test/a 디렉토리의 권한을 모두 허용 (777로 부여하기)
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 root root 4303 5월 3 17:44 a
[root@localhost~]#chmod 777 /home/test/a
[root@localhost~]#ls -l /home/test
drwxrwxrwx. 1 root root 4303 5월 3 17:44 a
※ 파일/디렉토리 명의 색상으로 권한을 빠르게 확인할 수도 있다. (초록색 > 777권한)
② 문자로 변경하기
- owner, group, other의 허가를 따로 바꾸고 싶을 때 사용할 수 있습니다.
- u(owner(user)), g(group), o(other)의 영문을 사용해서 각각 권한을 변경할 수 있습니다.
- 권한 제거와 부여는 (-) 기호와, (+)기호로 제거&부여 할 수 있습니다.
[사용방법]
- chmod [바꾸고 싶은 허가권] [파일 혹은 디렉토리 경로]
- /home/test/a 디렉토리의 권한 제거하기 (사용자 x 제거, 그룹 w,x 제거, 기타 w,x제거)
[root@localhost~]#ls -l /home/test
drwxrwxrwx. 1 root root 4303 5월 3 17:44 a
[root@localhost~]#chmod u-x g-wx o-wx /home/test/a
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 root root 4303 5월 3 17:44 a
[소유권]
- 파일/디렉토리의 소유자와 그룹을 알려줍니다.
- 소유권은 UID(User ID) GID(Group ID)로 구성합니다.
- 내 계정이 파일/디렉토리의 UID와 같다면 소유자, GID와 동일하다면 그룹사용자,
둘 다 아니라면 기타 사용자로 생각하면 됩니다.
※ 내 계정의 UID, GID 확인 방법 : grep [찾고싶은 문자열] /etc/passwd
[소유권 변경하기]
- chown : change ownership (소유권 변경하기)
- root 혹은 파일/디렉토리의 소유자만이 파일/디렉토리의 소유권을 변경할 수 있습니다.
- 사용자(UID)와 그룹(GID)를 구분하기 위해서 구분자로 :(콜론)을 사용하는데
:(콜론)대신 .(점)을 사용할 수 있습니다.
- 4가지 방식으로 소유권을 변경할 수 있습니다.
① 파일/티렉토리의 소유자(UID)만 변경하고 싶을 경우
- chown [사용자명] [변경하고 싶은 파일/디렉토리 경로]
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 root root 4303 5월 3 17:44 a
[root@localhost~]#chown samadal /home/samadal/a
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 samadal root 4303 5월 3 17:44 a
② 파일/디렉토리의 그룹(GID)만 변경하고 싶을 경우
- chown :(콜론)[그룹명] [변경하고 싶은 파일/디렉토리 경로]
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 samadal root 4303 5월 3 17:44 a
[root@localhost~]#chown :samadal /home/samadal/a
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 samadal samadal 4303 5월 3 17:44 a
③ 파일/디렉토리의 소유자(UID)와 그룹(GID)을 동일하게 변경하고 싶을 경우
- chown [사용자명]:(콜론) [변경하고 싶은 파일/디렉토리 경로]
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 samadal samadal 4303 5월 3 17:44 a
[root@localhost~]#chown root: /home/samadal/a
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 root root 4303 5월 3 17:44 a
④ 파일/디렉토리의 소유자(UID)와 그룹(GID)을 한번에 변경하고 싶을 경우
- chown [사용자명]:[그룹명] [변경하고 싶은 파일/디렉토리 경로]
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 root root 4303 5월 3 17:44 a
[root@localhost~]#chown samadal:test /home/samadal/a
[root@localhost~]#ls -l /home/test
drw-r--r--. 1 samadal test 4303 5월 3 17:44 a
※ 파일/디렉토리 권한 확인하기 (사용자 계정일 때만 확인, root는 확인 필요없음)
소유권과 허가권을 같이 확인해야 한다!!!
1. 내 계정의 UID, GID 확인하기
-> grep [사용자명] /etc/passwd
2. 파일/디렉토리의 UID, GID와 비교하기
-> UID가 동일하면 소유자, GID가 동일하면 그룹, 둘 다 아니면 기타
3. 소유자, 그룹, 기타가 확인이 되면 해당 권한 확인하기
-> rw- r-- r-- 중 맞는 권한 확인하면 된다.
'Programing > Linux' 카테고리의 다른 글
리눅스 파일 (압축) (0) | 2022.12.23 |
---|---|
리눅스 권한 (특수 권한/ 사용자 복구) (0) | 2022.12.22 |
리눅스 명령어 (생성 & 삭제) (0) | 2022.12.20 |
리눅스 명령어(cp, mv) (0) | 2022.12.20 |
리눅스 명령어(ls) (0) | 2022.12.20 |