我在 Ubuntu Server 14.04 上运行服务器。我想创建一个能够通过 sftp 连接、下载 1 个文件并终止连接的用户。用户不应该能够做任何其他事情。浏览系统文件或设置或命令行条目,什么都做不了。登录,下载文件,gg。当文件更新时,登录下载,gg。该文件每次都在同一目录中,每次都有相同的名称,但会更新。
编辑:我正在尝试实施您的解决方案,但我发现了一些问题:在我的配置中,ssh 的配置文件中有一行“允许组 sshdusers”。我添加了 sftp_users。但前面还有另一个问题。sudo chown root.root /ubuntu/ 对我来说不是最佳选择,因为 root 无法 ssh 并将“ubuntu”必须下载的文件写入目录(我们将其称为 user1。我希望 user1 能够在目录中写入,而 ubuntu 只能读取。如果我更改 sudo chown user1.user1 /ubuntu/ 并尝试使用用户 ubuntu 进行 sftp,则连接会失败。如果我像您一样将其保留为 root,我可以连接,但我看不到当前目录,我只看到 filezilla 上的 / 和 empy。我甚至将 user1 添加到 sftp_users,但仍然没有成功。
非常感谢
答案1
开始吧
创建用户ubuntu
sudo useradd ubuntu
设置密码
sudo passwd ubuntu
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
仅为 SFTP 组创建
xxx@xxx:~$ sudo groupadd sftp_users
为 SFTP 专用组添加用户“ubuntu”
xxx@xxx:~$ sudo usermod -G sftp_users ubuntu
创建访问sftp
目录
sudo mkdir /ubuntu
更改所有者,因为有读/写权限
sudo chown root.root /ubuntu/
添加权限
sudo chmod 755 /ubuntu/
编辑/etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
注释掉并添加如下行
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
最后添加
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /ubuntu
ForceCommand internal-sftp
重启ssh
服务
sudo service ssh restart
使用此配置,您可以 ssh 进入文件夹ubuntu
并获取文件。无法put
或delete
尝试。
编辑1
在右侧文件夹中编辑 sftp /etc/passwd
。将用户的行更改ubuntu
为如下内容
sudo nano /etc/passwd
ubuntu:x:1001:1001::/ubuntu:
这会将用户 ubuntu 主文件夹更改为您的 sftp 服务器文件夹。
启用
root
帐户并不是一个好主意。
您可以使用 ssh 连接到服务器user1
。
如果你添加用户user1
,sudoer group
你将能够在文件夹中写入/ubuntu/
并设置适当的权限
sudo adduser user1 sudo
创建文件夹,在文件夹 ubuntu 中写入。操作后,您必须为用户设置权限ubuntu
。最简单的方法是再次将权限设置为 755
sudo chmod 755 -R /ubuntu/
-R - 选项将授予用户读取所有文件和目录的权限ubuntu