기존 파일/디렉터리의 권한과 생성할 파일/디렉터리의 권한을 비교합니다.

기존 파일/디렉터리의 권한과 생성할 파일/디렉터리의 권한을 비교합니다.

시스템 호출을 사용하여 일부 이름 및 모드 매개변수를 사용하여 파일이나 디렉터리를 생성하는데 EEXIST.

umask현재 , euid, 및 을 알고 있다고 가정하면 egid기존 파일/디렉토리에 작업이 성공할 경우 시스템 호출이 생성하는 것과 동일한 권한이 있는지 어떻게 알 수 있습니까?

AFAIK, 클래식 권한의 경우 대답은 true .st_gid == egid && .st_uid == euid && (.st_mode & 07777) == (RequestedMode & 07777 & ~CurrentUmask)이고 발견/예상된 파일 형식이 일치하는 경우입니다.

액세스 제어 목록이 있는 시스템으로 이를 어떻게 확장합니까?

답변1

이를 ACL로 확장하려면 다음을 호출하면 됩니다.acl_get_file파일을 생성한 경로를 사용하고 ACL_TYPE_DEFAULT해당 디렉터리에 대한 기본 ACL을 요청합니다. ACL이 있는 경우 생성하려는 파일에 기본적으로 ACL이 적용됩니다.

그런 다음 acl_get_file기존 파일을 사용하여 ACL_TYPE_ACCESS파일의 실제 ACL을 검색합니다.

ACL을 비교하는 ACL 기능이 없다고 생각하므로 독자의 연습 문제로 남겨둡니다.

관련 정보