关闭

Ubuntu搭建SFtp

标签: ubuntushell系统管理员服务器终端
8207人阅读 评论(0) 收藏 举报
分类:

需求:在服务器上开通SFTP文件服务,允许某些用户上传及下载文件。但是这些用户只能使用SFTP传输文件,不能使用SSH终端访问服务器,并且SFTP不能访问系统文件(即所谓的“Jail(监狱)”)。系统管理员则既能使用SFTP传输文件,也能使用SSH远程管理服务器。

 为了便于讨论,我假设我将允许sftp-users用户组内的用户使用SFTP,但不允许使用SSH Shell,且该组用户将被"监狱"(修改系统根目录)。我将在sftp-users组内创建一个用户“alice”。而我将允许ssh-users使用SFTP以及SSH。系统管理员的账户名为admin。

第01步,如果还没有安装OpenSSH服务器,先安装它。

sudo apt-get install openssh-server

第02步,为SFTP访问创建用户组,便于管理权限。

sudo addgroup sftp-users

第03步,创建SFTP用户,并配置相应权限。这里第二行的意思是将alice从所有其他用户组中移除并加入到sftp-users组,并且关闭其Shell访问。如果想深入了解usermod命令,可以使用以下”man usermod”命令查看帮助文档。

sudo adduser alice
sudo usermod -G sftp-users -s /bin/false alice

第04步,创建SSH用户组,并把管理员加入到该组(注意usermod中的-a参数的意思是不从其他用户组用移除)。

sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin

第05步,准备“监狱”的根目录及共享目录。这里解释一下,“监狱”的根目录必须满足以下要求:所有者为root,其他任何用户都不能拥有写入权限。因此,为了让SFTP用户能够上传文件,还必须在“监狱”根目录下再创建一个普通用户能够写入的共享文件目录。为了便于管理员通过SFTP管理上传的文件,我把这个共享文件目录配置为:由admin所有,允许sftp-users读写。这样,管理员和SFTP用户组成员就都能读写这个目录了。

sudo mkdir /home/sftp_root
sudo mkdir /home/sftp_root/shared
sudo chown admin:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared

第06步,修改SSH配置文件。

sudo vi/etc/ssh/sshd_config

在sshd_config文件的最后,添加以下内容:

AllowGroups ssh-users sftp-users
Match Group sftp-users
    ChrootDirectory /home/sftp_root
    AllowTcpForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

这些内容的意思是:
只允许ssh-uers及sftp-users通过SSH访问系统;
针对sftp-users用户,额外增加一些设置:将“/home/sftp_root”设置为该组用户的系统根目录(因此它们将不能访问该目录之外的其他系统文件);禁止TCP Forwarding和X11 Forwarding;强制该组用户仅仅使用SFTP。

第07步,重启系统以便使新配置生效。

sudo reboot now

搭建完成用WinScp工具即可完成上传与下载。如果权限不够请参考Ubuntu给用户授权

0
0
查看评论

ubuntu搭建sftp服务器

在ubuntu中搭建sftp服务,并需要把登陆账户的目录限制到一个固定目录 1.安装sftp服务 sudo apt-get install openssh-server 这里我们把目录/data/sftp/mysftp用来做上传目录,下面建一个upload文件夹用来放上传文件 2.建立账户...
  • DuoDuo_smile
  • DuoDuo_smile
  • 2017-11-02 06:39
  • 671

Ubuntu搭建SFtp服务器

1.sudo apt-get install openssh-server 验证是否安装成功的方法,检查/etc/init.d下是否有ssh文件夹以及/etc/ssh/sshd_config文件是否存在, 第一次安装,往往不能安装成功 2.sudo addgroup sftp-users ...
  • u010412833
  • u010412833
  • 2017-10-19 18:49
  • 770

Ubuntu系统ssh安装与连接以及sftp文件传送全攻略

  • 2011-07-21 19:10
  • 276KB
  • 下载

Ubuntu Server如何配置SFTP

SSH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议。(参考资料:http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)它工作在Secure Shell(SSH)上,确保文件被加密传输。 因为...
  • qiaochao911
  • qiaochao911
  • 2013-03-26 16:19
  • 3911

Ubuntu下通过sftp远程登录linux系统,并实现上传、下载文件

在Windows下可以使用SecureCRT远程登录Ubuntu,并使用rz、sz实现上传、下载文件。 如果在Ubuntu下使用ssh命令远程登录另一台Ubuntu,如何实现上传、下载呢?答案是:sftp。 sftp是secure file transfer program的缩写,是隶属于SSH...
  • chenzhengfeng
  • chenzhengfeng
  • 2017-10-16 09:40
  • 275

ubuntu16.04配置ftp和传送文件的方式

安装ftp: sudo apt-get install vsftpd 在自己ubuntu用户下创建ftpuser,(最好别在系统中直接创建新的用户): mkdir  home/你自己的用户名/ftpuser sudo useradd -d home/你自己的用户名/ftpuse...
  • weixin_36269179
  • weixin_36269179
  • 2017-12-13 17:11
  • 189

ubuntu server12.04配置sftp

设置SFTP的目标如下:      1. 用户只能通过sftp访问,不能登录SSH      2. 用户要被锁定在特定的目录下,没有读写其它目录的权限  下面开始:     1、首先修改sshd的配置文...
  • marujunyy
  • marujunyy
  • 2013-01-14 20:36
  • 4378

Ubuntu中怎样安装sftp服务

FileZilla作为FTP客户端,它也可以连接SFTP,SFTP的监听端口也是22,和SSHD在同一端口监听。 SSHD作为一个SSH的服务端进程,可以使用open-sshserver安装。 sudo apt-get install open-sshserver 它可以实现的功能主要有三点:...
  • Robinsone
  • Robinsone
  • 2015-06-27 18:58
  • 4311

在ubuntu中配置SSH(问题的解决)sftp的使用

配置hadoop时必须的一步就是保证ssh是联通的。 如果你的 ubuntu 中没有安装 ssh ,具体的安装步骤是这样的 :   1 到 https://launchpad.net/ubuntu/luci...
  • special00
  • special00
  • 2016-04-13 09:04
  • 2046

Ubuntu 14.04和16.04如何设置FTP server (VSFTPD)

http://www.krizna.com/ubuntu/setup-ftp-server-on-ubuntu-14-04-vsftpd/ How to setup FTP server on ubuntu 14.04 ( VSFTPD ) FTP is used ...
  • typ2004
  • typ2004
  • 2016-10-11 19:37
  • 2317
    个人资料
    • 访问:295864次
    • 积分:4213
    • 等级:
    • 排名:第8609名
    • 原创:148篇
    • 转载:8篇
    • 译文:0篇
    • 评论:56条
    博客专栏