디렉터리에 생성된 모든 파일은 bob의 소유여야 합니다.

디렉터리에 생성된 모든 파일은 bob의 소유여야 합니다.

bob이 소유한 디렉토리에서 모든 파일을 찾고 있습니다. 새 파일에 그룹 세트를 가져오기 위해 chmod g+s를 사용할 수 있다는 것을 알고 있지만 사용자를 위해 비슷한 작업을 수행할 수는 없을 것 같습니다.

이것이 내가 생각해낸 것입니다. 아니면 다른 방법이 있습니까?

[root@testmachine ~]# mkdir /testing.d
[root@testmachine ~]# setfacl -m default:u:bob:rwx,default:g:testgroup:rwx /testing.d/
[root@testmachine ~]# touch /testing.d/someone
[root@testmachine ~]# getfacl /testing.d/someone 
getfacl: Removing leading '/' from absolute path names
# file: testing.d/someone
# owner: root
# group: root
user::rw-
user:bob:rwx            #effective:rw-
group::r-x          #effective:r--
group:testgroup:rwx     #effective:rw-
mask::rw-
other::r--

[root@testmachine ~]# getfacl /testing.d/
getfacl: Removing leading '/' from absolute path names
# file: testing.d/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:bob:rwx
default:group::r-x
default:group:testgroup:rwx
default:mask::rwx
default:other::r-x
[root@testmachine ~]# 

감사해요

답변1

일반적으로 특정 사용자가 소유한 디렉터리에 파일을 만드는 것은 불가능합니다(해당 사용자가 먼저 파일에 쓰지 않는 한). 그 이유는 (Linux를 포함한 대부분의 Unix 변형에서)문서 공개 금지.

그러나 다른 파일 소유권을 제공하는 파일 시스템을 사용하면 이 효과를 얻을 수 있습니다. 여기서 한 가지 가능성은파일 시스템 바인딩, 소유권과 권한을 수정할 수 있는 다양한 위치의 파일 시스템 보기를 제공합니다. 이 옵션( 에 필요) bindfs없이 루트가 아닌 사용자로 실행하는 경우 , binfs 보기에서 생성된 파일은 binfs 파일 시스템을 제공하는 사용자가 소유하게 됩니다.--no-allow-otheruser_allow_other/etc/fuse.conf

Bob이 파일에 액세스할 수 있어야 하지만 Bob이 파일의 소유권을 가질 필요는 없는 경우 질문에 설명된 방식으로 ACL을 사용하는 것이 가장 좋은 방법입니다.

관련 정보