使用 ssh 时 ACL 设置在使用 scp 命令时无效

使用 ssh 时 ACL 设置在使用 scp 命令时无效

我已经设置了一台 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 强制用户双向操作

相关内容