sftp acesso restrito a um diretório

3

Eu preciso conceder acesso via SFTP a uma pasta específica com permissões de gravação completas da raiz dessa pasta. Eu fiz isso funcionar, mas não consigo descobrir uma maneira de fornecer permissão de gravação no / da raiz.

Eu li que a maneira comum de resolver isso é apenas criar uma subpasta para cada usuário, mas esta contém arquivos existentes que são usados em todo o site.

Resumindo:

/ should not be readable (this is correct)
/uploads/ is not writable (**but should** by any means)
/uploads/* is writable (and should)

Isso foi o que eu fiz até agora:

/var/www/uploads is owned by root:root with 755 permissions. (775 prevents user to even log in)
/var/www/uploads/* is owned by newuser:sftp 775 permissions.

relevante / etc / ssh / sshd_config

Match group sftp
   ChrootDirectory %h
   AllowTcpForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

AllowGroups ssh-users sftp

os usuários são criados assim:

useradd -d /var/www/uploads -m newuser -g sftp -s /bin/false

Muito obrigado!

    
por fbhcf 22.03.2017 / 18:37

2 respostas

3

I made it work but can't figure out a way to provide write permission on the / of the root.

Não é possível. O diretório chroot não pode ser escrito pelo usuário que você está fazendo chrooting. Essa é uma obrigação definida na página de manual para sshd_config :

At session startup sshd(8) checks that all components of the pathname are root-owned directories which are not writable by any other user or group.

    
por 22.03.2017 / 19:13
1

Os diretórios compartilhados entre usuários em um sistema devem ter permissões que cubram o acesso de todos os usuários.

Eu costumo usar 1777 no diretório compartilhado e no conteúdo. Ele dá a todos os usuários acesso total, evitando a exclusão por outro que não seja o proprietário dos arquivos.

O precedente 1 na octal da permissão é o bit pegajoso que restringe a exclusão e a permissão para alterar os direitos do proprietário.

    
por 22.03.2017 / 19:05