본문 바로가기
프로그래밍/LINUX

[LINUX 31일차] CentOS ACL(일반파일 ACL,default ACL) / Quota(확인,시작/종료,상태 확인)

by B T Y 2017. 4. 21.
반응형

CentOS ACL(일반파일 ACL,default ACL) / Quota(확인,시작/종료,상태 확인)에 대해서 정리한다.



※ ACL ( Access Control List )



1. 일반 파일의 ACL


1) ACL 확인

#>getfacl <path>

#>touch /root/file1

#>getfacl /root/file1

# file: root/file1

# owner: root

# group: root

user::rw-

group::r--

other::r--

#>ls -l /root

-rw-r--r--  1 root root   0  4월 19 21:22 file1



( 소유자와 소유그룹에 acl이 적용된 /root/file1의 모양이다 )



2) ACL 설정

#>setfacl -m <권한> <path>

u:<user_name>:r|w|x

g:<group_name>:r|w|x

m::r|w|x

#>useradd user01

#>setfacl -m u:user01:rw /root/file1

#>setfacl -m g:user01:r /root/file1

-rw-rw-r--+ 1 root root   0  4월 19 21:22 file1


#>getfacl /root/file1

# file: root/file1

# owner: root

# group: root

user::rw-

user:user01:rw-

group::r--

group:user01:r--

mask::rw-

other::r--


* 소유그룹은 ACL이 적용된 이후 권한을 변경할때는 chmod가 아닌 setfacl로 변경해줘야한다.

( chmod를 이용해서 소유그룹 권한을 바꾸려고하면 mask(최대 권한)이 변경 된다 )



3) mask

- 최대 권한 ( 실제 권한 )

- 소유자 acl 권한과 소유그룹, 소유그룹 acl 권한에 적용된다.

( 소유자나 other 권한에는 적용되지 않는다 )



4) ACL 삭제

- 특정 ACL 삭제

#>setfacl -x <acl> <path>

#>setfacl -x g:user01 /root/file1


- 전체 ACL 삭제

#>setfacl -b <path>

#>setfacl -b /root/file1



( setfacl -x 명령어를 이용해서 /root/file1에 소유그룹 acl만 삭제한 결과이다 )



( setfacl -b 명령어를 이용하면 해당 디렉터리(파일)에 전체 acl을 삭제 시킬수 있는걸 볼 수 있다 )



2. 디렉터리 파일 ACL ( default ACL )


1) default ACL 설정

#>setfacl -m default:<권한> <path>

#>setfacl -m default:u:user01:rwx /root/acl

#>setfacl -m default:o::x /root/acl



* default ACL을 디렉터리에 설정하면 해당 디렉터리에 모든 하위 디렉터리(파일)에 

default ACL이 적용 된다.



( 디렉터리에 default ACL을 지정하면 해당 디렉터리에는 적용되지 않는걸 볼 수 있다 )


* 위 그림에서 만약 default ACL이 적용 됬다면 ls -ld로 확인 했을때 권한이 drwxrwxrx가 나와야한다.

( ACL이 설정 되면 ls 명령어로 확인 했을때 소유그룹 권한 대신 mask 권한으로 보인다 )



2) default ACL 삭제

#>setfacl -x u:user01 /root/acl/dir1  ( 특정 ACL만 삭제 )


#>setfacl -k /root/acl/dir1  ( default ACL만 삭제 )

#>setfacl -b /root/acl/dir1  ( 전체 ACL 삭제 )



( setfacl -x를 이용해서 /root/acl/dir1 디렉터리에 특정 ACL인 default:user01 ACL만 삭제했다 )



( setfacl -k를 이용하면 default ACL만 삭제가 가능하고 setfacl -b를 이용하면 전체 acl 삭제가 가능한걸 확인 할 수 있다 )





※ Quota


- 사용자별 디스크 사용용량 제한을 위해 사용


1. 설치

#>yum install -y quota.x86_64



2. 마운트

1) 디스크 추가

2) 파티션 생성

3) 파일시스템 생성

4) 마운트

#>mount <dev_name> <mount_point>

#>mkdir /quota

#>mount /dev/mapper/mirror-lv01 /quota


- 확인

#>df -h



3. 설정

/etc/fstab ( Auto Mount를 설정하는 파일 )



1) device_path

2) mount_point

3) 파일 시스템

4) 마운트 옵션

5), 6) 장치 검사/내용 백업



( vi로 /etc/fstab에 접근해서 해당 내용을 추가 했다 )


- 적용

#>reboot

or

#>mount -o remount /dev/mapper/mirror-lv01


- 확인

#>mount



( reboot을 하거나 remount를 해준뒤에 mount 명령어로 확인 해보면 /dev/mapper/mirror-lv01이 /quota에 정상적으로 마운트 된걸 볼 수 있다 )



4. Quota


1) Quota 확인

#>quotacheck <option> <dev_name>


-a    마운트 되어있는 모든 장치 ( quota )

-v    상세 출력

-u    user quota ( default 값 )

-g    group quota



( db파일을 만들어주지 않고 quotacheck 명령어를 사용하면 제일 처음에는 에러가 발생하지만 그러면서 

자동으로 db 파일을 만들어주고 그다음 실행부터는 실행이 잘 되는데 두번째 실행때 에러는 저널링 파일 시스템을 

사용하지 않아서 생기는 에러이다 )


* db파일은 자동으로도 만들어주지만 저런 에러를 보지 않기 위해서는 직접 만들어주고 난후에 실행하면 된다.



2) Quota 시작/종료

#>quotaon <option> <dev_name>

#>quotaoff <option> <dev_name>


-a    모든 마운트 장치 ( quota )

-v    상세 출력

-u    user quota

-g    group quota


3) Quota 상태 확인

#>repquota <option> <dev_name>


-a    모든 마운트 장치 ( quota )

-u    user quota

-g    group quota



( quota를 시작 시키고 repquta를 이용해서 상태를 확인 할 수 있다 )



반응형

댓글