Protegendo diretórios em uma raiz chroot'ed fs

1

Então, estamos tentando reformar um servidor de entrega de FTP mais antigo que também funciona como um terminal rsync. Em cada usuário chroot há uma estrutura de diretórios que se parece com isso:

/.
├─── usr/
├─── lib/
└─── ...(customer data)

O ideal seria adicionar um diretório /data no chroot e ter dito aos clientes anos atrás para enviarem seus dados para lá. No entanto, não fizemos isso no passado e não podemos mudar a estrutura no futuro próximo.

Eu queria saber se há uma combinação de permissões que permitiria ao meu usuário ainda criar novos arquivos no diretório /, mas não mover ou renomear os dois diretórios que existem atualmente. Eu suponho que isso pode ser feito com as ACLs, mas não sei como. Então, como um teste

  1. echo cust_data > customer_file : deve ser permitido
  2. mv customer_file customer_file2 : deve ser permitido
  3. mkdir customer_dir : deve ser permitido
  4. rm usr : deve ser proibido
  5. mv usr usr_something : deve ser proibido

Existe uma política ACL que eu possa definir para fazer isso?

    
por Christopher 17.03.2017 / 21:42

1 resposta

0

Defina a propriedade do diretório chroot / como root:root :

chown root:root /path/to/chroot/rootdir

depois defina o sticky bit :

chmod 1777 /path/to/chroot/rootdir

Deixe /usr e /lib como está, provavelmente algo como root -owned e root -apenas gravável. Isso deixará os usuários capazes de manipular arquivos como quiserem, mas não poderão modificar /usr e /lib de qualquer forma.

Por a página Linux chmod.1 man :

The restricted deletion flag or sticky bit is a single bit, whose interpretation depends on the file type. For directories, it prevents unprivileged users from removing or renaming a file in the directory unless they own the file or the directory; this is called the restricted deletion flag for the directory, and is commonly found on world-writable directories like /tmp. For regular files on some older systems, the bit saves the program's text image on the swap device so it will load more quickly when run; this is called the sticky bit.

    
por 18.03.2017 / 15:21