我有用户bala-sftp。每当用户将文件写入文件夹 /balab/settlement/report 时,当前都是
-rw-rw-r-- 1 bala-sftp sftponly 5295 Oct 18 19:00 settlementreport_switch_20201018.csv
但应该得到许可
-rw-r----- 1 bala-sftp sftponly 5295 Oct 18 19:00 settlementreport_switch_20201018.csv
我如何通过 setfacl 实现这一点?
答案1
这将确保创建的新文件/balab/settlement/report
是组可读的,但不是组可写的。
setfacl -m -d g::r /balb/settlement/report
这是一个实际的例子:
stew ~$ umask 0002 # New files will be -rw-rw-r-- like yours
stew ~$ cd $(mktemp -d) # Going to a new directory
stew /tmp/tmp.JgZyxzKcf8 $ getfacl . # It has no ACL rules yet
# file: .
# owner: stew
# group: stew
user::rwx
group::---
other::---
stew /tmp/tmp.JgZyxzKcf8 $ touch before # File to demonstrate pre-ACL rule
stew /tmp/tmp.JgZyxzKcf8 $ setfacl -d -m g::r . # Set the default acls to group-read-only
stew /tmp/tmp.JgZyxzKcf8 $ touch after # File to demonstrate post-ACL rule
stew /tmp/tmp.JgZyxzKcf8 $ ls -lr
total 0
-rw-rw-r-- 1 stew stew 0 Nov 2 12:39 before # Pre-ACL is world readable
-rw-r----- 1 stew stew 0 Nov 2 12:39 after # Post-ACL is group readable only
新的可组写文件有点奇怪。如果bala-sftp
的umask
输出是0022
(Linux 默认),那么您可能需要删除现有的 ACL。使用 执行此操作setfacl -b /balb/settlement/report
。我怀疑bala-sftp
是 ,这umask
就是0002
为什么我umask
在测试期间将自己的设置设置为那样。