在Debian系统中,可以通过多种方式实现SFTP多用户管理。以下是两种常见的方法:
vsftpd
和pam
模块安装vsftpd
:
sudo apt update
sudo apt install vsftpd
配置vsftpd
:
编辑/etc/vsftpd.conf
文件,确保以下配置项存在并正确设置:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd
创建用户和组: 创建一个专门用于SFTP的用户组,并为每个SFTP用户创建一个系统用户。
sudo groupadd sftpusers
sudo useradd -m -G sftpusers username
sudo passwd username
配置PAM:
编辑/etc/pam.d/vsftpd
文件,确保以下配置项存在:
auth required pam_listfile.so item=user sense=allow file=/etc/vsftpd.user_list onerr=succeed
auth required pam_shells.so
account required pam_listfile.so item=user sense=deny file=/etc/vsftpd.user_list onerr=succeed
创建用户列表:
创建一个文件/etc/vsftpd.user_list
,列出允许使用SFTP的用户。
echo "username" | sudo tee -a /etc/vsftpd.user_list
重启vsftpd
服务:
sudo systemctl restart vsftpd
OpenSSH
和sshd_config
安装openssh-server
:
sudo apt update
sudo apt install openssh-server
配置sshd_config
:
编辑/etc/ssh/sshd_config
文件,添加或修改以下配置项:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
创建用户和组: 创建一个专门用于SFTP的用户组,并为每个SFTP用户创建一个系统用户。
sudo groupadd sftpusers
sudo useradd -m -G sftpusers username
sudo passwd username
设置用户主目录权限: 确保用户主目录的权限设置正确,以便Chroot环境生效。
sudo chown root:root /home/username
sudo chmod 755 /home/username
创建上传目录并设置权限: 为用户创建一个上传目录,并设置适当的权限。
sudo mkdir /home/username/uploads
sudo chown username:sftpusers /home/username/uploads
sudo chmod 755 /home/username/uploads
重启ssh
服务:
sudo systemctl restart sshd
通过以上两种方法,你可以在Debian系统中实现SFTP多用户管理。选择哪种方法取决于你的具体需求和偏好。