你好,游客 登录 注册 搜索
背景:
阅读新闻

Ubuntu搭建SFTP文件服务

[日期:2017-06-20] 来源:Linux社区  作者:Linux [字体: ]

需求:在Ubuntu服务器上开通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给用户授权。

Ubuntu Server如何配置SFTP  http://www.linuxidc.com/Linux/2016-11/137037.htm

Ubuntu给用户授权

一、用户如何获得root权限:
1. 进入terminal
 2. 输入sudo  passwd root  并设置密码,提示要你输入两次密码,自己设定密码,一定要记住,然后切换到root使用
3. 输入 su root, 要求你输入密码,然后输入刚才设定的密码回车就进去了
4. 如果不想切换root但是想拥有大部分root权限,可以在使用命令时候加上sudo,
sudo mount挂载
sudo 命令
……
another
如果你想在Linux上切换用户,那么输入 su  + 用户名就OK了,他会要求你输入密码

二、用户如何获得永久root权限
1. 添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser linuxidc //添加一个名为linuxidc的用户
passwd linuxidc //修改密码
Changing password for user linuxidc.
 New UNIX password: //在这里输入新密码
Retype new UNIX password: //再次输入新密码
passwd: all authentication tokens updated successfully.
 2. 赋予root权限
 方法一:修改/etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
Allows people in group wheel to run all commands
 %wheel ALL=(ALL) ALL
然后修改用户,使其属于root组(wheel),命令如下:
usermod -g root linuxidc
修改完毕,现在可以用linuxidc帐号登录,然后用命令 su - ,即可获得root权限进行操作。

方法二:修改/etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
Allow root to run any commands anywhere
 root ALL=(ALL) ALL
 linuxidc ALL=(ALL) ALL
修改完毕,现在可以用linuxidc帐号登录,然后用命令 su - ,即可获得root权限进行操作。

方法三:修改/etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下所示:
linuxidc:x:500:500:linuxidc:/home/linuxidc:/bin/bash修改后如下linuxidc:x:0:500:linuxidc:/home/linuxidc:/bin/bash
保存,用linuxidc账户登录后,直接获取的就是root帐号的权限。
友情提醒:虽然方法三看上去简单方便,但一般不推荐使用,推荐使用方法二。

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-06/144993.htm

linux
相关资讯       sftp  Ubuntu搭建SFTP 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款