以下是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
)实现跨用户访问。