在 Linux 中为非 SSH 用户配置 SFTP 环境
创始人
2024-03-01 13:24:58
0次

在某些环境中,系统管理员想要允许极少数用户在可以传输文件到Linux机器中,但是不允许使用 SSH。要实现这一目的,我们可以使用SFTP,并为其构建chroot环境。

SFTP & chroot背景:

SFTP是指SSH文件传输协议(SSH File Transfer protocol)或安全文件传输协议(Secure File Transfer Protocol),它提供了可信数据流下的文件访问、文件传输以及文件管理功能。当我们为SFTP配置chroot环境后,只有被许可的用户可以访问,并被限制到他们的家目录中,换言之:被许可的用户将处于牢笼环境中,在此环境中它们甚至不能切换它们的目录。

在本文中,我们将配置RHEL 6.X 和 CentOS 6.X中的SFTP Chroot环境。我们开启一个用户帐号‘Jack’,该用户将被允许在Linux机器上传输文件,但没有ssh访问权限。

步骤:1 创建组

[root@localhost ~]# groupadd  sftp_users

步骤:2 分配附属组(sftp_users)给用户

如果用户在系统上不存在,使用以下命令创建( LCTT 译注:这里给用户指定了一个不能登录的 shell,以防止通过 ssh 登录):

[root@localhost ~]# useradd  -G sftp_users  -s /sbin/nologin  jack
[root@localhost ~]# passwd jack

对于已经存在的用户,使用以下usermod命令进行修改:

[root@localhost ~]# usermod –G sftp_users  -s /sbin/nologin  jack

注意:如果你想要修改用户的默认家目录,那么可以在useradd和usermod命令中使用‘-d’选项,并设置合适的权限。

步骤:3 现在编辑配置文件 “/etc/ssh/sshd_config”

# vi /etc/ssh/sshd_config
#comment out the below line and add a line like below
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

# add Below lines  at the end of file
  Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory %h                      
  ForceCommand internal-sftp

此处:

  • Match Group sftp_users – 该参数指定以下的行将仅仅匹配sftp_users组中的用户
  • ChrootDirectory %h – 该参数指定用户验证后用于chroot环境的路径(默认的用户家目录)。对于用户 Jack,该路径就是/home/jack。
  • ForceCommand internal-sftp – 该参数强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令。

重启ssh服务

# service sshd restart

步骤:4 设置权限:

[root@localhost ~]# chmod 755 /home/jack
[root@localhost ~]# chown root /home/jack
[root@localhost ~]# chgrp -R sftp_users /home/jack

如果你想要允许jack用户上传文件,那么创建一个上传文件夹,设置权限如下:

[root@localhost jack]# mkdir /home/jack/upload
[root@localhost jack]# chown jack. /home/jack upload/

步骤:5 现在尝试访问系统并进行测试

尝试通过ssh访问系统

正如下图所示,用户jack通过SFTP登录,而且因为chroot环境不能切换目录。

现在进行上传和下载测试,如下图:

正如上图所示,jack用户的上传下载功能都工作得很好。


via: http://www.linuxtechi.com/configure-chroot-sftp-in-linux/

原文作者:Pradeep Kumar

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...