파일 또는 디렉토리의 권한을 확인하기 위해 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으로 소유자 변경