PureFTPdを実行しているCentOSサーバーがあり、複数の仮想ユーザーが単一のシステムユーザーにマッピングされています。これらの各仮想ユーザーは、ユーザー名に対応するディレクトリにchrootされます。ディレクトリツリーは次のとおりです。
1つだけこれらのFTP仮想ユーザー(彼を「master_virtual_user」と呼びましょう)はメインのftp_accounts
ディレクトリにchrootされ、すべてのサブフォルダーにアクセスできるようになります。
この特定の「master_virtual_user」については、onlyvirtual_user_*
フォルダーの削除を防ぎながら、完全な読み取り/書き込みアクセスを維持したいと思います。このディレクトリツリーの他のすべてに。
これらのFTP仮想ユーザーがすべて同じシステムユーザーにマッピングされていることを考えると、これを実現する方法はありますか?
ディレクトリで不変フラグを使用できればいいのですが、そのディレクトリに不変のファイルを作成することで不正行為を行うことができます。そう touch virtu_user_X/.immutable
そしてchattr +i virt_user_x/.immutable
。例えば:
[root@hellonurse ~]# cd /root
[root@hellonurse ~]# mkdir z
[root@hellonurse ~]# cd z
[root@hellonurse z]# touch .i
[root@hellonurse z]# chattr +i .i
[root@hellonurse z]# cd ..
[root@hellonurse ~]# rm -rf z
rm: cannot remove ‘z/.i’: Operation not permitted
[root@hellonurse ~]# chattr -i z/.i
[root@hellonurse ~]# rm -rf z
[root@hellonurse ~]# ls z
ls: cannot access z: No such file or directory
ファイルシステムアクセス制御リスト(ACL)-setfacl
コマンドを使用して、そのユーザーの書き込み権限を奪います。
setfacl -m u:master_virtual_user:r-x virtual_user_*