这似乎有效-> sftp ..[电子邮件保护](在同一台机器上)
我想在两个 Linux(Ubuntu 20.04)munchies 上实现 FTP,以便允许用户将文件上传到我的服务器,而无需授予他/她在服务器端执行任何其他操作的权限。
*将在末尾指定约束以及我已经尝试过的修复方法*
我选择的方法是,在服务器端创建一个新用户并限制其对一个目录的访问。
因此在服务器端:
sudo adduser garyfiles
mkdir -p /var/sftp/uploads
chown root:root /var/sftp
chmod 755 /var/sftp
chown garyfiles:garyfiles /var/sftp/uploads
并编辑并附加 sshd_config 文件以匹配用户 ->
Match User garyfiles
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
此时我重新启动了 sshd ->systemctl restart sshd
在客户端sftp user@{user_IP}
当尝试执行时,sftp user@{user_IP}
系统提示我输入用户密码,输入后系统显示“权限被拒绝,请重试”。
已经尝试过并且没有帮助:
- 将 ~/upload 的所有权更改为 root 以获得最大权限
- 创建新的用户组并为其分配 garyfiles 和 root 用户
- 为原始用户、garyfiles 用户和 root 用户创建一个新组。
- 更改上传权限以允许每个人完全访问:
chmod 664 /var/sftp/upload
- sftp -v 没有返回有价值的线索..
需要考虑的限制和我可以做出的假设:
- SFTP 将使用密码验证(而不是 SSH)
- 用户不得访问计算机上的其他文件夹
- 两个设备都连接到同一个 LAN