我已经设置了一台 Arch Linux 机器,其中用户为“archie”,主要组为“users”,如下所示:
useradd -m -g users archie
每当archie
在他的 ~/shared 目录中创建文件时,我都希望该组users
获得写权限,因此我添加:
setfacl -dm u::rw,g::rw,o::r ~/shared
现在,当我通过 ssh 登录archie
并在 ~/shared 中创建一个文件时,我可以看到它可以正常工作:
touch a.txt
ls -l
-rw-rw-r--+ 1 archie users 0 Dec 6 20:05 a.txt
但是,当我scp
从客户端使用时,“w”权限未设置为users
:
scp a.txt [email protected]:/home/archie/shared
# now group users only got read permissions:
ls -l
-rw-r-r--+ 1 archie users 0 Dec 6 20:07 a.txt
我不知道为什么会出现这种情况,难道不应该scp
和使用 ssh 登录的方式一样吗?我该如何配置才能获得相同的行为scp
?
答案1
答案2
我也无法让它与 ACL 一起工作,但对我来说bindfs
这是一个解决方案 - 无论您是通过 SSH 登录还是用来scp
在那里复制文件,它都可以工作。
sudo bindfs --create-for-group=users --create-with-perms=u+rwX,g+rwX,o+rX /home/archie/shared /home/archie/shared
或者看起来/etc/fstab
像这样:
/home/archie/shared /home/archie/shared fuse.bindfs create-for-group=users,create-with-perms=u+rwX,g+rwX,o+rX 0 0
也可以看看使用 bindfs 强制用户双向操作