在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多用戶管理。選擇哪種方法取決于你的具體需求和偏好。