linux setfacl 权限授予不同的用户并能够以递归方式写入

linux setfacl 权限授予不同的用户并能够以递归方式写入

我在同一组中有两个用户 1. 用户 1:数据用户 2. 用户 2:web用户 3. 组:apache

使用 setfact 为任一用户设置权限都可以递归创建目录/文件。

例如:目录 /web/foo/ 设置了什么权限/掩码(使用 setfact),以便 datauser/webuser 可以在 foo 目录下创建目录(递归)。

#datauser : mkdir -p /web/foo/datadir/
#webuser : mkdir -p /web/foo/datadir/webdir
#datauser : touch /web/foo/datadir/webdir/datafile.txt
#webuser : touch /web/foo/datadir/webfile.txt
etc...

I try with below command, but when any directory created using      
webuser:apache, then datauser:apache not able to write under that.

setfacl -Rm u:webuser:rwX,d:u:webuser:rwX foo
setfacl -Rm u:datauser:rwX,d:u:datauser:rwX foo
setfacl -Rm m:rwX,d:m:rwX foo

umask 和 chmod 不起作用。
[datauser]$ mkdir foo
[datauser]$ chmod g+ws foo
[datauser]$ umask 002 foo

[datauser]$ getfacl foo
文件:foo
所有者:datauser 组:apache
标志:-s-
用户::rwx
组::rwx
其他::rx

现在使用 webuser:apache user 创建目录 [PHP : mkdir(/web/foo/browser, 0755, ture); ] 目录权限为: [datauser]$ getfacl foo/browser/ file: foo/browser/
Owner: apache
group: apache
flags: -s-
user::rwx
group::rx
other::rx

现在在浏览器目录下创建文件。权限被拒绝。

[datauser]$ touch foo/browser/command.txt
touch:无法触摸'foo/browser/command.txt':权限被拒绝

答案1

如何使用?这将在目录中chmod g+ws /web/foo设置setgid和位,从而使所有创建的文件的组都位于该目录中,并允许所有组用户写入该目录并在其中创建其他目录。writeapacheapache

您需要做的另一件事是更新您的,umask以便组默认具有写入权限。因此,您应该umask 002在启动文件中添加某个位置,以便组默认获得写入权限。

相关内容