목표
1. 파일의 속성정보 변경
2. 파일의 소유권/그룹권 변경
3. 파일의 퍼미션 변경
1. 파일의 속성정보 변경
- chown, chgrp, chmod, umask 등의 명령어가 있다.
- 파일의 속성 정보
# ls -l file1
-rw-r--r-- 1 root root 2017 3월 13 17:55 file1
- rw- r-- r-- 1 root root 2017 3월 13 17:55 file1
(파일 유형) (파일소유자권한) (그룹권한) (다른 사용자권한) (링크 수) (파일소유자) (파일그룹) (작성시간) (파일명)
- 파일의 속성정보 변경 명령어
파일 유형 (File Type) :
퍼미션 모드(Permission Mode) : chmod
링크 수(Link Count) : ln
파일소유자(Owner) : chown
파일그룹(Group) : chgrp
파일 크기(File Size) :
작성시간(Mtime) : touch -t
파일명(File Name) : mv
2. 파일의 소유권/그룹권 변경
▷ chown CMD
- 파일의 소유주와 그룹을 바꾼다.
- 명령어 형식
# chown user01 file1 /* file1의 소유자를 user01로 변경/*
# chown user01.other file1 /* file1의 소유자를 user01로, 그룹을 other로 변경 */
# chown .other file1 /* file1의 그룹을 other로 변경 */
# chown -R user01 dir1
# chown -R user01:other dir1
- 명령어 옵션
-c : 바뀌어 지는 파일들에 대해서만 자세하게 보여준다.
-f : 바뀌어 지지 않는 파일들에 대해서 오류 메세지를 보여주지 않는다.
-v : 작업 상태를 자세히 보여준다.
-R : 경로와 그 하위 파일들 모두를 바꾼다.


▷ chgrp CMD
- 파일의 사용자 그룹을 바꾼다.
- 명령어 형식
# chgrp user01 file1
- 명령어 옵션
-c : 작업 상태를 자세히 보여주나, 바뀌어 지는 것만 보여준다.
-f : 그룹이 바뀌어 지지 않는 파일들에 대한 오류 메세지를 보여주지 않는다.
-v : 작업 상태를 자세히 보여준다.
-R : 주로 file 이름으로 경로를 사용해서, 그 안에 있는 모든 파일도 함꼐 group으로 바꾼다.

3. 파일의 퍼미션 변경
▷ chmod CMD
- 파일 접근 권한을 바꾼다.
- 명령어 형식
# chmod u+x file1 /* 심볼릭 모드(symbolic mode) */
# chmod 755 file1 /* 옥탈 모드(Octal Mode) */
- 심볼릭 모드(symbolic mode)
- 사용자 기호
u(user) : 파일/디렉토리의 소유자
g(group) : 파일/디렉토리의 그룹
o(other) : 다른 사용자
a(all) : 소유자, 그룹, 다른사용자 모두 (아무 표시 안할 경우 기본적으로 설정됨)
- 설정 기호
+ : 지정된 퍼미션을 허가한다.
- : 지정된 퍼미션을 금지한다.
= : 지정한 퍼미션만 허가하고 나머지는 금지 시킨다.
- 권한 기호
r : read (읽기 권한이 없으면 파일 안에 있는 내용을 볼 수 없다. 수정하기 위해서는 파일을 봐야 하므로 반드시 필요)
w : write ( 파일을 수정하는 권한 r 없이 w 만 있으면 수정이 불가능)
x : excute (파일 실행 권한)

- 옥탈 모드(Octal Mode)

파일 소유자 권한 : 400 = 읽기 권한, 200 = 쓰기 권한, 100 = 실행 권한
그룹 사용자 권한 : 40 = 읽기 권한, 20 = 쓰기 권한, 10 = 실행 권한
기타 사용자 권한 : 4 = 읽기 권한 2 = 쓰기 권한, 1 = 실행 권한
--- : 권한없음 0
--x : 실행 권한 1
-w- : 쓰기 권한 2
-wx : 쓰기 실행 3
r-- : 읽기 권한 4
r-x : 일기 실행 5
rw- : 읽기 쓰기 6
rwx : 일기 쓰기 실행 7

※ 파일과 디렉토리의 퍼미션 정확한 의미 (기억해두자)
- 파일에 대한 퍼미션
r(read) : 파일을 읽을 수 있는 권한
w(write) : 파일을 수정 할 수 있는 권한
x(excute) : 파일을 실행 할 수 있는 권한
- 디렉토리에 대한 퍼미션
r(read) : 디렉토리안에 ls CMD 수행 할 수 있는 권한
w(write) : 디렉토리 안의 파일들 삭제 또는 생성 할 수 있는 권한
x(excute) : 디렉토리 안에 cd CMD 수행 할 수 있는 권한
▷ umask CMD
- 디렉토리와 파일의 기본 퍼미션을 결정해주는 명령어이다.

- 명령어 형식
# umask
# umask 027
# umask 022

디렉토리 (777 - 022 = 755)
파일 (666 - 022 = 644)
※되도록이면 건들지 않는것이 좋다고 한다.
▷ SetUID/SetGID ( 말이 좀 햇갈린다. )
- 파일에 대한 소유권을 잠시 다른 사용자에게 빌려 줌으로 인해 소유권이 없는 사용자가 잠시 동안 파일에 대한 소유권으로 권한을 행사 할 수 있는 것을 말한다.

- 특수권한 SetUID, SetGID, sticky bit 퍼미션

# chmod 755 file1
# chmod 0755 file1 - 특수권한 없음
# chmod 4755 file1
(0755 : rwxr-xr-x)
(4755 : rwsr-xr-x) - SetUID 권한 있음
# chmod 6755 file1
(0755 : rwxr-xr-x)
(6755 : rwsr-sr-x) - SetUID, SetGID 권한 모두 있음
# chmod 2755 file1
(0755 : rwxr-xr-x)
(2755 : rwxr-sr-x) - SetGID 권한 있음
# chmod 1777 dir1
(0777 : rwxrwxrwx)
(1777 : rwxrwxrwt) - sticky bit 권한 있음 얘만 알파벳 t 를 쓴다
※ 실행권한이 있고 특수권한이 있을 땐 소문자 s 를 사용한다. 실행권한이 없고 특수권한이 있으면 대문자 S를 사용한다. (ex : # chmod 4655 file1 ( rw-r-x-r-x -> rwSr-x-r-x)
▷ sticky Bits
- 공유 목적으로 사용되는 디렉토리의 경우 사용자들이 파일을 마음대로 삭제할 수 없도록 sticky 권한을 부여해 줄 수 있다.
- 디렉토리에 쓰기 권한이 있어도 파일 삭제권한을 제거 할 때 사용한다.