728x90

특정 디렉토리 읽기쓰기 권한 부여 ACL


ACL(Access Control List)은 디렉토리 및 파일에 특정 사용자, 그룹에 특정 권한을 넣어 줄 수 있는 기능이다.


share 라는 노무팀 디렉토리가 있는데, 이 디렉토리는 노무팀원들만 읽고 쓸 수 있다.
여기에 프로젝트팀원 중 한 명에게 share 디렉토리를 읽을 수 있는 권한을 주어야 하는데,
프로젝트팀원을 노무팀 그룹에 넣을 수는 없는 일이다.
타 팀원을 노무팀 그룹에 넣을 경우, share 디렉토리 말고도 노무팀의 다른 소유 디렉토리를 읽을 수 있는 위험이 있고, 여러 가지 혼선이 있을 수 있기 때문이다.

이럴 때 ACL을 사용하면 문제는 해결된다.


setfacl -m <rules> <target directory>
- u:<uid>:<perms>
  사용자에 대한 access ACL을 설정. 사용자명이나 UID를 지정 가능. 사용자는 시스템 상 어느 사용자라도 가능
  허가 (<perms>)는 읽기, 쓰기와 실행을 가리키는 r, w, x 문자를 조합하여 설정
- g:<gid>:<perms>
  그룹에 대한 access ACL을 설정. 그룹명이나 GID를 지정 가능. 그룹은 시스템 상 어느 그룹이라도 가능
  허가 (<perms>)는 읽기, 쓰기와 실행을 가리키는 r, w, x 문자를 조합하여 설정
- o:<perms>
  파일의 그룹에 속한 사용자가 아닌 다른 사용자에 대한 access ACL을 설정
  허가 (<perms>)는 읽기, 쓰기와 실행을 가리키는 r, w, x 문자를 조합하여 설정


디렉토리를 생성하고 난 이후 디렉토리에 부여된 권한이 어떻게 되는지 확인



특정 사용자 jsk005 에게 읽기와 쓰기 권한 부여 하고 난 다음에 권한 확인


setfacl 은 ACL 설정 명령,

getfacl 은 설정된 ACL 확인 명령이다.
ACL은 ACL옵션이 적용된 파티션에만 쓸 수 있다.
mv로 이동하면 ACL설정은 유지되나 cp로 복사하면 ACL설정은 사라진다. cp에 -p 옵션을 붙이면 ACL설정은 유지된다.

setfacl -x <rules> <target directory>
  사용자, 그룹이나 기타 그룹에 대한 모든 권한을 삭제하려면 -x 옵션을 사용


특정 사용자 jsk005 에게 권한 삭제하고 난 다음에 권한 확인


적용된 ACL 명령어를 제거

setfacl -b <target directory>



맨 처음 디렉토리를 만들고 나서 getfacl 로 권한을 확인한 것과 동일한지 확인해보면 알 수 있다.

하위디렉토리까지 설정된 권한을 제거하려면 setfacl -R -b /home/share 로 명령하면 된다.


참고 : http://www.digistory.co.kr/?p=152

참고 : http://blog.pages.kr/277



728x90
블로그 이미지

Link2Me

,