파일 또는 디렉토리의 권한을 확인하기 위해 ls -l 명령어를 입력하면 아래와 같은 출력 형식으로 나열되는 디렉토리/파일 들을 볼 수 있다.
출력값의 가장 앞은 문자값으로 파일 유형을 나타낸다. 출력되는 문자값들은 아래와 같다.
- : 일반 파일
d : directory
l : link (심볼릭 링크 파일)
p : named pipe
s : socket
c : character device (터미널과 모뎀같이 바이트의 열로 데이터를 처리하는 디바이스)
b : block device (하드 드라이브나 CD-ROM 같이 블록 단위의 데이터를 처리하는 디바이스)
디렉토리 또는 파일에 접근하여 읽거나 쓰거나 실행할 권리를 나타내는 것으로 3개씩 끊어서 사용자, 그룹, 기타 사용자로 관리한다.
user: 파일을 만든(생성) 소유주
group: 파일을 만든 소유주가 속한 그룹의 사용자
other: 기타 사용자
허가권 변경 명령어인 chmod를 사용하여 아래와 같은 명령어를 사용해본 적이 있을것이다.
chmod 755 test.txt
chmod 바로 뒤에 오는 숫자는 퍼미션의 속성을 표현하는 것으로 이 숫자들은 8진수를 이용하여 표현되었다.
| 속성 | 파일 | 디렉토리 |
|---|---|---|
| r | 열기, 읽기 | 파일 나열(정렬) 허용 |
| w | 쓰기, 잘라내기 | 파일 생성/삭제/이름 변경 가능 |
| x | 파일 실행 | 디렉터리 들어올 수 있도록 허용 |
| 8진법 | 권한 |
|---|---|
| 0 | --- |
| 1 | --x |
| 2 | -w- |
| 3 | -wx |
| 4 | r-- |
| 5 | r-x |
| 6 | rw- |
| 7 | rwx |
$ chmod [권한] [파일/디렉터리]
ex) chmod 755 test.txt
→ 사용자는 모든 권한 허용, 그룹과 다른 사용자는 읽기+실행만 가능
$ chmod [option]
→ option에 들어가는 기호는 누구에게, 어떤 권한을, 부여할지 제거할지를 기호로 표현하여 나타낸다.
→ 기호는 아래 표 참고 ***
| 설명 | |
|---|---|
| u : 사용자 허가권 | |
| g : 그룹 허가권 | |
| o : 기타 사용자 허가권 | |
| a : 모두(전체) | |
| 기호 | + : 권한 추가 |
| - : 권한 제거 | |
| = : 권한 지정 | |
| r : 읽기 | |
| w : 쓰기 | |
| x : 실행 |
ex) $ chmod u=rw test.txt
→ test.txt 파일에 대하여 사용자(u)에 읽기, 쓰기(rw)권한 지정, 초기화(=)
ex) $ chmod u+rw test.txt
→ test.txt 의 소유자(u)에게 읽기(r) , 쓰기(w) 권한을 추가 부여(+)
ex) $ chmod a=rw test.txt
→ test.txt 파일을 이용하는 모두(a)에게 읽기(r), 쓰기(rw) 권한 지정, 초기화(=)
$ chmod a=rw file.txt
ex) $ chmod g-w test.txt
→ test.txt 의 소유그룹(g)에게 쓰기(w) 권한 제거(-)
ex) $ chmod o-wxr test.txt
→ 그외 계정에게 모든 권한을 제거(-)
→ rwx의 순서는 변경하여도 무방. o-rwx = o-wxr
| 설명 | |
|---|---|
| -R, --recursive | 특정 디렉터리 내의 파일과 디렉터리에 대해 재귀적으로 허가권 변경 |
| -C, --changes | 변경된 파일이나 디렉터리에 대한 자세한 정보를 출력 |
| -f , --silent, --quite | 에러메시지 출력을 제한 |
| --reference | 모드 대신 파일에 지정한 모드를 사용 |
$ chmod -R 755 myfiles
→ 디렉터리 이하의 모든 파일과 디렉터리에 대해 (-R)
→ 사용자는 읽기, 쓰기, 실행(4+2+1) 권한을 부여하고 ,
→ 그룹과 다른 사용자는 읽기 및 실행(4+1) 권한 부여
파일이나 디렉터리의 사용자 및 그룹의 소유권을 변경.
소유권 변경은 오직 루트 사용자만 가능하다. (sudo, 비밀번호 입력 필요할 확률 高)
$ chown [options] owner:[group] files
→ [options]는 chmod 옵션과 같다.
ex) $ chown user11 test.txt
→ # test.txt 파일을 소유자를 user11로 변경
ex) $ sudo chown user7:group3 test.txt
→ test.txt 파일의 소유자를 사용자는 user7, 그룹은 group3으로 소유자 변경
ex) $ sudo chown -R user1:group3 myDirectory
→ myDirectory 디렉터리 이하 모든 파일 및 디렉터리에 대한 소유자를 사용자는 user1, 그룹은 group3으로 소유자 변경