Melhor maneira de definir permissões para alguém que usará meu servidor?

1

Estou trabalhando em um site com alguém. Eu quero dar-lhes acesso apenas ao seu diretório home e ao diretório do site. Qual é a maneira mais fácil de conseguir isso? Eu também não quero que isso atrapalhe as permissões do apache com o site. Estou executando o Ubuntu.

    
por Tony 06.07.2009 / 04:54

3 respostas

2

Você pode criar um grupo para o projeto desse website e adicionar sua conta de usuário a esse grupo. Certifique-se de que o grupo tenha acesso de gravação à pasta do site.

Se você gostaria de facilitar as coisas para ele copiar para a pasta do site, você pode criar um link em sua pasta pessoal para a pasta da Web do projeto.

groupadd projectX
useradd -G projectX consultantID
chown -R Apache:projectX /var/www/projectDir
cd ~consultantID
ln -s /var/www/projectDir
    
por 06.07.2009 / 05:32
1

Você deve reconfigurar seus diretórios pessoais para não serem legíveis por todos:

dpkg-reconfigure adduser

E verifique as permissões para diretórios iniciais existentes. Eu não me preocuparia muito com o acesso à pasta do sistema, as permissões padrão do Linux já são destinadas a um ambiente multiusuário.

Posteriormente, coloque o usuário em seu próprio grupo e crie seu diretório de servidor web, certifique-se de que www-data possa ler lá. Olhe para fora para outras pastas graváveis do mundo.

Se o seu usuário tiver permissão para fazer upload de scripts cgi / php, você provavelmente desejará examinar o suexec para o apache, já que esses scripts estarão sendo executados como usuário www-data. É trivial para fazer o upload de um shell php e navegar por raízes de documentos de outros usuários. Seus diretórios pessoais serão salvos se você remover a permissão de leitura do mundo.

Atualização: Eu esqueci completamente de mencionar o rbash. Apenas substitua o shell de login do usuário pelo rbash e ele não poderá mais alterar os diretórios:

chsh -s /bin/rbash user
    
por 06.07.2009 / 11:42
0

Você pode restringi-los apenas ao diretório inicial usando o chroot. Mas é muito complicado de configurar. Se valer a pena, você pode dar uma olhada no artigo de foco de segurança sobre a criação de ambiente de usuário seguro .

Você também pode usar a opção ChrootDirectory fornecida pelo servidor SSH. Você teria que editar o arquivo sshd_config e ativar o chroot para esse usuário.

Se você realmente gosta disso, então você pode configurar o apache usando o Alias ou o VirtualHost para os arquivos do servidor de alguma pasta dizendo ~ / web. Você também pode habilitar UserDir para que o usuário possa ver as páginas da pasta "~ / public_html" em

http://<domain>/~<username>

Em qualquer caso, chmod o + x em seu diretório home para que o apache possa ir dentro dele.

    
por 06.07.2009 / 07:46