2013-03-18 2 views
1

구현 방법에 대한 아이디어를 얻고 싶습니다. 내 문제를 조금 설명해 드리겠습니다.셸 스크립트에서 자동 ACL 검사

시나리오 : 시스템을 실행하기 위해 특정 ACL을 설정해야하는 시스템이 있습니다. 실행하기 전에 모든 것이 올바르게 설정되었는지 확인하기 위해 일종의 사전 검사를 실행할 수 있다면 좋을 것입니다.

목표 : 그들 중 하나가 잘못된 파일/폴더와 ACL을 목록에 기반 경우 경고 시스템을 시작하기 전에 그 ACL을 확인하는 스크립트를 작성합니다.

문제 : getfacl 결과가 단순한 반환 값이 아니기 때문에 그와 같은 검사를 한 유일한 방법은 결과를 구문 분석하고 각 부분을 분석하는 것입니다.

나는 당신의 많은 것을 ACL을 확인해야했다 의심하지만 확실히 너희들은 내 원인 :

사전

에서

감사합니다 모두

+1

실행하려면? – Satish

+0

예 Satish! 하지만, 아래 답변에서 larsks에게 말했듯이, 최소한의 실행에 필요한 보조금이 더 많은 경우 mather하지 않습니다. 이 경우 특정 파일에 대한 사본을 사용한 간단한 비교가 작동하지 않습니다. 하지만 제발 전진해라, 나는 단지 당신이 그것을 제안한다고 가정하고있다. :) – RLM

+0

간단한 방법은 getfacl의 출력을 얻고 필요에 따라 수정하고 앱을 설치할 위치와 비교한다. – Satish

답변

1

에 기여할 수있는 방법 Python 모듈을 사용하는 방법에 대한 pylibacl

>>> import posix1e 
>>> acl1 = posix1e.ACL(file="file1.txt") 
>>> print acl1 
user::rw- 
group::r-- 
other::r-- 
+0

흥미 롭군요 ... 저에게 새로운 소식입니다! 당신은 그것의 좋은 문서를 내게 가르쳐 주시겠습니까? – RLM

+1

http://pylibacl.k1024.org/module.html – Satish

+0

예제 스크립트는 다음과 같습니다. https://github.com/iustin/pylibacl/blob/master/test/test_acls.py – Satish

1

getfacl 결과가 단순한 리턴 값이 아니기 때문에, 그러한 점검을 수행 한 유일한 방법은 결과를 구문 분석하고 각 부분을 분석하는 것이고, 예를 들어 내가 원했던 것처럼.

정확히 무엇을하려고합니까? getfacl을 호출 한 결과를 원하는 ACL과 비교하는 것이 쉽습니다. 예를 들어, acl-i-want라는 이름의 파일에 원하는 ACL을 저장 한 가정, 당신은 같은 것을 할 수 있습니다 : 당신이 ACL 어딘가 제대로 작동의 사본이 필요 미리 확인

getfacl /path > acl-i-have 
    if ! diff -q acl-i-have acl-i-want; then 
     echo "ACLs are different." 
    fi 
+0

쉽지 않음 ... supouse 해당 응용 프로그램을 실행하는 데 필요한 최소 ACL보다 더 많은 ACL (읽기 필요하지만 실행 권한도 있음)이 있습니까? 이 경우 검사 결과는 OK 여야합니다. – RLM

관련 문제