Você poderia usar o ACL. Para configurar o ACL para o Ubuntu 10.10, primeiro monte os sistemas de arquivos com a opção acl em / etc / fstab.
sudo vim /etc/fstab
UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / padrões ext4, acl 0 1
sudo mount -o remount,acl /
Em seguida, faça um grupo ao qual um usuário possa pertencer para essa finalidade.
sudo groupadd developers
sudo usermod -a -G developers $username
O usuário precisa sair e entrar novamente para se tornar um membro do grupo de desenvolvedores.
Obviamente, não faça isso se você tiver conteúdo no diretório / var / www que deseja, mas apenas para ilustrar a configuração para iniciar:
sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root.developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public
Em seguida, substitua as referências a "/ var / www" por "/ var / www / public" em um arquivo de configuração e recarregue.
sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload
Se quisermos restringir a exclusão e renomeação de todos, exceto o usuário que criou o arquivo:
sudo chmod +t /var/www/public
Dessa forma, se queremos criar diretórios para estruturas que existem fora da raiz do documento Apache ou talvez criar diretórios graváveis no servidor, ainda é fácil.
Diretório de logs graváveis pelo Apache:
sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs
Diretório de biblioteca legível pelo Apache:
sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/lib
sudo chmod 0750 /var/www/lib
chmod g+s
esetfacl
fizeram (e seus parâmetros).