我尝试使用 sshd 和/或 pam 为 sftp 设置虚拟用户。
我的文件夹结构如下所示:
/
|-- var
| +-- www
| +-- site1
| +-- folder_1
| +-- folder_2
| +-- site2
| +-- folder_1
| +-- folder_2
每个站点都有一个 Linux 用户(例如 site1、site2)和同一组(site1、site2),其中主目录是 eg /var/www/site1
。umask 是 0022,例如所有文件和(子)文件夹site1
都有UID=site1
anf GID=site1
,这不应该改变。
我能够设置 sshd 以便每个 Linux 用户都获得他的主目录,因为 sftp 根文件夹是例如/var/www/site1
用户site1
。配置/etc/ssh/sshd_config
看起来像这样
(只有最后几行,其余的是默认配置):
UsePAM yes
Subsystem sftp internal-sftp
Match User *,!root
ChrootDirectory %h
ForceCommand internal-sftp -u 0022
AllowTcpForwarding no
现在我想添加一个虚拟用户(如果不需要,则没有新的 Linux 用户或组),其中 sftp 根文件夹例如/var/www/site1/folder1
用于 sftp 用户 eg site1_folder1
。此用户应该是该用户的子级site1
并使用相同的 UID 和 GID,但只能访问他的子目录。
我必须如何更改我的配置,我可以在哪里添加虚拟用户?
我在 Ubuntu 16.04 LTS、LAMP 服务器上需要这个