ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] ACL(Access Control List )
    서버/리눅스 2017. 4. 19. 21:49
    ACL(Access Control List)
    사용자별로 디렉터리나 파일의 권한을 줄 수 있다.

    특정 사용자, 그룹으로 디렉터리나 파일의 권한을 줄 수 있다. 

     

    분류

    1. 일반파일의 ACL

    2. 디렉터리의 ACL

    3. MASK

     

    setfacl Option

    -m : 생성  

    -x : 삭제

    -b : 초기값 (모든 권한 초기상태)

    -k : default삭제

     

    일반 파일의 ACL

    ACL 확인

    #>touch /root/file1

    #>getfacl /root/file1 

     

     

    ACL 설정

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

    u:<user_name>: r | w | x        >> 사용자이름

    g:<group_name>: r | w | x      >> 그룹이름

    m:: r | w | x                        >> Other 사용자

    #>useradd user01

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

    #>getfacl /root/file1 

    #>ll /root/file1

     

    user밑에 권한설정이 생겼으며

    파일의 권한옆에 [ + ]기호가 생겼다.

    여기까지는 이해를 했는데 그룹권한자리에 rw-가 되어있다.

    ACL을 설정하면 그룹권한자리는 Mask의 권한을 표시하는자리로 바뀌게 된다.

    따라서 ACL을 설정하면 그룹권한은 getfacl로만 확인이 가능하다.

    이때 한가지 문제가 발생한다.

    소유그룹의 권한을 변경했음에도 적용되지 않았다.

    심볼릭방식으로도 해봤는데 마찬가지로 적용되지 않았다.

    * ACL이 설정되었으면 이 명령어는 MASK의 권한을 변경하는 커멘드로 바뀌게 된것이다.

    이렇게 setfacl 명령어로 소유자, 소유그룹의 권한을 변경할 수 있다.

    그렇다면 mask란 무엇일까..?

     

    특정 ACL 삭제

     

    #>setfacl -x <acl> <path>

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

    전체 ACL 삭제

    #>setfacl -b <path>

    #>setfacl -b /root/file1

     

    디렉터리의 ACL ( Default ACL )

    디렉터리 자체 권한도 getfacl <path>로 확인이 가능하다.
    #>getfacl /root/acl

     

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

    #>setfacl -b /root/acl 

     : getfacl setfacl의 기능은 비슷하다.

    하지만 디렉터리 같은경우 하위 파일이 존재할 수 있기에 권한상속에 대해 알아보자!

     

    #권한상속

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

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

    유저> user01사용자에게 default값으로 /root/acl 디렉터리의 생성되는 하위 파일, 디렉터리에 권한을 부여한다.

     

    #결과

    default권한이 여러개 생겼다.

     

    #default권한의 변경방법

     

    앞에 default: 를 붙여서 권한을 붙여주면 된다.

    또한 /root/acl의 생성될 하위 파일들에만 적용을 했지 디렉터리 자체의 권한을 변경하지 않았으므로

    권한이 표시되는 중앙자리에는 group권한이 표시된다.

     

    #결과

    하위에 디렉터리를 만들어놓으면 /root/acl에서 default로 명세된 권한을 부여받았다.

     

    디렉터리 같은 경우는 그대로 모든 권한을 상속받았는데

    일반파일 같은 경우는 x( 실행권한 )를 자동으로 삭제시켜놓고 권한이 생성되으며 default권한도 사라졌다.

     

    #삭제

    대상 : /root/acl/dir1

    1)디렉터리 자체권한에 대한 삭제

    #>setfacl -x u:user01 /root/acl/dir1

     

    2)default 권한에 대한 일부분 삭제

    #>setfacl -x default:u:user01 /root/acl/dir1

     

    3)default 권한에 대한 전체 삭제

    #>setfacl -k /root/acl/dir1

     

     

    MASK

    최대권한(실제권한)

    각각의 r (읽기) w(쓰기) x(실행)권한은 MASK권한 이상으로 가질 수 없다.

    mask : r--로 변경해줬더니 상태는 이렇게 되었다.

    mask : r--

    user : rw-

    group : rw--

    인데 #effective:r-- 라는 문구가 생겼다.

    mask는 관리자를 제외한 사용자들에 대한 최대 권한이다.

    mask권한 이상으로 권한을 획득할 수 없다는 것이다. 혹은 설정되있더라도 동작은 하지 않는다는 것이다.

    이 권한은 r, w, x 의 권한이 각각으로 적용된다는 것이다.

    but mask의 제약은 other사용자에게는 예외이다.

    '서버 > 리눅스' 카테고리의 다른 글

    [리눅스]Quota  (0) 2017.04.20
    [리눅스] 오토마운트  (0) 2017.04.20
    [리눅스] NFS  (0) 2017.04.18
    [리눅스] SAMBA / wins-lux 공유 폴더 연결 / 에러발생  (0) 2017.04.14
    [리눅스] 기본적인 서버 구성  (0) 2017.04.14

    댓글

Designed by Tistory.