IT/기초 지식

[Linux] Linux의 파일, 폴더 권한 확인과 변경 (chmod)

개발자 두더지 2021. 6. 17. 22:55
728x90

파일/디렉토리의 권한 (퍼미션) 확인


아래의 Linux 커맨드로 현재의 디렉토리 안의 파일이나 디렉토리의 정보를 확인한다.

$ ll 혹은 ls -l

그럼 다음과 같이 커맨드 라인에 출력될 것이다.

-rw-r--r--  1 user group      9  1월 1 00:00 test.txt
drwxr-xr-x  6 user group  20480  1월 1 00:00 Downloads

 

퍼미션 읽는 방법

「-rw-r--r--」나 「drwxr-xr-x」와 같이 앞에 10개의 문자에 대해서 무엇을 의미하는지에 대해 알아보자.

맨 처음의 첫 번째 문자는 종류를 나타낸다.

종류 의미
- 파일
d 디렉토리(폴더)
l 심볼릭 링크

2번째 문자부터 4번째 문자까지는 파일의 소유자에 대한 권한을 표시하는 것이고,

5번째 문자부터 7번째 문자까지는 파일의 소유 그룹에 대한 권한을 나타낸다.

그리고 남은 8번째 문자부터 10번째 문자는 타인의 권한을 나타낸다.

「-rw-r--r--」를 예로 설명을 하자면

"종류"가 "파일"이며, 

"소유자"는 "읽기와 쓰기"의 권한이 있고,

"소유 그룹"은 "읽기" 권한만 있으며,

마지막으로 "타인"은 "읽기"권한이 있다는 것을 의미한다.

또 다른 예로 「drwxr-xr-x」를 이용해 설명하자면,

"종류"는 "디렉토리(폴더)"이고,

"소유자"에게는 "읽기와 쓰기, 실행"의 권한이 있고,

"소유 그룹"은 "읽기와 실행"의 권한이 있으며,

"타인"은 "읽기와 실행"의 권한이 있음을 의미한다.

 

 

액세스(접근) 권한의 변경


계속해서 액세스 권한을 변경하는 방법에 대해 알아보자.

퍼미션의 변경은 chmod커맨드를 이용한다.

 

숫자로 지정하는 방법

$ ls -l 
-rw-r--r--  1 user group      9  1월 1 00:00 test.txt
$ chmod 764 hoge.txt
$ ls -l
-rwxrw-r--  1 user group      9  1월 1 00:00 test.txt

 

위의 커맨드는 test.txt의 퍼미션을 확인 > 변경 > 확인하는 형태로 이루어진다. 여기서 chmod 구문에 대해 조금 더 상세히 설명하도록 하겠다.

$ chmod 764 test.txt

앞서 말했듯, 파일의 퍼미션의 변경은 chmod커맨드를 이용한다. 기본 구문은 다음과 같다.

chmod 모드 파일명

모드의 숫자는 다음을 의미한다.

모드(숫자) 모드(알파벳) 권한
4 r 읽기
2 w 쓰기
1 x 실행

위의 합계치를 "소유자", "소유 그룹", "타인"의 순서로 입력하는 것으로 퍼미션을 변경한다.

따라서 「764」의 의미를 해석해보자면,

"소유자"는 "읽기, 쓰기, 실행" 권한을, "소유 그룹"에 대해서는 "읽기, 쓰기"를 , "타인"에게는 "읽기"권한을 부여하는 것이 된다.

 

알파벳으로 지정하는 방법

퍼미션을 알파벳으로 지정할 수 있다. 이 방법은 조금 더 직관적이므로 선호하는 사람이 많다.

먼저 숫자로 지정했을 때와 동일하게 내용을 알파벳으로 지정하는 방법으로 실행해 본 내용은 다음과 같다.

$ ls -l
-rw-r--r--  1 user group      9  1월 1 00:00 test.txt
$ chmod u+x test.txt
$ ls -l
-rwxr--r--  1 user group      9  1월 1 00:00 test.txt
$ chmod g+w test.txt
$ ls -l
-rwxrw-r--  1 user group      9  1월 1 00:00 test.txt

알파벳으로 퍼미션을 변경하는 기본적인 방식은 아래와 같다.

chmod 변경대상 변경방법 변경내용 대상파일

위에서 작성했던 커맨드를 예로 다시 설명하자면,

$ chmod u+x test.txt

기본적으로 u가 변경대상, +가 변경방법, x가 변경내용이 된다.

변경 대상, 변경 방법, 변경 내용에 대해서는 아래의 표로 정리했다.

변경 대상

변경대상 의미
u 유저
g 그룹
o 타인
a 모두

변경 방법

변경방법 의미
= 지정한 권한으로 한다.
+ 지정한 권한을 부여한다.
- 지정한 권한을 제거한다.

변경 내용

변경내용 의미
r 읽기
w 쓰기
x 실행

표를 바탕으로 앞서 봤던 커맨드를 다시 살펴보자면, test.txt에 대해 소유자의 실행권한을 추가로 부여하는 것이라고 할 수 있다.

$ chmod u+x test.txt

물론 각각의 옵션을 다음과 같이 여러개 지정하는 것도 가능하다.

$ chmod go+w test.txt
$ chmod a-wx test.txt

참고자료

https://qiita.com/shisama/items/5f4c4fa768642aad9e06

 

728x90