Evitando a exclusão específica de pastas no CentOS

6

Eu tenho um servidor CentOS executando PureFTPd com vários usuários virtuais mapeados para um único usuário do sistema. Cada um desses usuários virtuais é chrooted para um diretório correspondente ao seu nome de usuário. A árvore de diretórios é:

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

Apenas um desses usuários virtuais de FTP (vamos chamá-lo de "master_virtual_user") é chrootado no diretório principal ftp_accounts , permitindo acesso a todas as subpastas.

Para este "master_virtual_user" específico, gostaria de evitar a exclusão de somente as pastas virtual_user_* , mas ainda manter acesso total de leitura / gravação a todo o resto nesta árvore de diretórios.

Dado que todos esses usuários virtuais FTP estão mapeando para o mesmo usuário do sistema, existe alguma maneira de conseguir isso?

    
por Ralph 16.03.2015 / 00:58

2 respostas

5

Seria bom se você pudesse usar o sinalizador imutável nos diretórios, mas você pode trapacear criando um arquivo nesse diretório que seja imutável. Então, touch virtu_user_X/.immutable then chattr +i virt_user_x/.immutable . Por exemplo:

[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
    
por 16.03.2015 / 03:28
3

Remova as permissões de gravação para esse usuário usando listas de controle de acesso (ACL) do sistema de arquivos - setfacl command.

setfacl -m u:master_virtual_user:r-x virtual_user_*

    
por 16.03.2015 / 05:48