English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Linux chmod(영문 전체 이름: change mode) 명령어는 파일에 대한 사용자 권한을 제어하는 명령어입니다
Linux/Unix 파일 호출 권한은 세 단계로 나뉩니다: 파일 소유자(Owner), 그룹(Group), 다른 사용자(Other Users)
파일 소유자와 슈퍼 유저만 파일이나 디렉토리의 권한을 변경할 수 있습니다. 절대 모드(8진수 숫자 모드)와 기호 모드를 사용하여 파일 권한을 지정할 수 있습니다.
사용 권한 : 모든 사용자
chmod [-cfvR] [--help] [--version] mode file...
mode : 권한 설정 문자열, 다음과 같은 형식으로 설정됩니다:
[ugoa...][[+-=][rwxX]...][,...]
그 중:
u는 파일 소유자를 의미하며, g는 파일 소유자와 같은 그룹에 속한 사람을 의미하며, o는 그 외의 사람을 의미하며, a는 이 세 가지 모두를 의미합니다.
+ 추가 권한을 나타내며,- 취소 권한을 나타내며, =은 권한을 유일하게 설정합니다.
r은 읽을 수 있는 것을 의미하며, w는 쓸 수 있는 것을 의미하며, x는 실행할 수 있는 것을 의미하며, X는 파일이 서브 디렉토리인 경우 또는 파일이 이미 실행 가능으로 설정된 경우에만 해당합니다.
기타 매개변수 설명:
-c : 파일 권한이 실제로 변경되면 변경 동작을 표시합니다
-f : 파일 권한이 변경되지 않더라도 오류 메시지를 표시하지 않습니다
-v : 권한 변경의 상세 정보 표시
-R : 현재 디렉토리에 있는 모든 파일과 서브 디렉토리에 대해 동일한 권한 변경을 수행합니다(재귀 방식으로 각각 변경)
--help : 도움말 표시
--version : 버전 표시
기호 패턴을 사용하여 여러个项目을 설정할 수 있습니다: who(사용자 유형), operator(연산자) 및 permission(권한), 각 프로젝트의 설정은 쉼표로 구분할 수 있습니다. chmod 명령어는 who가 지정한 사용자 유형에 파일에 대한 접근 권한을 변경합니다. 사용자 유형은 who 위치에 위치한 하나나 여러 개의 문자로 설명됩니다. 예를 들어, who의 기호 패턴 테이블에 나와 있습니다:
who | 사용자 유형 | 설명 |
---|---|---|
u | user | 파일 소유자 |
g | group | 파일 소유자가 속한 그룹 |
o | others | 모든 다른 사용자 |
a | all | 사용자, 다음과 같습니다 ugo |
operator의 기호 패턴 테이블:
Operator | 설명 |
---|---|
+ | 지정된 사용자 유형에 권한을 추가합니다 |
- | 지정된 사용자 유형의 권한을 제거 |
= | 지정된 사용자 권한을 설정합니다. 즉, 사용자 유형의 모든 권한을 다시 설정 |
permission의 기호 모드 표 :
모드 | 이름 | 설명 |
---|---|---|
r | 읽기 | 읽기 권한으로 설정 |
w | 쓰기 | 쓰기 권한으로 설정 |
x | 실행 권한 | 실행 권한으로 설정 |
X | 특수 실행 권한 | 파일이 디렉토리 파일이거나, 다른 유형의 사용자가 실행 권한을 가지고 있을 때만, 파일 권한을 실행 권한으로 설정합니다 |
s | setuid/gid | 파일이 실행될 때, who 매개변수에 지정된 사용자 유형에 따라 파일의 setuid나 setgid 권한을 설정합니다 |
t | 스타일 비트 | 스타일 비트를 설정합니다. 슈퍼 유저만이 이 비트를 설정할 수 있으며, 파일 소유자 u만이 이 비트를 사용할 수 있습니다 |
chmod 명령어는 권한을 오ctal 숫자로 지정할 수 있습니다. 파일이나 디렉토리의 권한 비트는 다음과 같습니다9비트 위치를 설정하여, 각 3비트를 그룹으로 나누어, 그들은 파일 소유자(User)의 읽기, 쓰기, 실행, 그룹(Group)의 읽기, 쓰기, 실행, 그리고 기타 사용자(Other)의 읽기, 쓰기, 실행을 각각 나타냅니다. 역사적으로, 파일 권한은 비트 마스크에 배치되었으며, 마스크에서 지정된 비트는 설정됩니다1쓰기 권한을 설정합니다. 슈퍼 유저만이 이 권한을 설정할 수 있으며, 파일 소유자 u만이 이 권한을 사용할 수 있습니다
# | 권한 | rwx | 이진 |
---|---|---|---|
7 | 읽기 + 쓰기 + 실행 | rwx | 111 |
6 | 읽기 + 쓰기 | rw- | 110 |
5 | 읽기 + 실행 | r-x | 101 |
4 | 읽기만 | r-- | 100 |
3 | 쓰기 + 실행 | -wx | 011 |
2 | 쓰기만 | -w- | 010 |
1 | 실행만 | --x | 001 |
0 | 없음 | --- | 000 |
예를 들어, 765 이렇게 설명됩니다:
소유자의 권한을 숫자로 표현: 소유자의 세 권한 비트의 숫자 합계. 예를 들어 rwx, 즉 4+2+1 그래야 합니다 7。
그룹의 권한을 숫자로 표현: 그룹의 권한 비트의 숫자 합계. 예를 들어 rw- 즉 4+2+0, 그래야 합니다 6。
기타 사용자의 권한 숫자 표현: 기타 사용자 권한 비트의 숫자 합계. 예를 들어 r-x, 즉 4+0+1 그래야 합니다 5。
파일 file1.txt 파일을 누구나 읽을 수 있게 설정합니다 :
chmod ugo+r file1.txt
파일 file1.txt 파일을 누구나 읽을 수 있게 설정합니다 :
chmod a+r file1.txt
파일 file1.txt와 file2.txt 파일 소유자와 같은 그룹에 속한 사용자가 쓸 수 있지만, 그 외의 사람들은 쓸 수 없게 설정합니다 :
chmod ug+w,o-w file1.txt file2.txt
ex1.py 파일 소유자에게 실행 권한을 추가합니다:
chmod u+x ex1.py
현재 디렉토리에 있는 모든 파일과 서브 디렉토리를 누구나 읽을 수 있게 설정합니다 :
chmod -R a+r *
또한 chmod은 권한을 숫자로 표현할 수도 있습니다. 예를 들어 :
chmod 777 file
문법은 다음과 같습니다:
chmod abc file
a, b, c 각각 숫자이며, User, Group, Other의 권한을 나타냅니다.
기본적으로 rwx 속성이면 4+2+1=7;
기본적으로 rw- 속성이면 4+2=6;
기본적으로 r-x 속성을 4+1=5。
chmod a=rwx file
과
chmod 777 file
효과가 동일합니다
chmod ug=rwx,o=x file
과
chmod 771 file
효과가 동일합니다
chmod 사용 시 4755 filename 이 프로그램에 root의 권한을 부여합니다。
명령어 | 설명 |
---|---|
chmod a+r file | file의 모든 사용자에 대해 읽기 권한을 추가 |
chmod a-x file | file의 모든 사용자에 대한 실행 권한을 제거 |
chmod a+rw file | file의 모든 사용자에 대해 읽기 쓰기 권한을 추가 |
chmod +rwx file | file의 모든 사용자에 대해 읽기 쓰기 실행 권한을 추가 |
chmod u=rw,go= file | file의 소유자에 대한 읽기 쓰기 권한을 설정하고, 그룹과 다른 사용자에 대한 file의 모든 권한을 비우습니다(공백은 권한이 없음을 의미) |
chmod -R u+r,go-r docs | docs 디렉토리와 그 서브디렉토리 계층 구조에 있는 모든 파일에 사용자에게 읽기 권한을 추가하고, 그룹과 다른 사용자에 대한 읽기 권한을 제거 |
chmod 664 file | file의 소유자와 그룹에 대한 읽기 쓰기 권한을 설정, 다른 사용자에 대한 읽기 권한을 설정 |
chmod 0755 file | 相当于u=rwx (4+2+1), go=rx (4+1 & 4+1)。0 특별 모드가 없습니다。 |
chmod 4755 file | 4설정 설정사용자 ID비트, 나머지는 u=rwx (4+2+1), go=rx (4+1 & 4+1)。 |
find path/ -type d -exec chmod a-x {} \; | path에 대한 실행 권한을 제거/그리고 그 모든 디렉토리(파일을 제외하고)의 모든 사용자, '-type f'과 파일 |
find path/ -type d -exec chmod a+x {} \; | 모든 사용자가 경로 path를 통해 브라우징을 허용/ |