본문 바로가기

운영/CentOS

[CentOS] Permission

ls -l로 상세 정보를 확인했을 때 나오는 첫번째 정보

  소유자     소유그룹   다른사용자

-  ---       ---        ---            -> 2진수로 이루어져 있으며 1은 on, -은 off

   rwx       rwx         rwx


r : 읽기

w : 쓰기

x : 권한


리눅스에서 권한은 rwx 조합으로 이루어지며 소유자, 소유 그룹, 다른 사용자로 구분되어 사용


※ chown

 - 파일의 소유자 및 소유 그룹 변경, 그룹 생략 가능

 use) chown [option] 계정명[:그룹명] 파일명

 * 옵션

  > R : 하위 디렉터리까지 소유자와 소유 그룹 변경




※ chgrp

 - 소유 그룹 변경

 use) chgrp [option] 그룹명 파일명

 * 옵션

  > R : 하위 디렉터리까지 소유 그룹 변경




※ chmod

 - 권한 변경(상대모드, 절대모드)

 * 상대모드

  > u : user

  > g : group

  > o : other

  > a : all

  > + : 추가

  > - : 제거

  > = : 지정

  > r : 읽기

  > w : 쓰기

  > x : 실행

  ex) chmod u-r file1 : 소유자에 대한 r 권한을 제거

  chmod u+x file1 : 소유자에 대한 x 권한을 추가

  chmod u=rw file1 : 소유자에 대한 권한을 rw권한으로 지정

  chmod u+x,g=rw,o-r file1 : file1권한을 소유자는 실행 권한 추가, 소유 그룹은 읽기, 쓰기권한으로

지정, 그 외 사용자는 읽기 권한 제거

 * 절대모드

  - 숫자로 권한을 표시

  ex) chmod 755 file1 : file1의 권한을 rwxr-xr-x로 변경


 * 리눅스에서 쓰이는 특수 권한

  > SetUID(4000) : 파일 실행동안 소유자의 권한으로 실행, 실행 파일에만 설정 가능

  소유자 권한 중 실행 권한을 x가 아닌 s로 명시

  > SetGID(2000) : 파일 및 디렉터리 실행 시 소유 그룹의 권한으로 실행

  소유 그룹 권한 중 실행 권한을 x가 아닌 s로 명시

  > Sticky Bit(1000) : 모든 사용자가 읽기, 쓰기가 가능하지만 소유자만 삭제 가능

일반 사용자 권한 중 실행 권한을 x가 아닌 t로 명시




※ umask

 - 새로 생성되는 디렉터리 및 퍼미션의 기본값 설정, 파일/디렉터리의 기본 값에서

   umask 설정된 값을 제외하고 남은 권한이 기본 값으로 설정됨

 use) umask 퍼미션

 * 계산되는 방법

 file : rw-rw-rw- : 666

 dir  : rwxrwxrwx : 777    → 파일과 디렉터리를 만들었을 때 전체로 가질 수 있는 권한

 위의 전체권한에서 umask를 빼줌

 root umask : ----w--w- : 022

 file : rw-r--r--

 dir : rwxr-xr-x

 wina umask : -------w- : 002

 file : rw-rw-r--

 dir : rwxrwxr-x


 p.s. /etc/profile 에서 umask의 기본 설정 값 확인 가능

위의 장소에서 umask값을 임의로 변경해도 재부팅 후에 기본값으로 돌아옴

보통 etc의 profile은 잘 건들지 않지만, 홈 디렉터리의 bash_profile은 수정할 수도 있음




※ setfacl

 - 파일의 권한 설정

 use) setfacl [option] [설정] 파일

 * 옵션

 > m : 수정

 > x : 삭제

 > d : 디렉터리 내의 새로 생성되는 파일에 자동 acl 적용

 ex) setfacl -m u:wina:rwx file1 → file1에 wina 계정이 rwx권한을 갖도록 설정

 setfacl -x u:wina file1     → file1 ACL설정에서 사용자가 wina로 정의된 ACL 정책 삭제




※ getfacl

 - ACL 확인




※ chattr

 - 속성 변경

 * 옵션

 > a : 파일에 내용 추가 가능, 삭제 불가능, 로그파일 등에 설정

 > c : 커널에 의해 자동 압축된 상태

 > d : dump로 백업이 되지 않도록 설정

 > i : 파일 변경, 삭제, 이름 변경, 내용 추가, 링크생성 등을 못하도록 설정

 > s : 파일 삭제 될 경우에 블록이 0으로 세팅되어 그 블록에 쓰기가 발생

 > S : 파일 내용이 변경될 경우 디스크 동기화

 > u : 파일 삭제시 내용이 저장되어 삭제되기 전의 데이터 복구 가능




※ lsattr

 - 속성 확인




 - Permission 실습

작업 : root 계정

1. 최상위 디렉터리(/) 하위에 permtest 이름의 디렉터리 생성

2. linux1, linux2 이름을 가지는 계정 생성

3. permtest 디렉터리의 소유자를 linux1로 설정

4. 최상위 디렉터리에 file1 파일을 생성하고 파일의 내용을 12345로 입력

5. file1 파일을 /permtest 디렉터리로 이동(같은 파일이름으로)

6. 퍼미션 설정


-- linux1 계정으로 로그인                        --linux2 계정으로 로그인

소유자는 모든 권한을 부여                        ① cd /permtest

    ② ls

    ③ cat file1

    ④ echo 67890 >> file1

→ Permission Denied

    ⑤ rm -rf file1

→ Permission Denied


'운영 > CentOS' 카테고리의 다른 글

[CentOS] User, Group 관리  (0) 2015.12.30
[CentOS] vi, vim 활용  (0) 2015.12.19
[CentOS] find / grep 명령어  (0) 2015.12.19
[CentOS] 리눅스 디렉터리 구조  (0) 2015.12.07
[CentOS] 기초명령어 실습  (0) 2015.12.06