리눅스 명령어 setfacl 배우기

Setfacl 유틸리티는 파일 및 디렉토리 액세스 제어 목록 (ACL) 을 설정합니다 . 명령 행 에서 일련의 명령 다음에는 파일 순서 (다른 명령 순서가 올 수 있습니다 ...)가옵니다.

-m, -x 옵션은 명령 행에서 ACL을 필요로합니다. 여러 ACL 항목은 쉼표 (`, ')로 구분됩니다. 옵션 -M-X 는 파일 또는 표준 입력에서 ACL을 읽습니다. ACL 항목 형식은 섹션 ACL ENTRIES에 설명되어 있습니다.

--set--set-file 옵션은 파일 또는 디렉토리의 ACL을 설정합니다. 이전 ACL이 대체됩니다. 이 작업의 ACL 항목에는 사용 권한이 포함되어야합니다.

-m (--modify)-M (--modify-file) 옵션은 파일 또는 디렉토리의 ACL을 수정합니다. 이 작업의 ACL 항목에는 사용 권한이 포함되어야합니다.

-x (--remove)-X (--remove-file) 옵션은 ACL 항목을 제거합니다. POSIXLY_CORRECT가 정의되어 있지 않으면 perms 필드가없는 ACL 항목 만 매개 변수로 허용됩니다.

-M-X 옵션을 사용하여 파일을 읽을 때 setfacl은 getfacl이 생성하는 출력을 허용합니다. 한 행에 최대 하나의 ACL 항목이 있습니다. 파운드 기호 (`# ') 뒤에는 줄 끝까지의 모든 내용이 주석으로 처리됩니다.

setfacl이 ACL을 지원하지 않는 파일 시스템에서 사용되면 setfacl은 파일 모드 권한 비트에서 작동합니다. ACL이 권한 비트에 완전히 들어 가지 않으면 setfacl은 ACL을 가능한 한 가깝게 반영하도록 파일 모드 권한 비트를 수정하고 표준 오류에 오류 메시지를 기록한 다음 종료 상태가 0보다 큰 값을 반환합니다.

개요

setfacl [-bkndRLPvh] [{-m | -x} acl_spec] [{-M | -X} acl_file] 파일 ...

setfacl --restore = 파일

허가

CAP_FOWNER가 가능한 파일 소유자 및 프로세스에는 파일의 ACL을 수정할 수있는 권한이 부여됩니다. 이는 파일 모드에 액세스하는 데 필요한 권한과 유사합니다. 현재 Linux 시스템에서 CAP_FOWNER 기능을 가진 유일한 사용자는 root입니다.

옵션

-b, --remove-all

모든 확장 ACL 항목을 제거하십시오. 소유자, 그룹 및 기타의 기본 ACL 항목은 유지됩니다.

-k, --remove-default

기본 ACL을 제거하십시오. 기본 ACL이 없으면 경고가 표시되지 않습니다.

-n, --no-mask

유효 권한 마스크를 다시 계산하지 마십시오. setfacl의 기본 동작은 마스크 항목을 명시 적으로 지정하지 않는 한 ACL 마스크 항목을 다시 계산하는 것입니다. 마스크 항목은 소유하는 그룹의 모든 권한과 모든 명명 된 사용자 및 그룹 항목의 공용체로 설정됩니다. (이것은 정확하게 마스크 항목의 영향을받는 항목입니다.)

--마스크

ACL 마스크 항목이 명시 적으로 제공된 경우에도 유효 권한 마스크를 다시 계산하십시오. ( -n 옵션을 참조하십시오.)

-d, --default

모든 조작은 기본 ACL에 적용됩니다. 입력 세트의 일반 ACL 항목은 기본 ACL 항목으로 승격됩니다. 입력 집합의 기본 ACL 항목은 삭제됩니다. (그런 경우 경고가 발행됩니다).

--restore = 파일

`getfacl -R '또는 유사하게 생성 된 권한 백업을 복원하십시오. 이 메커니즘을 사용하여 전체 디렉토리 하위 트리의 모든 권한을 복원합니다. 입력에 소유자 주석 또는 그룹 주석이 있고 setfacl이 root에 의해 실행되면 모든 파일의 소유자 및 소유 그룹도 복원됩니다. 이 옵션은`--test '를 제외한 다른 옵션과 함께 사용할 수 없습니다.

--테스트

시험 모드. 모든 파일의 ACL을 변경하는 대신 결과 ACL이 나열됩니다.

-R, - 재귀 적

모든 파일 및 디렉토리에 작업을 반복적으로 적용합니다. 이 옵션은`--restore '와 섞을 수 없다.

-L, - 논리

논리 도보, 상징적 인 링크를 따르십시오. 기본 동작은 기호 링크 인수를 따르고 하위 디렉토리에서 발견 된 기호 링크를 건너 뜁니다. 이 옵션은`--restore '와 섞을 수 없다.

-P, - 물리적

물리적 인 산책, 모든 상징적 인 링크를 건너 뜁니다. 또한 심볼릭 링크 인수를 건너 뜁니다. 이 옵션은`--restore '와 섞을 수 없다.

--번역

setfacl의 버전을 인쇄하고 종료하십시오.

--도움

명령 행 옵션을 설명하는 도움말을 인쇄하십시오.

명령 행 옵션의 끝. 나머지 모든 매개 변수는 대시로 시작하는 경우에도 파일 이름으로 해석됩니다.

파일 이름 매개 변수가 단일 대시 인 경우, setfacl은 표준 입력에서 파일 목록을 읽습니다.

ACL 출품작

setfacl 유틸리티는 다음 ACL 항목 형식을 인식합니다 (명확하게하기 위해 공백이 삽입 됨).

[d [efault] :] [u [ser] :] uid [: perms ]

명명 된 사용자의 사용 권한. uid 가 비어있는 경우 파일 소유자의 권한

[d [efault] :] g [roup] : gid [: perms ]

명명 된 그룹의 사용 권한. gid 가 비어있는 경우 소유 그룹의 권한.

[d [오류] :] m [질문] [:] [: perms ]

유효 권한 마스크

[d [오류] :] o [ther] [:] [: perms ]

다른 사람의 허가.

구분 문자와 비 구분 문자 사이의 공백은 무시됩니다.

사용 권한을 포함한 적절한 ACL 항목은 수정 및 설정 작업에 사용됩니다. (옵션 -m , -M , --set--set-file ). perms 필드가없는 항목은 항목 삭제 에 사용됩니다 ( -x-X 옵션).

uidgid의 경우 이름이나 번호를 지정할 수 있습니다.

perms 필드는 파일이 디렉토리이거나 이미 일부 사용자 (X)에 대한 실행 권한이있는 경우에만 읽기 (r) , 쓰기 (w) , 실행 (x) , 실행 권한을 나타내는 문자 조합입니다. 또는 perms 필드는 8 진수 (0-7) 일 수 있습니다.

자동 생성 된 엔트리

처음에는 파일과 디렉토리에 소유자, 그룹 및 기타에 대한 세 개의 기본 ACL 항목 만 포함됩니다. ACL이 유효하려면 몇 가지 규칙을 만족해야합니다.

*

세 개의 기본 항목은 제거 할 수 없습니다. 이 기본 항목 유형 각각에 정확히 하나의 항목이 있어야합니다.

*

ACL에 명명 된 사용자 항목 또는 명명 된 그룹 개체가 포함되어있을 때마다 유효한 권한 마스크가 있어야합니다.

*

ACL에 기본 ACL 항목이 포함되어 있으면 세 가지 기본 ACL 기본 항목 (기본 소유자, 기본 그룹 및 기본 항목)이 있어야합니다.

*

기본 ACL에 명명 된 사용자 항목 또는 명명 된 그룹 객체가 포함되어있을 때마다 기본 유효 권한 마스크도 포함되어야합니다.

사용자가이 룰을 지키도록하기 위해 setfacl은 다음 조건에서 기존 항목의 항목을 작성합니다.

*

ACL에 명명 된 사용자 또는 명명 된 그룹 항목이 포함되어 있고 마스크 항목이없는 경우 그룹 항목과 동일한 권한을 포함하는 마스크 항목이 만들어집니다. -n 옵션을 지정하지 않으면 마스크 항목의 권한이 마스크 항목의 영향을받는 모든 권한의 통합을 포함하도록 추가로 조정됩니다. ( -n 옵션 설명 참조).

*

기본 ACL 항목이 작성되고 기본 ACL에 소유자, 소유 그룹 또는 기타 항목이없는 경우, ACL 소유자, 소유 그룹 또는 기타 항목의 사본이 기본 ACL에 추가됩니다.

*

기본 ACL에 명명 된 사용자 항목 또는 명명 된 그룹 항목이 포함되어 있고 마스크 항목이없는 경우 기본 ACL 항목의 기본 항목과 동일한 권한을 포함하는 마스크 항목이 추가됩니다. -n 옵션을 지정하지 않으면 마스크 항목의 사용 권한이 마스크 항목의 영향을받는 모든 사용 권한의 조합을 포함하도록 추가로 조정됩니다. ( -n 옵션 설명 참조).

사용 예

추가 사용자에게 읽기 권한 부여

setfacl -mu : lisa : r 파일

모든 그룹 및 모든 명명 된 사용자의 쓰기 권한 취소 (유효 권한 마스크 사용)

setfacl -mm :: rx 파일

파일의 ACL에서 명명 된 그룹 항목 제거

setfacl -xg : 스태프 파일

한 파일의 ACL을 다른 파일로 복사

getfacl file1 | setfacl --set-file = - file2

액세스 ACL을 기본 ACL에 복사

getfacl -a dir | setfacl -d -M- dir

POSIX 준수 1003.1e 초안 표준 17

환경 변수 POSIXLY_CORRECT가 정의되면 setfacl의 기본 동작은 다음과 같이 변경됩니다. 모든 비표준 옵션은 비활성화됩니다. ``default : ''접두사는 사용할 수 없습니다. -x-X 옵션은 권한 필드도 허용합니다 (또한 무시합니다).

관련 항목

umask (1),