nginx 服务器,多个用户通过 SFTP 编辑自己的文件

nginx 服务器,多个用户通过 SFTP 编辑自己的文件

我想要设置一个 Debian 服务器,以便不同的用户拥有自己的域,只有他们才能编辑,例如:

/home/
+ /bob/www/
    + oldsocks.com/
    + nosepickers.org/
+ /joe/www/
    + no-fun.com/
    + whatever.net/

Bob 应该能够通过 SFTP 进入并编辑他的内容,Joe 也一样。当然,问题是 nginx 和 php-fpm 以 的身份运行www-data。使用 Apache,我能够安装apache-mpm-itk包并使用AssignUserID指令使每个虚拟主机都有自己的 uid/gid。我认为 nginx 不存在这样的事情。

我的经验不足,不知道如何设置与 nginx 配合使用的上述结构。我想我必须满足于所有文件归谁所有,www-data并找到某种方法将每个 SFTP 用户锁定到他们自己的www文件夹(ssh jail?)。我愿意接受建议。

旁注:理想情况下,每个用户www在通过 SFTP 访问时都会被锁定在他们的文件夹中,但通过 SSH 访问时则不会。不知道这是否可能。

答案1

其中一个解决方案是将 ProFTPd 与 mod_sftp 一起使用,如下所示:

SFTPEngine on
SFTPLog /var/log/sftp.log
Port 2222
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPCompression delayed
MaxLoginAttempts 6
DefaultRoot ~
Umask 002
CreateHome on 770 dirmode 770

并将 joe 和 bob 的用户组更改为www-data。这样您的 Web 服务器将能够访问文件,因为它们是www-data组可读写的。DefaultRoot将把用户囚禁在他们的主目录中,所有新创建的文件和文件夹都将具有www-data组。

相关内容