다음 권한을 가진 디렉터리가 있습니다.
lighttpd drwx------
여기에는 다음 파일이 포함되어 있습니다.
lighttpd.pid -rw-r--r--
불행하게도 실행을 시도할 때:
cat lighttpd/lighttpd.pid
소유자도 아니고 자신이 속한 그룹의 구성원도 아닌 사용자에 대해 다음 메시지가 표시됩니다.
고양이: lighttpd/lighthttpd.pid: 권한이 거부되었습니다.
소유자도 그룹의 구성원도 아닌 사용자가 lighttpd.pid에 액세스할 수 있게 하려면 어떻게 해야 합니까?
답변1
디렉토리 외부의 파일에 대한 하드 링크를 생성하면 작동합니다. - EG ln lighttpd/lighttpd.pid example/lighttpd.pid
. 사용자는 example/lighttpd.pid
액세스 없이 볼 수 있습니다 lighttpd/
.
답변2
x
"other" 디렉터리에 lighthttpd
실행/검색() 권한 부여.
$ chmod o+X lighthttpd
대문자 X
파일 모드 비트 선택기chmod
실행/검색은 파일이 디렉터리인 경우(또는 일부 사용자에 대해 이미 실행 권한이 있는 경우)에만 활성화됩니다.
실행/검색 비트가 디렉터리에 설정되면 영향을 받는 사용자는 open()
디렉터리에 들어가(호출) 그 안에 있는 파일과 디렉터리에 액세스할 수 있습니다. 또한 읽기( r
) 권한이 필요합니다.파일 자체(문제에 따라 이미 설정되어 있습니다.)
읽기( r
) 권한 없음디렉토리에, 사용자는 디렉토리의 내용을 얻을 수 없으므로 액세스하려는 파일의 이름을 미리 알아야 합니다.
기본 파일 시스템이 지원하는 경우Posix 액세스 제어 목록, 다음을 사용하여 디렉터리에 실행/검색 권한을 부여할 수도 있습니다.setfacl
특정 사용자에 대해소유자 또는 그룹 할당을 조정하지 마십시오.
$ setfacl -m u:user:x lighthttpd
acl
마운트 옵션 /run을 사용하여 파일 시스템이 마운트되었는지 확인하여 파일 시스템이 Posix ACL을 지원하는지 확인할 수 있습니다.mount
:
$ mount | grep /dev/sdaX
/dev/sdaX on /mountpoint type ext4 (rw,acl)
acl
마운트 출력에 없으면 여전히 해당 파일 시스템 유형에 대한 기본 옵션 중 하나일 수 있습니다 . 이를 확인할 수 있습니다.tune2fs
:
$ sudo tune2fs -l /dev/sdaX |grep acl
Default mount options: user_xattr acl
acl
활성화되어 있지 않고 어떤 이유로든 모든 사용자에게 디렉토리에 들어갈 수 있는 권한을 부여하고 싶지 않은 경우 다음을 수행할 수 있습니다.라키시의 조언그리고 사용자가 액세스할 수 있도록 하려는 파일을 파일 시스템의 다른 경로 이름에 연결하십시오.
답변3
자세히 읽지는 않았지만 man setfacl
필요한 것 같습니다.
man setfacl
부분:
예
Granting an additional user read access setfacl -m u:lisa:r file Revoking write access from all groups and all named users (using the effective rights mask) setfacl -m m::rx file Removing a named group entry from a file's ACL setfacl -x g:staff file Copying the ACL of one file to another getfacl file1 | setfacl --set-file=- file2 Copying the access ACL into the Default ACL getfacl --access dir | setfacl -d -M- dir