이번 포스트는 파일과 디렉토리의 권한설정에 대한 내용입니다.
파일과 디렉토리의 권한
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rw-rw-r-- 1 ubuntu ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
ls -l을 입력하면 맨 앞부분에 -rw-rw-r-- 와 같은 출력을 볼 수 있습니다.
맨 앞부분의 -는 파일과 디렉토리를 구분하는 문자로 -는 파일 / d는 디렉토리를 뜻합니다.
다음 문자부터 3개씩 각각 소유자 / 그룹 / 그 외 사용자에 대한 권한을 나타냅니다.
- r : 파일에 저장된 데이터를 읽기
- w : 파일에 데이터를 쓰기
- x : 파일을 실행
chmod
파일과 디렉토리에 권한을 주는 명령어로 권한을 주는 방법에는 2가지가 있습니다.
8진수를 사용한 권한설정
8진수를 사용한 권한 설정은 각 권한마다 8진수를 통해 권한을 부여하는 방법입니다.
- rw- : 6 (r:4, w:2)
- rw- : 6 (r:4, w:2)
- r-- : 4 (r:4)
위와 같이 소유자 / 그룹 / 그 외 사용자를 구분하여 8진수로 숫자를 부여하며,
맨 뒤의 문자부터 순서대로 1, 2, 4 순서로 숫자를 부여합니다.
특정 파일에 그 외 사용자의 권한에 쓰기(x) 권한을 부여하고 싶다면,
r-x로 설정이 되어야 하며 이를 8진수로 바꾸면 4(r) + 1(x) = 5 가 됩니다.
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rw-rw-r-- 1 ubuntu ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
ubuntu@ip-172-31-12-88:~$ chmod 665 test2.txt
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rw-rw-r-x 1 ubuntu ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
chmod 665 test2.txt를 통해 test2.txt의 그 외 사용자 권한에 실행권한을 부여했습니다.
직접 권한을 부여하는 방법
각 사용자를 문자로 나타내면 다음과 같습니다.
- 소유자 : u
- 그룹 : g
- 그 외 사용자 : o
- 모든 사용자 : a
위 문자를 통해 다음과 같이 직접 권한을 부여할 수 있습니다.
chmod (사용자) + (읽기, 쓰기, 실행) 파일
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rw-rw-r-x 1 ubuntu ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
ubuntu@ip-172-31-12-88:~$ chmod o+w test2.txt
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rw-rw-rwx 1 ubuntu ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
반대로 chmod o-w test2.txt를 입력하게 되면 test2.txt의 그 외 사용자에 대한 쓰기 권한이 취소됩니다.
ubuntu@ip-172-31-12-88:~$ chmod o-x test2.txt
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rw-rw-rw- 1 ubuntu ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
또한, a를 통해 모든 사용자에 대한 권한을 부여할 수 있습니다.
ubuntu@ip-172-31-12-88:~$ chmod a+x test2.txt
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rwxrwxrwx 1 ubuntu ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
chown
chown 명령어는 파일이나 디렉토리의 소유자와 그룹을 변경하는 명령어
chown (소유자):(그룹) 파일
위와 같이 chown 다음에 소유자:그룹을 입력해서 파일의 소유자와 그룹을 변경합니다.
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rwxrwxrwx 1 ubuntu ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
ubuntu@ip-172-31-12-88:~$ sudo chown root:ubuntu test2.txt
ubuntu@ip-172-31-12-88:~$ ls -l
total 16
-rw-rw-r-- 1 ubuntu ubuntu 0 Dec 29 05:20 c.txt
-rw-rw-r-- 1 ubuntu ubuntu 6 Dec 29 05:27 home
drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 29 04:56 test
-rwxrwxrwx 1 root ubuntu 17 Dec 28 08:46 test2.txt
-rw-r--rw- 1 root root 19 Dec 28 08:44 text1.txt
위 예시에서 test2.txt 의 소유자를 ubuntu 에서 root 로 변경했습니다.
이때, sudo 를 사용해 root 권한을 사용했습니다.
'리눅스' 카테고리의 다른 글
리눅스 - 기본 명령어 정리 (5) (0) | 2023.01.01 |
---|---|
리눅스 - 시스템의 날짜와 시간 설정하기 (0) | 2023.01.01 |
리눅스 - 기본 명령어 정리 (4) (0) | 2023.01.01 |
리눅스 - 기본 명령어 정리 (2) (0) | 2022.12.30 |
리눅스 - 기본 명령어 정리 (1) (0) | 2022.12.30 |