Credenciais do usuário do Ubuntu, permissões de arquivo

0

Estou usando o Ubuntu 10.10 para desenvolvimento web usando o framework symfony.

Normalmente eu instalo o Ubuntu Lamp (Turnkey edition), efetuo login como root e configuro todo o software necessário no servidor necessário para trabalhar com o symfony. (Samba, symfony etc.)

O problema é que quando estou root as permissões de arquivo não estão configuradas para os sistemas Samba e symfony. Todas as coisas que eu faço / crie no terminal (CLI) do Ubuntu criam permissões de arquivo para o usuário root. Claro que sei como mudá-los depois, mas que consome tempo para gastar em programação.

Quando estiver pronto, estou usando a caixa através da minha rede, criando vários diretórios do site diretamente do meu PC no servidor. Existem vários sites neste servidor de desenvolvedor como diretórios em /var/www/ , não há hosts virtuais.

Minha pergunta é como criar ou definir um usuário após a instalação do Ubuntu com as credenciais e direitos corretos?

    
por v2r 29.01.2011 / 11:49

2 respostas

2

Com o ACL, você pode criar um grupo para essa finalidade e adicionar o usuário ao grupo, para que a obtenção do material certo para cada novo usuário seja simples assim:

sudo usermod -a -G developers $username

Isso requer um pouco de trabalho, no entanto, para começar. Isto é para o Ubuntu 10.10 pelo menos. Primeiro monte os sistemas de arquivos com a opção acl em / etc / fstab.

sudo vim /etc/fstab

UUID = padrões xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4, acl 0 1

sudo mount -o remount,acl /

Em seguida, crie 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.

Claro, não faça isso se você tiver conteúdo no diretório / var / www que você deseja, mas apenas para ilustrar a configuração para começar:

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 quiséssemos restringir a exclusão e renomeação de todos, exceto do usuário que criou o arquivo:

sudo chmod +t /var/www/public

Dessa forma, se quisermos criar diretórios para estruturas que existam fora do A raiz do documento do Apache ou talvez criar diretórios graváveis pelo servidor, ainda é fácil.

Diretório de registros graváveis do Apache:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

Diretório da biblioteca legível por Apache:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/lib
sudo chmod 0750 /var/www/lib
    
por user8290 29.01.2011 / 17:23
0

Em vez de fazer login como root, tente fazer login como o usuário www-data, que é o que o Ubuntu usa ao executar o apache. Isso deve fornecer as permissões apropriadas automaticamente, obedecendo ao princípio de menos permissões (você deve sempre evitar fazer as coisas como root).

    
por ImaginaryRobots 13.03.2012 / 17:36