본문 바로가기
Linux Unix

[Linux] chmod로 권한 변경하기

by softserve 2023. 2. 20.
반응형

 

$ ls -l

은 현재 폴더의 파일 목록 및 자세한 정보를 확인하는 명령어이고 결과는 다음과 같습니다.

첫 번째 필드 drwxr-xr-x는 첫 번째 자리 문자( d )로 파일 유형을, 뒤의 9자리(rwxr-xr-x)로 권한 permission을 나타냅니다.

참고로 그 다음 필드는 소유권자, 파일크기, 생성날짜와 파일명을 나타냅니다.

 

파일 유형

 

위 사진에서  d 는 디렉터리,  - 는 일반 파일,  l 은 링크입니다.

그 밖에  b 는 블록 장치 특수 파일,  c 는 문자 장치 특수 파일,  p 는 파이프,  s 는 소켓을 의미합니다.

 

권한

 

 r 은 read  w 는 write  x 는 execute를 의미합니다.

 d   - 이외 유형의 파일들은 특수 파일로, 실행할 수 없기 때문에 실행 권한은 의미가 없게 됩니다.

9자리의 권한 정보는 소유자, 그룹, 기타 사용자의 권한을 나타내는 3자리 구간으로 나누어집니다.

예를 들어, 위 사진에서 1.txt 파일의 권한은  -rw-r--r--  이죠?

이는 일반 파일로서 소유자는 읽기, 쓰기를 할 수 있고 같은 그룹에 소속된 사용자 및 기타 사용자는 읽기만 할 수 있습니다.

권한은 rwx 각 자리에 1 또는 0을 넣어서 2진수로 나타낼 수도 있습니다. 즉, rw- 는 110 r--는 100 이 됩니다.

다시 이 2진수를 8진수로 바꾸면 110은 6, 100은 4가 되고 따라서 rw-r--r-- 는 644로 표현할 수 있습니다.

 

chmod

 

권한을 변경하기 위해서는 root 이거나 파일의 소유권을 가지고 있어야 합니다.

8진수 숫자로 권한을 표시하는 방법을 살펴봤는데, 이를 활용해서 다음과 같이 명령하면

$ chmod 744 1.txt

1.txt 파일의 권한을 rwxr--r--로 변경할 수 있습니다.

또는 기호를 활용하는 방법도 있습니다.

$ chmod u+x 1.txt

는 소유자(u)에 대해 실행 권한(x)을 추가해주므로 결과는 rwxr--r--가 됩니다.

기호를 정리하면 다음과 같습니다.

u 소유자 + 부여 r 읽기
g 그룹 - 제거 w 쓰기
o 기타사용자 = 특정 권한만 부여 x 실행
a 모든 사용자        

 

+와 =의 차이

+는 기존의 권한에 명시한 권한을 추가로 더해주는 용도이고,

=는 대입연산자와 같이 특정 사용자의 권한을 직접 지정해주는 것입니다.

rw-r--r-- 인 상태의 파일에 대해서

u+x 의 결과는 rwx-r--r-- 이 되지만

u=x 의 결과는 --x-r--r-- 이 됩니다.

반응형

댓글