在Ubuntu上实现SFTP多用户共享,可按以下步骤操作:
安装OpenSSH服务器
sudo apt update && sudo apt install openssh-server
创建SFTP用户组及用户
sudo groupadd sftp_users
sftpuser1为例):sudo useradd -m -G sftp_users -s /bin/false sftpuser1
sudo passwd sftpuser1
配置SSH限制SFTP访问
编辑/etc/ssh/sshd_config,在文件末尾添加:
Match Group sftp_users
ChrootDirectory /home/%u # 限制用户根目录为用户家目录
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
/sftp_root),可将ChrootDirectory设为共享路径,并确保用户无写权限。设置目录权限
sudo mkdir -p /home/sftpuser1/upload # 创建可上传目录(可选)
sudo chown root:root /home/sftpuser1 # 根目录属主为root
sudo chmod 755 /home/sftpuser1
sudo chown sftpuser1:sftp_users /home/sftpuser1/upload # 上传目录属主为用户,组为sftp_users
sudo chmod 775 /home/sftpuser1/upload # 允许组内用户读写
重启SSH服务生效
sudo systemctl restart ssh
测试连接
使用SFTP客户端(如命令行或FileZilla)连接:
sftp sftpuser1@your_server_ip
验证是否限制在指定目录且可正常传输文件。
说明:
Match Group可批量管理多用户,共享同一配置。ChrootDirectory需为root所有且权限为755,确保用户无法越权访问。AllowUsers或DenyUsers进一步限制特定用户访问(可选)。