使用OpenSSHconfigurationSFTP,并在Amazon EC2上通过S3FS安装AWS S3存储桶

如何让多个SFTP用户使用S3FS和OpenSSH?

一切正常,除了SFTP用户没有权限写入他们的Chrooted主目录: remote open("/some_file"): Permission denied

build立

我有一个运行Amazon Linux的Amazon EC2实例。 我已经安装了S3FS并安装了一个S3存储桶。 我还configuration了OpenSSH以允许SFTP用户访问装载的S3 Bucket /s3_mounted_folder/user_folder/的Chrooted Home目录。 我已经成功地在非S3挂载的目录上使用SFTP连接。 我已经成功地使用S3存储桶,通过SSH在EC2实例上以root用户身份创build和下载文件。 我的SFTP用户可以成功从/s3_mounted_folder/user_folder/目录下载文件。 问题是SFTP用户不能put文件放到S3挂载的文件夹中。

问题…我想

我只能使用相同的用户:组和相同的权限来configuration所有文件夹( /s3_mounted_folder//s3_mounted_folder/user_folder/ ),因此我无法赋予用户写入其主目录的/s3_mounted_folder/user_folder//s3_mounted_folder/user_folder/ )。 如果我使用用户或组挂载存储桶并赋予写权限,则OpenSSH SFTP不会让用户连接,因为它认为用户权限configuration错误(例如: drwxr-xr-x 1 root rootdrwxrwxr-x 1 root usergroup )。

S3FS命令

下面是在这两种模式下启动S3FS的两个不同命令(其中用户501和组501是SFTP用户和组):

root用户权限( drwxr-xr-x 1 root root ): sudo s3fs nwd-sftp /sftp/ -o iam_role=sftp-server -o allow_other -o umask=022

sftp用户权限( drwxrwxr-x 1 root usergroup ): sudo s3fs nwd-sftp /sftp/ -o iam_role=sftp-server -o allow_other -o umask=002 -o gid=501

在第二种情况下,用户理论上可以通过SFTP put文件放入其主目录,但SFTP不会让它们连接,因为它们的Chrooted主目录具有对非root用户组的写入权限。