Permissões de arquivo / diretório para o usuário do SFTP

3

Depois de usar bastante o SSH no meu Debian 6 VPS de 1.5 semanas de idade, eu queria começar a carregar arquivos através do SFTP. Eu já tentei isso antes, mas com a conta root, que não é mais possível com o SSH devido a alterações de segurança.

Então eu fiz um usuário separado, vamos chamá-lo de sftpuser por enquanto, que pertence ao grupo sftp Ele conseguiu uma entrada especial no sshd_config:

Match Group sftp
    ChrootDirectory /var/www
    ForceCommand internal-sftp
    PasswordAuthentication yes

Então, ele tem sorte e não precisa de um arquivo-chave para se conectar, mas ele está limitado a / var / www. Bem, isso funciona, eu consigo logar perfeitamente e ver todos os arquivos lá. Mas como eles são de propriedade do usuário root, ele não pode fazer upload de nada, o que o torna inútil.

Em minha jornada através das seleções de arquivos, eu li muitas combinações de números octal e soluções estranhas, mas nada que se encaixe bem. Se bem entendi, o chmod só pode ser usado para tornar um diretório gravável para um determinado usuário ( root nesse caso), group (adivinhe, root neste caso \ o /) ou outros. A idéia 'melhor' que eu tive para corrigir esse problema sem quebrar o PHP-FPM e o nginx foi adicionar sftpuser à raiz grupo . Mesmo que eu achasse que seria uma má idéia, isso não deveria causar muito estrago, pois sftpuser é chrooted e incapaz de abrir um shell. Mas isso não funcionou de qualquer forma, eu não era capaz de escrever em nenhum arquivo lá, nem mesmo com sftpuser na raiz grupo .

Dito isto, eu realmente poderia usar ajuda para encontrar a coisa certa para usar para o meu propósito. Eu não espero uma parede de texto como escrevi aqui, apenas uma pequena dica para me apontar na direção certa.

    
por Big-Blue 11.08.2012 / 01:10

1 resposta

2

O que eu fiz foi criar um volume inicial (vamos chamá-lo / sphphome) para o sftpuser que deve ser de propriedade do root e possui as seguintes permissões e propriedade:

/ sftphome

drwxr-xr-x    root root

Em seguida, o diretório home do sftp para sftpuser também deve ser de propriedade do root:

/ sftphome / sftpuser

drwxr-xr-x    root root

Em seguida, crie um diretório no qual o sftpuser possa fazer upload e download:

/ sftphome / sftpuser / upload

drwx------  sftpuser sftpuser

Certifique-se de que / sftphome esteja configurado corretamente:

ChrootDirectory /sftphome

O resultado final disso é que quando o sftpuser se conecta ao servidor sftp, este usuário é direcionado para / sftphome / sftpuser e então tem que fazer o cd para fazer o upload ser capaz de fazer upload e download de arquivos.

    
por 11.08.2012 / 02:22