웹 응용 프로그램을 제거한 후 실행되는 셸 스크립트가 있습니다. 이 스크립트는 애플리케이션 실행 중에 필요한 권한을 정리하도록 설계되었습니다.
find /opt/path -exec setacl -d user:myUser {} ';'
이 명령을 실행하고 acl을 제거하면 아래와 같이 acl이 남습니다.
user:101:--- /opt/path
setacl
uid를 떠나지 않고 사용자 삭제를 올바르게 호출하는 방법은 무엇입니까 ?
답변1
명령을 정확하게 인용했다면:
find /opt/path -exec setacl -d user:myUser{} ';'
중요한 공간이 누락되었습니다.
find /opt/path -exec setacl -d user:myUser {} ';'
전자는 정의되지 않은(또는 구현에 따라 정의된) 동작을 호출합니다. find
자체 {}
가 인수에 없으면 파일 이름을 확장할 수도 있고 확장하지 않을 수도 있습니다. 그러나 setacl
파일 이름 없이 명령을 호출합니다. 파일 이름과 제어 매개변수를 결합합니다 user:myUser
.
정확할 것 같지는 않습니다. 하지만 System에서 SO로 변환할 때의 오타일 뿐이기를 바랍니다.
답변2
사용자 101이 이 파일의 소유자입니까? 그렇다면 파일을 다른 사용자 ID로 변경해야 합니다 chown
( 호출에 추가로 또는 호출 대신 setacl
). 각 파일은 사용자와 그룹에 속하며 ACL도 있습니다.
저는 HP/UX에서 ACL을 사용한 적이 없으므로 뭔가 빠졌을 수도 있습니다.
명령을 실행하기 전에 및 의 출력을 표시하면 ls -ld /opt/path
도움이 될 수 있습니다 .getacl /opt/path
find