Esclarecimento básico sobre usuários limitados de FTP / sFTP

3

Gostaria de obter alguns esclarecimentos sobre a maneira correta de criar usuários limitados para acessar meu usuário do VPS como WEBSERVER com o Nginix.

Estou acostumado a NÃO instalar o FTP e acessar somente via SFTP. Está tudo bem para cada configuração?

isto é o que eu costumo fazer para criar um usuário limitado chamado "admin" que deveria poder ter acesso via SFTP à pasta com os dados do site

mkdir -p /var/www/mysite.com/
adduser admin
adduser admin www-data
chown -R root:root /var/www
chmod -R 755 /var/www
chmod -R 755 /var/www/mysite.com
chown -R admin:www-data /var/www/mysite.com/

Não parece ser a maneira correta, eu sempre tenho problemas com permissão quando eu faço upload de alguns arquivos (por exemplo, com o Wordpress em geral). Gostaria de criar um usuário que funcione exatamente como aquele que o "fornece" fornece ao cliente quando ele compra um serviço de hospedagem (ou seja, um FTP, eu preferiria o acesso SFTP). É para o usuário pessoal, mas acho que um usuário limitado é muito mais seguro usar então o "root" via SFTP.

    
por mattewre 16.11.2012 / 11:04

3 respostas

2

Você pode usar o sftp, basta definir o diretório /var/www/mysite.com assim:

chmod 2775 /var/www/mysite.com

Isso tornará o grupo de diretórios gravável e colocará o grupo www-data em todos os arquivos criados abaixo deste diretório. Se você já tiver arquivos no diretório, poderá propagar as permissões do diretório com este comando:

find /var/www/mysite.com -type d -exec chmod 2775 {} \;

Espero que isso ajude você a ter o "sentimento de hospedagem" que procura. ;)

    
por 12.01.2013 / 01:33
0

A melhor maneira de configurar isso seria usar um usuário virtual configurado por meio de softwares como o ProFTPD ou o Pure-FTPD, que suportam usuários virtuais a partir de ldap, mysql ou outros bancos de dados e também suportam FTP e SFTP no mesmo pacote. Usando os usuários virtuais, você pode bloqueá-los no diretório FTP, mas também definir o UID e o GID que esse usuário usará para armazenar e acessar arquivos. Veja a documentação relevante sobre como implementar isso exatamente.

    
por 16.11.2012 / 11:20
0

Parece que o problema que você está tendo tem a ver com os critérios pelos quais o chroot jailing exige que os usuários sejam configurados. Dois dos maiores problemas que as pessoas enfrentam são que o diretório pessoal do usuário e todos os diretórios acima dele devem ser graváveis apenas pelo usuário root e devem ser de propriedade de root. Por causa dessa estipulação, a melhor maneira de criar uma configuração presa (na minha opinião) é:

mkdir -p /var/www/vhosts/mysite.com/public_html
useradd -d /var/www/vhosts/mysite.com mynewuser
chown -R root:root /var/www/vhosts/mysite.com
chmod 755 /var/www/vhosts/mysite.com
chown mynewuser:www-data /var/www/vhosts/mysite.com/public_html

Ou se você precisar que o Apache tenha acesso de gravação, altere-o para 775 para os diretórios necessários.

Configurei isso dessa maneira, para que, quando o usuário efetuar login no único diretório a que eles têm acesso, seja 'public_html' e não tenham conhecimento de nenhum outro host virtual no sistema. Isso dá a aparência de uma instância completamente isolada como você receberia de qualquer provedor.

    
por 04.12.2012 / 07:32