如何创建具有极其有限权限的 SFTP(SSH)用户

如何创建具有极其有限权限的 SFTP(SSH)用户

我在 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并获取文件。无法putdelete

尝试。

编辑1

在右侧文件夹中编辑 sftp /etc/passwd。将用户的行更改ubuntu为如下内容

sudo nano /etc/passwd

 ubuntu:x:1001:1001::/ubuntu:

这会将用户 ubuntu 主文件夹更改为您的 sftp 服务器文件夹。

启用root帐户并不是一个好主意。

您可以使用 ssh 连接到服务器user1

如果你添加用户user1sudoer group你将能够在文件夹中写入/ubuntu/并设置适当的权限

sudo adduser user1 sudo

创建文件夹,在文件夹 ubuntu 中写入。操作后,您必须为用户设置权限ubuntu。最简单的方法是再次将权限设置为 755

sudo chmod 755 -R /ubuntu/

-R - 选项将授予用户读取所有文件和目录的权限ubuntu

相关内容