Necessidade de escrever um script que irá jailkit um usuário e dar-lhes acesso a um diretório particular do site

3

Eu tenho um servidor de aplicativos do Ubuntu 12.04 que hospeda alguns sites. Precisamos dar acesso ao desenvolvedor para poder apenas fazer o upload de arquivos para um dos sites. Eu instalei o Jailkit, mas não consigo encontrar como dar acesso sFTP ao diretório do site.

Aqui está nossa estrutura de diretórios da web:

/var/www/website.com/htdocs/ /var/www/someotherwebsite.com/htdocs/ /var/www/website3.com/htdocs/ todos pertencentes a www-data: www-data

Alguém pode me dar alguns passos para dar ao usuário acesso a apenas um ou dois desses diretórios via sFTP e sem acesso ssh?

    
por John Hamman 01.11.2012 / 14:24

1 resposta

1

Em geral, essa não é uma estrutura de diretórios prática por motivos que você está encontrando. Se você tiver apenas um site, a diretriz / var / www pode estar bem. No entanto, na minha experiência, 20+ anos, a melhor abordagem é criar uma partição home separada para que a partição home possa ser montada nosuid, noexec, nodev, et al. Cada site tem sua própria conta de usuário do sistema. Essa conta recebe um shell, o rssh, que permite o sftp, mas não o ssh. Isso é prático ao hospedar, ao contratar desenvolvedores ou até mesmo do ponto de vista de segurança.

Tendo escrito muito, uma solução se torna clara: mova os sites para diretórios de contas de usuários e atualize a configuração do servidor web. Isso pode ser feito com segurança, criando uma cópia do site em um subdomínio. Por exemplo, para o domínio, www.website.com, crie um CNAME chamado test.website.com. Verifique se o site em test.website.com está funcionando. Em seguida, atualize o arquivo de configuração do servidor web para apontar www.website.com para o novo local, uma vez que você saiba que ele é perfeito.

Nesse ponto, você pode fornecer acesso via sFTP para quem quiser sem essa preocupação.

Mas ... para chegar ao ponto e responder à pergunta: uma solução menos óbvia, mas eficaz, é usar o ACL. Com a ACL, você pode obter controles muito mais precisos sobre as permissões do sistema de arquivos. Usar o ACL pode fornecer as restrições desejadas.

A primeira coisa a fazer é instalar o software acl:

sudo apt-get install acl

A próxima coisa a fazer é montar ou remontar o sistema de arquivos com a opção ACL.

sudo -e /etc/fstab

Você pode ver uma linha como essa, então adicione a opção acl.

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults,acl 0 1

Salve e saia. Remontar com acl ativado.

sudo mount -o remount,acl /

Depois disso, você terá acesso à ACL. Há um guia para ACL em help.ubuntu.com . Alguns exemplos de uso da ACL em askubuntu.com:

Gerenciando permissões de usuário arbitrárias sob PureFTPd

O que é a maneira mais simples de editar e adicionar arquivos para "/ var / www"?

    
por user8290 02.01.2013 / 01:42