Como eu defino a estrutura de permissões para vários usuários editando vários sites em / var / www no Ubuntu 9.10?

5

Estou configurando um servidor Ubuntu que terá 3 ou 4 VirtualHosts nos quais eu quero que os usuários possam trabalhar (adicionar novos arquivos, editar arquivos antigos, etc.). No momento, planejo armazenar os sites em /var/www , mas não me oponho a movê-los.

Eu sei adicionar novos usuários, sei adicionar novos grupos. Não tenho certeza sobre a melhor maneira de lidar com usuários, pois só posso editar alguns sites. Eu li as respostas aqui nessa questão , então eu estava pensando em configurar um grupo e adicionar usuários a esse grupo, mas todos eles tinham basicamente as mesmas permissões. Eu só vou ter que atribuir permissões específicas para cada usuário? Ou existe uma maneira melhor de lidar com isso?

Adicionado: devo observar também que cada usuário fará login via SSH / sFTP. Os usuários nunca precisariam fazer mais nada no servidor.

    
por Michael T. Smith 30.03.2010 / 15:28

1 resposta

6

Você deve usar um grupo para cada website. E faça com que todos os usuários que precisam de acesso de gravação sejam membros do respectivo grupo.

groupadd site1_com
mkdir /var/www/www.site1.com
chgrp site1_com /var/www/www.site1.com
find /var/www/www.site1.com -type d -print0|xargs -0 chmod g=rwxs
chmod -R g+rw /var/www/www.site1.com
usermod -aG site1_com user1

Agora, cada vez que os usuários estiverem criando arquivos na pasta /var/www/www.site1.com, eles devem usar o umask 0002 (em ~ / .bashrc ou no script de implantação) ou devem definir a permissão para o grupo para ter acesso de gravação de leitura chmod -R g+rw /var/www/www.site1.com 2>/dev/null .

Outra solução para definir as permissões seria usar o dnotify. Crie o script /usr/local/sbin/dnotify_handler-reset_perms.sh com o seguinte conteúdo:

#! /bin/sh
CHANGED_FOLDER=$1
find $CHANGED_FOLDER -maxdepth 1 -mmin 0 -not -perm -g+w -exec chmod g+w {} \;

E adicione a /etc/rc.local :

dnotify --recursive /var/www/www.site1.com --create --execute --background /usr/local/sbin/dnotify_handler-reset_perms.sh
    
por 30.03.2010 / 16:05