ディレクトリまたはフォルダのアクセス制御リストと権限

ディレクトリまたはフォルダのアクセス制御リストと権限

ユーザー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しました0002umask

おすすめ記事