对目录及其中的所有内容强制授予权限/所有权

对目录及其中的所有内容强制授予权限/所有权

我有一个目录,我希望其中的所有文件始终以某种方式获得许可和拥有,无论哪个用户编辑它们。

这很接近:

# users: wilma, betty
# group: devs contains wilma and betty.
# directory: 'dir'

chgrp -R devs dir
find dir -type d -exec chmod 2770 \{\} \+
find dir -type f -exec chmod 660 \{\} \+
setfacl -d -R -m group:devs:rwx dir
setfacl    -R -m group:devs:rwx dir

但如果其中一个用户使用 chmod(重置 acl 掩码)以及我在现实生活中见过但尚未确定它是如何发生的其他几种情况,它仍然会变得混乱!

我基本上不希望这些用户能够更改权限。

我能想到的唯一方法是制作一个 vfat fs 并将其安装在该目录上!

答案1

可以使用fuse文件系统绑定文件系统来实现这一目标。

例如,如果您希望用户 wilma 和 betty 能够共享一个文件目录,两者都具有写访问权限,并且都无法限制对方的访问权限。

假设 Wilma 是主要用户(您可以为此目的选择第三个用户),并且他们都位于“devs”组中。

wilma% mkdir src -m760
wilma% echo some content >src/file-created-by-wilma
wilma% mkdir shared
wilma% bindfs src shared -g devs -u wilma -p770 -m wilma:betty --create-with-perms=660

现在已经设置完毕,由两个用户在这个共享安装中创建一些文件......

wilma% cd shared
wilma% echo hi>file-created-by-wilma-inside-bindfs

betty% cd /path/to/shared
betty% echo hi>file-created-by-betty-inside-bindfs

查看挂载点内的文件。请注意,每个用户都将自己视为所有者!

wilma% ls -l
-rwxrwx--- 1 wilma devs file-created-by-willma
-rwxrwx--- 1 wilma devs file-created-by-willma-inside-bindfs
-rwxrwx--- 1 wilma devs file-created-by-betty-inside-bindfs


betty% ls -l
-rwxrwx--- 1 betty devs file-created-by-willma
-rwxrwx--- 1 betty devs file-created-by-willma-inside-bindfs
-rwxrwx--- 1 betty devs file-created-by-betty-inside-bindfs

查看“实际”文件...

wilma% ls -l src/
-rw-rw--- 1 wilma wilma file-created-by-willma
-rw-rw--- 1 wilma wilma file-created-by-willma-inside-bindfs
-rw-rw--- 1 wilma wilma file-created-by-betty-inside-bindfs

相关内容