以下是Ubuntu SFTP管理文件共享的核心步骤,涵盖配置、权限控制及安全设置:
确保系统已安装OpenSSH服务器,若未安装则执行:
sudo apt update
sudo apt install openssh-server
启动服务并设置为开机自启:
sudo systemctl start ssh
sudo systemctl enable ssh
sudo groupadd sftp_users
sudo useradd -m -G sftp_users sftpuser
sudo passwd sftpuser # 设置密码
(可选:禁止用户通过SSH登录,仅允许SFTP:sudo usermod -s /bin/false sftpuser)sudo mkdir -p /home/sftpuser/upload # 示例:用户专属上传目录
root,权限为755(确保用户无法修改主目录权限):sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
755或700(根据需求限制访问):sudo chown sftpuser:sftp_users /home/sftpuser/upload
sudo chmod 755 /home/sftpuser/upload # 允许用户读写,其他用户仅读
编辑SSH配置文件/etc/ssh/sshd_config,在末尾添加:
Match Group sftp_users
ChrootDirectory %h # 将用户限制在其主目录(%h代表用户家目录)
ForceCommand internal-sftp # 强制使用SFTP协议,禁止SSH shell
AllowTcpForwarding no
X11Forwarding no
保存后重启SSH服务:
sudo systemctl restart ssh
sftp sftpuser@your_server_ip
输入密码后,可通过ls、put、get等命令操作文件。sshd_config中设置PubkeyAuthentication yes,并配置用户~/.ssh/authorized_keys文件。ufw)允许SSH端口(默认22):sudo ufw allow 22
sudo ufw reload
sudo apt update && sudo apt upgrade保持系统和软件最新。说明:
ChrootDirectory需指向用户主目录(如/home/用户名),且必须由root拥有,权限为755,以确保安全隔离。chmod 775配合setfacl)实现跨用户访问。