防止在CentOS中删除特定文件夹

我有一个运行PureFTPd的CentOS服务器,有多个虚拟用户映射到一个系统用户。 这些虚拟用户中的每一个都被连接到与其用户名相对应的目录。 目录树是:

  • / ftp_accounts
    • / virtual_user_1
    • / virtual_user_2
    • / virtual_user_N

只有其中一个 FTP虚拟用户(我们称之为“master_virtual_user”)被ftp_accounts到主ftp_accounts目录,允许访问所有的子文件夹。

对于这个特定的“master_virtual_user”,我想阻止删除virtual_user_*文件夹,但仍然保持完整的读写访问这个目录树中的其他一切。

鉴于所有这些FTP虚拟用户都映射到同一个系统用户,有什么办法来实现这一点?

如果你可以在目录上使用不可变的标志,这将是很好的,但是你可以通过在那个不可变的目录中创build一个文件来作弊。 所以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 -iz/.i [root@hellonurse ~]# rm -rf z [root@hellonurse ~]# ls z ls: cannot access z: No such file or directory 

使用文件系统访问控制列表(ACL) – setfacl命令,取消该用户的写入权限。

setfacl -mu:master_virtual_user:rx virtual_user_*