이것도 알아야 하네?

[Linux 명령어] 파일 접근 권한 및 소유 변경 본문

개발자 삶의 질 상승 지식/리눅스 사용

[Linux 명령어] 파일 접근 권한 및 소유 변경

아직 갈 길이 먼 사람 2021. 12. 9. 00:09
728x90

■ 권한

이번 시간에서는 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]

 

728x90
Comments