ユーザー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
が(Linuxデフォルト)の場合は、0022
既存のACLを削除する必要があります。これを行うために使用しますsetfacl -b /balb/settlement/report
。私はbala-sftp
そう思うので、テスト中に設定を設定umask
しました0002
。umask