Zero To One
Chmod 본문
파일 권한 보기
파일 디렉토리의 모든 파일에 대한 모든 권한을 보려면 ls와 함께 명령을 사용해야한다.
예를 들어 다음을 입력하면,
ls -lah
다음과 비슷한 결과물을 볼 수 있을 것이다.
-rw-r--r-- 1 user1 group1 62 Jan 15 16:10 myfile.txt
drwxr-xr-x 2 user1 group1 2048 Jan 15 17:10 Example
위의 출력 예에서 각 줄의 첫 번째 문자는 나열된 개체가 파일인지 디렉토리인지를 나타낸다.
디렉토리는 (d)로 표시된다.
d가 없는 -로 표현된다면 myfile.txt파일이 일반 파일임을 나타낸다.
문자 rwx는 다양한 권한 수준을 나타낸다.
Permission | Files | Directories |
r | can read the file | can ls the directory |
w | can write the file |
can modify the directory's contents
|
x | can execute the file | can cd to the directory |
- 소유자 또는 사용자 권한 : 디렉토리(d) 슬롯 뒤의 첫 번째 세 문자 집합은 소유자(사용자라고도함)에 대한 권한 설정을 나타낸다.
ex) -rw-r--r-- 에서 소유자 권한은 rw- 소유자가 파일을 읽고 쓸 수 지만 프로그램으로 실행할 수는 없음을 나타낸다.
ex) drwxr-xr-x에서 소유자 권한은 rwx소유자 디렉토리를 보고, 수정하고, 입력할 수 있음을 나타낸다.
- 그룹권한 : 두번째 rwx 집합은 그룹 권한을 나타낸다. 위의 예에서 네 번째 열은 group1 그룹 이름이다.
ex) -rw-r--r--에서 그룹 구성원은 파일을 읽을 수 만 있다.
ex) drwxr-xr-x에서 그룹 구성원은 디렉토리를 보고 들어갈 수 있다.
- 기타 권한 : 최종 rwx세트는 "기타"에 대한 것이다. 그룹 외부에 있는 사람. 위의 두 예에서 모두 그룹과 동일한 권한으로 설정되어 있다.
파일 권한 변경
파일 및 디렉토리 권한을 변경하려면 명령 chmod(변경 모드)을 사용한다.
파일 소유자는 읽기,쓰기,실행권한을 추가(+)하거나 빼거나(-), 사용자(u), 그룹(g) 또는 기타(o)의 권한을 변경 할 수 있다.
기호 방법
Access class | Operator | Access Type |
u (user) | + (add access) | r (read) |
g (group) | - (remove access) | w (write) |
o (other) | = (set exact access) | x (execute) |
a (all: u, g, and o) |
예를 들어 Unix 프롬프트에서 모든 사람이 현재 디렉토리의 파일을 읽을 수 있는 권한을 추가하려면,
chmod a+r myfile
엑세스 클래스를 생략하면, 모두로 간주되므로 이전 예제를 다음과 같이 입력할 수도 있다.
chmod +r myfile
단일 명령으로 여러 클래스와 유형을 지정할 수도 있다. 예를 들어, 라는 파일에 대한 그룹 및 다른 사용자의 읽기 및 쓰기 권한을 제거하려면(자신에게만 읽기 및 쓰기 권한이 있음) myfile다음을 입력한다.
chmod go-rw myfile
동일한 명령에서 다른 권한을 추가 및 제거하도록 지정할 수도 있습니다. 예를 들어, 쓰기 권한을 제거하고 모든 사용자에 대한 실행을 추가하려면 myfile다음을 입력한다.
chmod a-w+x myfile
이 chmod명령은 디렉토리에서도 작동한다. 예를 들어, 라는 하위 디렉토리에서 다른 사용자의 쓰기 권한을 제거 mydir하려면 다음을 입력한다.
chmod ow mydir
현재 디렉토리에 대해 동일한 작업을 수행하려면 다음을 입력한다.
chmod o-w
지정된 디렉토리 아래의 모든 하위 디렉토리에서 권한을 재귀적으로 변경하려면 -R옵션을 추가하십시오. 예를 들어 다른 사용자에게 디렉토리(mydir)와 여기에 포함된 모든 하위 디렉토리에 대한 실행 권한을 부여 하려면 다음을 입력합니다.
chmod -R o+x mydir
절대형
명령 을 사용하는 다른 방법 chmod은 모든 액세스 클래스와 유형을 함께 결정하는 세 개의 숫자 집합을 지정하는 절대 형식입니다. 특정 속성만 변경할 수 있는 대신 파일 권한의 전체 상태를 지정해야 합니다.
사용자(또는 소유자), 그룹 및 기타의 세 가지 숫자가 순서대로 지정됩니다. 각 숫자는 읽기, 쓰기 및 실행 액세스를 지정하는 값의 합계입니다.
PermissionNumber
Permission | Number |
Read (r) | 4 |
Write (w) | 2 |
Execute (x) | 1 |
부여하려는 권한의 번호를 추가하십시오. 예를 들어:
- file myfile의 경우 자신에게 읽기, 쓰기 및 실행 권한을 부여(4+2+1=7)하고 그룹의 사용자에게 읽기 및 실행 권한(4+0+1=5)을 부여하고 다른 사용자에게만 실행 권한(4+0+1=5)을 부여합니다. 0+0+1=1), 다음을 사용합니다.
chmod 751 myfile
- 현재 디렉토리에 대한 읽기, 쓰기 및 실행 권한을 자신에게만 부여하려면 다음을 사용합니다.
chmod 700
세 자리 숫자 시퀀스는 다음 표에서 선택한 속성의 합으로 생각할 수 있습니다.
Read by owner | 400 |
Write by owner | 200 |
Execute by owner | 100 |
Read by group | 040 |
Write by group | 020 |
Execute by group | 010 |
Read by others | 004 |
Write by others | 002 |
Execute by others | 001 |
허용하려는 모든 액세스를 합산합니다. 예를 들어, (200+100=300)의 소유자에게 쓰기 및 실행 권한을 myfile부여하고 모두(400+040+004=444)에게 읽기 권한을 부여하려면 다음을 입력합니다.
chmod 744 myfile
777 | anyone can do anything (read, write, or execute) |
755 | you can do anything; others can only read and execute |
711 | you can do anything; others can only execute |
644 | you can read and write; others can only read |
다른 사용자와 데이터를 공유할 때 발생하는 일반적인 문제
소유한 파일 또는 디렉토리를 다른 사람과 공유하려면 해당 사용자에게 읽기 및 실행 권한을 부여할 수 있습니다. 그러나 공유 중인 항목 위의 모든 상위 디렉토리에도 동일한 권한을 설정해야 합니다. 그렇지 않으면 사용자는 파일이나 디렉토리 위의 모든 상위 디렉토리를 보고 변경할 수 없다.
파일 시스템을 물리적 장소로 생각한다면 권한은 다른 디렉토리에 액세스할 수 있는 키처럼 작동합니다.
- 읽기( r) 권한을 사용하면 사용자 가 디렉토리를 볼 수 있습니다 (ls).
- 실행( x) 권한을 통해 사용자 는 (cd) 디렉토리로 이동할 수 있습니다.
- 쓰기( w) 권한은 사용자가 파일 을 추가하고 제거 할 수 있도록 합니다.
예를 들어 누군가에게 에 대한 액세스 권한을 부여하고 싶다고 가정해 보겠습니다 /N/u/username/Carbonate/scripts. 경로를 물리적 공간으로 상상해보십시오.
- /N당신이 살고있는 게이트 커뮤니티입니다.
- /u는 단위입니다.
- /username당신의 아파트입니다.
- /Carbonate귀하의 아파트에 있는 방입니다.
- /scripts당신의 방에 있는 옷장입니다.
누군가가 당신의 스크립트를 실행하고 싶다면 그 사람에게 의 모든 부분에 대한 액세스 권한을 부여해야 합니다 /N/u/username/Carbonate/scripts. 다음과 같은 방법으로 시도할 수 있습니다.
chmod +rx /N/u/username/Carbonate/scripts
그러나 사용자 가 상위 디렉토리에 대한 권한도 가지고 있지 않은 한 사용자는 하위 디렉토리를 읽거나 액세스할 수 없습니다 . 즉, 위의 명령은 옷장의 키를 제공하지만 방이나 아파트의 키를 제공하지 않습니다.
이 문제를 해결하려면 x제어하는 상위 디렉터리에 권한을 부여하세요.
chmod +x /N/u/username/
chmod +x /N/u/username/Carbonate
이렇게 하면 다른 사람들이 (cd) scripts디렉토리로 이동할 수 있습니다. r상위 디렉터리에는 권한 이 없기 때문에 사용자는 디렉터리 내에서만(ls) scripts파일 시스템의 나머지 부분을 비공개로 유지할 수 있습니다.
'Linux' 카테고리의 다른 글
1) 리눅스 성능을 모니터링하는 20가지 명령줄 도구 (0) | 2022.02.14 |
---|---|
How to Use netstat on Linux (한글 번역) (0) | 2022.02.14 |
시스템 모니터링 관련 명령어 (0) | 2022.02.14 |
CLI와 리눅스 기본 명령어 (0) | 2022.02.11 |