"/home/.../reboot/"에 특정 폴더가 있습니다. 변경되는 파일에 대해 읽기 전용 액세스가 필요한 일련의 사용자가 있습니다. 내 문제는 동일한 사용자에게 상위 디렉터리 파일을 볼 수 있는 권한이 없다는 것입니다.
이제 내가 할 수 있는 유일한 일은 etc/passwd 파일을 변경하여 "/home/.../reboot/"에 시작 폴더를 만드는 것입니다. 다른 폴더에 대한 모든 액세스를 차단해야 합니다. 이 디렉토리에만 액세스 권한을 부여하려면 어떻게 해야 합니까?
답변1
다른 위치에 디렉터리의 읽기 전용 보기를 만듭니다. 당신은 이것을 할 수 있습니다파일 시스템 바인딩.
문제의 디렉토리가 이고 /home/confidential/reboot
그룹의 사용자에게 읽기 전용 액세스 권한을 부여하려고 한다고 가정합니다 mygroup
. /views/mygroup/reboot
이 그룹이 액세스할 수 있는 디렉터리를 만듭니다 .
mkdir -p /views/mygroup/reboot
chown root:mygroup /views/mygroup
chmod 750 /views/mygroup
읽기 전용 보기를 만드는 데 사용됩니다 bindfs
. binfs 프로세스에는 파일을 읽고 마운트 지점에 액세스할 수 있는 권한이 있어야 합니다. 여기서는 아마도 루트로 실행할 것입니다.
bindfs -p a-w /home/confidential/reboot /views/mygroup/reboot
/home/confidential/reboot
에서 아래 파일을 사용자가 읽을 수 없는 경우 mygroup
, 읽을 수 있도록 설정하려면 권한 사양을 로 변경하세요 -p a=rX
.
시작 시 읽기 전용 보기를 생성하려면 다음 항목에 추가하세요 /etc/fstab
.
bindfs#/home/confidential/reboot /views/mygroup/reboot fuse perms=a=rX
답변2
참고로 대안은 , , bindfs
입니다 . 그 중 유일한 것은 근거가 없습니다.aufs
unionfs-fuse
rofs
aufs
fuse
모두( aufs
및 포함 bindfs
)에는 ACL이 지원되지 않는 등의 제한 사항이 있습니다(나열할 수는 있지만 효과가 없음). ACL이 필요한 경우 또 다른 옵션은 NFS를 사용하는 것입니다.
답변3
- 디렉토리에 읽기 권한이 없으면 해당 사용자는 디렉토리에 있는 파일 목록을 가져와서 액세스할 수 없습니다.
man setfacl
ACL( ) 을 사용할 수 있습니다 .