Server/Cent OS

Linux 파일관리 - 권한(Perminssion)

heyoon2j 2019. 7. 3. 17:33

■ 파일 관리

1. 파일 Owner, Group 변경

· 명령어: chown owner:group file

 => -R 옵션: 경로와 그 하위 파일들을 모두 변경한다.

 => -h 옵션: 심볼릭 링크 자체 파일의 Owner, Group 변경 / 적용하지 않으면 심볼릭 링크가 가리키는 파일의 소유자가 변경된다.

- 변경은 슈퍼 유저만 가능하다.

 

· 실습

 

1) Owner만 변경

 

2) Group만 병경 

 

3) Owner, Group 모두 변경

 

4) 변경 시 링크 파일의 변경 확인

- 링크 파일은 바뀌지 않는다.

 

5) -h 옵션 없이 링크 변경했을 때

- 링크 파일이 아닌 가리키고 있는 b.txt가 변경된다.

 

6) -h 옵션 추가 후 링크 변경했을 때

- 링크파일 link-b.txt만 변경된다.

 

 

2. 파일 권한 변경

· 명령어: chmod [Mode(표현)] file

 => -R 옵션: 경로와 그 하위 파일들을 모두 변경한다.

- 변경은 파일 소유주나 슈퍼 유저만 가능하다.

 

: 파일종류

: Owner 권한

: Group 권한

: Other 권한

 

 

·  권한 의미

    * https://eunguru.tistory.com/115 참고

 

·  문자 표현

 1) 대상

  - u: User

  - g: Group

  - o: Other

  - a: all

 

 2) 연산

  - "+": 추가

  - "-": 제거

  - "=": 해당 권한으로 설정, 기존 권한은 사라짐

 

 3) 권한 

  - r: Read

  - w: Write

  - x: Execute

 

Ex> 

- u, g, o에 모든 권한 부여

 

- u에 rwx 권한 제거

 

·  8진수 표현 

 - : 특수권한

 - : Owner 권한

 - : Group 권한

 - : Other 권한

 

 1) 표현 숫자

  - r: 4

  - w: 2

  - x: 1

  - s(UID): 4

  - s(GID): 2

  - t: 1

 

2) 표현 방법

 - 0: ---

 - 1: --x

 - 2: -w-

 - 3: -wx

 - 4: r--

 - 5: r-x

 - 6: rw-

 - 7: rwx

 

Ex>

- 0755에 해당하는 rwxr-xr-x로 변경된 것을 확인할 수 있다.

 

- 특수권한에 1을 줬으므로 Sticky Bit의 표현인 t가 뒤쪽에 생긴 것을 확인할 수 있다.

 

- 특수권한에 4를 줬으므로 SETUID의 표현인 s가 Owner 권한에 생긴 것을 확인할 수 있다.

 

- 특수권한에 5를 줬으므로 4 SETUID와 1 Sticky Bit의 표현인 s가 Owner 권한에, t가 뒤쪽에 생긴 것을 확인할 수 있다.

 

- 특수권한에 7을 줬으므로 2 SETGID가 추가되어, Group 권한에 s가 추가된 것을 확인할 수 있다.

 

 

3. File ACL - setfacl / getfacl

· 명령어: setfacl [Option] [Permission] [File / Directory]

- 추가적으로 Permission을 수정할 수 있다.

  => -R 옵션: 경로와 그 하위 파일들을 모두 변경한다.

 => -m 옵션:  modify, 권한 수정

 => -x 옵션:  remove=acl, 해당 권한 삭제

 => -k 옵션:  remove-default, default 권한 전부 삭제

 

Ex>

- setfacl -m u:aa:rw a.txt: a.txt에 user 권한에 aa 사용자 rw 권한을 추가한다.

- setfacl -x u:aa: a.txt: a.txt에 aa 사용자 권한을 제거한다.

- setfacl -m d:u::rw,d:g::x,d:o::w a.txt: d는 default로 이후 해당 Directory에 생성하는 모든 파일들은 해당 권한으로 상속(설정)된다. (Directory에만 적용할 수 있다)

- setfacl -m m::x a.txt: m은 mask로 추가되는 퍼미션에 대해 제한한다(최대 권한)

=> 기본 Owner와 Other 권한은 제외되고, 기본 Group과 추가 Owner, Group, Other에 대해서 제한한다.

 

 

· 명령어: getfacl [Option] [File / Directory]

- Permission 정보 확인

 => -R 옵션: Directory인 경우 해당 경로와 그 하위 Directory들을 모두 확인한다.

 => -d 옵션: 기본정보 확인

 

Ex>

- getfacl a.txt

 

 

· 실습

- 해당 파일에 대해 aa 이외에도 추가적으로 user b가 rwx 권한을 가지게 된다.

 

- Default 권한을 주게 되면 u만 추가해도 g, o(해당 디렉터리의 기본 권한)도 같이 추가된다.

 

- mask를 설정하면 위와 같이 #effective가 나오는데 현재 적용되는 권한을 얘기한다. mask가 rw이므로 group에서 x의 권한은 적용되지 않는다.

 

- 하위 Directory인 subD의 경우, 상위 Directory인 dX의 권한을 그대로 가지고 온 것을 알 수 있다.

- 단, mask는 적용되지 않는다.

 

- 옵션 -k로 삭제하는 경우 default 권한이 모두 삭제된다.

 

 

4. umask

· 명령어: umask 0222

=> 0222 대신 원하는 umask 값을 설정하면 된다(일회성 설정)

=> umask만 쓴다면 현재 쉘에서 적용되는 umask값을 출력한다.

 

- 기본으로 생성되는 File과 Directory의 권한은 허가권 - umask 값을 기준으로 설정된다.

- File 허가권: 666

- Directory 허가권: 777

- Root계정의 umask: 022

- 일반 사용자의 umask: 002

 

=> Root계정의 경우, File은 644 / Directory는 755

 

=> 일반 사용자의 경우, File은 664 / Directory는 775

'Server > Cent OS' 카테고리의 다른 글

Linux 디스크 관리 - Quota  (0) 2019.07.08
Linux 디스크 관리  (0) 2019.07.05
Linux 사용자 관리 - /etc/passwd & /etc/shadow & chage  (0) 2019.07.02
Linux 사용자 관리 - 명령어  (0) 2019.07.02
Linux 파일 관리  (0) 2019.07.02