SFTP - Permitir que o usuário faça o upload apenas para www

2

Ubuntu Server 12.04

Eu preciso permitir que o usuário offlineuser envie arquivos para o diretório var/www/mysite/web/ apenas. Esse diretório funciona como uma raiz do site, bem como um local de upload (configuração herdada).

Dentro do meu arquivo /etc/ssh/sshd_config :

Com os seguintes comentários, eles podem fazer upload em qualquer lugar. Assim que eu descomente isto, eles não podem se conectar.

AllowUsers offlineuser ubuntu

Subsystem       sftp    internal-sftp

Match Group sftponly
        ChrootDirectory /var/www/mysite/web/%u       
        ForceCommand internal-sftp
        PasswordAuthentication no
        X11Forwarding no
        AllowTcpForwarding no

offlineuser é um membro do grupo sftponly

Isso foi retirado de: Conexão SFTP do Chroot e OpenSSH SFTP chroot () com o ChrootDirectory

UPDATE1

:pam_unix(sshd:session): session opened for user offlineuser by (uid=0)

: fatal: bad ownership or modes for chroot directory component "/var/www/mysite/"

: pam_unix(sshd:session): session closed for user offlineuser

Então, isso é bem claro, mas eu realmente tenho que chown dir para offlineuser? Isso não causará problemas se o www-data quiser gravar nele (o que é provável?)

    
por Bob Flemming 05.02.2013 / 18:06

2 respostas

2

A partir do sshd_config manpage :

Specifies the pathname of a directory to chroot(2) to after authentication. All components of the pathname must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.

Parece que todos os diretórios pai devem ser graváveis apenas como root, mesmo para SFTP. Se isso não for possível, sugiro mover o diretório para outro lugar (por exemplo, /home/web/offlineuser ) e, em seguida, vincular / vincular a montagem no local.

    
por 05.02.2013 / 18:42
1

Se você alterar o diretório chroot para

ChrootDirectory /var/www/mysite/web/

e, em seguida, dar ao usuário um diretório home de / testuser em / etc / passwd , então você pode ter / var / www / mysite / web / de propriedade correta de root e / var / www / mysite / web / testuser pode ser de propriedade e gravável pelo testuser.

    
por 05.02.2013 / 19:12

Tags