이것도 알아야 하네?
[Linux 명령어] 파일 접근 권한 및 소유 변경 본문
■ 권한
이번 시간에서는 Unix에서 제공하는 파일 및 디렉토리의 소유 및 접근 권한에 대해서 알아볼 예정이다. 해당 기능을 통해 사용자의 파일에 대한 권한을 제한하여 보안을 강화할 수 있다. Unix 계열 시스템에 존재하는 모든 파일 및 디렉토리는 아래의 속성을 가진다.
- Owner permissions - 파일 및 디렉토리의 소유자가 행사할 수 있는 권한
- Group permissions - 파일 및 디렉토리의 소유 그룹에 포함된 사용자가 행사할 수 있는 권한
- Other permissions - 모든 사용자가 파일 및 디렉토리에 행사할 수 있는 권한
■ 접근 권한 확인
$ls -l ./
-rw-r--r-- 1 [owner_name] [group_name] 651 12 13 23:25 node.py
-rwxr-xr-x 1 [owner_name] [group_name] 79 12 13 20:04 test2.sh
-l 옵션과 함께 ls 명령어를 사용하면, 원하는 경로에 존재하는 해당 파일 및 디렉토리의 권한을 확인할 수 있다. 10자리로 구성되어있는 첫 컬럼의 값이 권한을 의미하며, 파일인지 디렉토리인지 알려주는 첫 번째 문자를 제외하고, 세 자리씩 끊어서 위에서 설명한 세 가지 속성(Owner/ Group/ Other permissions)의 권한 범위를 보여준다. 즉, 위의 예시에서 node.py 파일의 권한은 -rw-r--r--이다. 파일이기 때문에 첫 번째 자리 값은 '-'이고, 이를 제외하면 2~4번 째 자리에 위치한 rw-는 Owner permission을, 5~7 번째 자리에 위치한 r--는 Group permissions을, 8~10 번째에 위치한 r--는 Other permissions을 의미한다. 이 때, 세자리는 순서대로 읽기 권한, 쓰기 권한, 실행 권한의 유무를 뜻한다. 예를 들어, 소유자 권한을 의미하는 2~4 번째 자리 중 첫 번째 자리의 값이 'r'이면 읽기 권한이 있음을 의마하고 '-'이면 읽기 권한이 없음을 의미한다. 해당 예시에서는 파일 소유자가 파일을 읽고 쓰는 것은 가능하나 실행하지 못한다.
■ 접근 권한 변경
chmod [symbolic/ number] [File_Name] |
1) Symbolic 방식으로 권한 변경
Chmod Operator | 설명 |
+ | 현재 권한에 추가로 권한 부여 |
- | 현재 권한에서 권한 제거 |
= | 권한 업데이트 |
Symbolic 방식으로 권한 변경 진행 시, 변경할 속성을 알파벳(u=User permissions, g=Group permissions, o=Other permissions)으로 지정하고 operator를 통해 권한을 변경한다. 여러 속성 권한을 변경할 경우는 ','(comma)로 연결하여 사용한다.
$chmod u-x,g=rw,o+r test.h
2) 숫자로 변경
권한의 3자리를 2진수로 표현하여 권한의 유무를 표현한 것이다. 권한이 있으면 2진수에서 해당 자리를 1로 없으면 0으로 나타내어 십진수로 변경하면 아래와 같이 나타낼 수 있다.
숫자 (10 진수) | 권한 (2진수) | 설명 |
0 | --- (000) | 권한 없음 |
1 | --x (001) | 실행 권한만 존재 |
2 | -w- (010) |
쓰기 권한만 존재 |
3 | -wx (011) | 쓰기, 실행 권한 존재: 2 (쓰기) + 1 (실행) = 3 |
4 | r-- (100) | 읽기 권한만 존재 |
5 | r-x (101) | 읽기, 실행 권한 존재: 4 (읽기) + 1 (실행) = 5 |
6 | rw- (110) | 읽기, 쓰기 권한 존재: 4 (읽기) + 2 (쓰기) =6 |
7 | rwx (111) | 읽기, 쓰기, 실행 권한 모두 존재: 1 (읽기) + 2 (쓰기) + 1 (실행) = 7 |
$chmod 777 test.h
위의 예시는 모든 속성에게 모든 권한을 부여하는 명령어이다.
■ 소유 정보 변경
필요한 경우에 파일 혹은 디렉토리의 소유자 및 소유 그룹을 변경할 수 있다.
1) 소유자 변경
chown [User_Name] [File_Name] |
2) 소유 그룹 변경
chgrp [Group_Name] [File_Name] |
'개발자 삶의 질 상승 지식 > 리눅스 사용' 카테고리의 다른 글
[Shell Script] Shell 개념 및 표준 입력 받기 (0) | 2021.12.13 |
---|