Como eu permito vários usuários SFTP com S3FS e OpenSSH?
Tudo funciona, exceto que os usuários do SFTP não têm permissão para escrever em seu Diretório Pessoal Chrooted: remote open("/some_file"): Permission denied
Configuração
Eu tenho uma instância do Amazon EC2 executando o Amazon Linux. Eu instalei o S3FS e montei um balde S3. Eu também configurei o OpenSSH para permitir que usuários SFTP acessem um diretório Home Chrooted dentro do bucket do S3 montada/s3_mounted_folder/user_folder/
. Eu usei com êxito a conexão SFTP em um diretório não S3 montado. Eu usei com êxito o bucket do S3 para criar e baixar arquivos do S3 como root na instância do EC2 via SSH. Meus usuários do SFTP podem baixar arquivos com sucesso do diretório /s3_mounted_folder/user_folder/
. O problema é que os usuários SFTP não podem put
arquivos na pasta montada S3.
O problema ... eu acho
Só consigo configurar todas as pastas ( /s3_mounted_folder/
e /s3_mounted_folder/user_folder/
) com o mesmo usuário: group e mesmas permissões, portanto, não posso dar ao usuário acesso para gravar em seu diretório pessoal (% código%). Se eu montar o bucket com o usuário ou grupo e conceder permissões de gravação, o OpenSSH SFTP não permitirá que os usuários se conectem porque acredita que as permissões do usuário estão configuradas incorretamente (por exemplo: /s3_mounted_folder/user_folder/
vs. drwxr-xr-x 1 root root
).
Comandos S3FS
Aqui estão os dois comandos diferentes para iniciar o S3FS nesses dois modos (em que o usuário 501 e o grupo 501 são o usuário e grupo do SFTP):
permissões de usuário root ( drwxrwxr-x 1 root usergroup
): drwxr-xr-x 1 root root
permissões de usuário sftp ( sudo s3fs nwd-sftp /sftp/ -o iam_role=sftp-server -o allow_other -o umask=022
): drwxrwxr-x 1 root usergroup
Nesse segundo cenário, o usuário teoricamente seria capaz de sudo s3fs nwd-sftp /sftp/ -o iam_role=sftp-server -o allow_other -o umask=002 -o gid=501
arquivos em seu diretório home via SFTP, mas o SFTP não permite que eles se conectem porque o diretório home Chrooted tem permissões de gravação para um grupo que não é root .