chmod
셸 명령어는 파일 또는 폴더의 권한을 변경할 때 사용한다.
사용법
8진수 모드를 사용하거나 문자열 모드를 사용하여 권한을 변경할 수 있다.
# 8진수 모드의경우
chmod [옵션] [소유자권한][그룹권한][그외사용자권한] [파일또는폴더]
# 문자열 모드의 경우
chmod [옵션] [레퍼런스][연산자][권한] [파일또는폴더]
권한 확인
파일 또는 폴더의 권한은 rwx
로 표시되며 셸에서 ls -al
명령을 통해 확인할 수 있다.
맨 앞의 d
는 해당 항목이 파일인지 폴더인지를 나타내며 d
가 있으면 폴더이다.
[폴더여부][소유자권한][그룹권한][그외사용자권한]
권한은 다음과 같은 종류가 있다.
-
r
: 읽기 권한 -
w
: 쓰기 권한 -
x
: 실행 권한
예를 들어, 어떤 폴더의 권한이 drwxrw-r--
이라면,
소유자는 모든 권한(rwx
)을 가지고, 그룹에 속한 사용자는 읽기와 쓰기(rw-
)만 가능하며, 그 외의 사용자는 읽기(r--
)만 가능하다.
8진수 모드
8진수 모드는 파일 또는 폴더의 권한을 8진수를 이용해 부여하는 방식이다.
chmod [소유자권한][그룹권한][그외사용자권한] [파일또는폴더]
8진수 | 권한 | rwx 표기 |
---|---|---|
7 | 읽기, 쓰기, 실행 모두 가능 | rwx |
6 | 읽기, 쓰기만 가능 | rw- |
5 | 읽기, 실행만 가능 | r-x |
4 | 읽기만 가능 | r-- |
3 | 쓰기, 실행만 가능 | -wx |
2 | 쓰기만 가능 | -w- |
1 | 실행만 가능 | --x |
0 | 모든 권한 없음 | --- |
사용 예
예를 들어, test.txt
라는 파일의 권한을 rwxrw-r--
로 설정하려면 다음과 같이 입력한다.
chmod 764 test.txt
문자열 모드
문자열 모드는 특정 문자열을 사용해 권한을 설정하는 방법이다.
chmod [옵션] [레퍼런스][연산자][권한] [파일또는폴더]
레퍼런스
레퍼런스는 어떤 사용자에게 권한을 부여하는지를 설정한다.
레퍼런스 | 사용자 유형 | 설명 |
---|---|---|
u | 소유자 | 파일 또는 폴더의 소유자 |
g | 그룹 | 파일 또는 폴더의 그룹에 포함된 사용자 |
o | 그 외 사용자 | 소유자도 아니고 그룹에 포함되지도 않은 사용자 |
a | 모든 사용자 | 모든 사용자를 뜻하며, ugo 와 동일하다. |
연산자
연산자 | 설명 |
---|---|
+ | 기존 권한에 권한 추가 |
- | 기존 권한에서 권한 제거 |
= | 지정한 권한으로 변경 |
사용 예
test.txt
파일의 권한이 rwxrw-r--
이라면,
- 소유자의 실행 권한 삭제
chmod u-x test.txt
rw-rw-r--
- 외부사용자에 쓰기, 실행 권한 부여
chmod o+wx test.txt
rwx-rw-rwx
- 모든 사용자에게 읽기 권한만 부여
chmod a=r test.txt
r--r--r--
옵션
-R
: 권한을 폴더의 하위 경로에도 모두 적용시킨다.
example_folder
내의 모든 파일 및 폴더의 권한을 rwxrwxrwx
로 설정.
chmod -R 777 example_folder