首页 » 信息技术 »

通过SSH配置纯sftp用户及权限

2019年7月15日 / 181次阅读
SSH

很多时候,我们需要配置某些用户使用Linux服务器,只能使用sftp服务,不能登录shell,本文介绍如何在SSH中配置这样的用户。

创建要给新用户sftpuser

$ sudo useradd -s /bin/false -m sftpuser

-s参数指定了这个用户没有shell可用(还没有配置sftp,这样做只是为了更安全)

-m参数表示给这个用户创建home目录(后面可以看到,这个参数多余了)

给sftpuser设置密码

$ sudo passwd sftpuser

修改sshd_config配置文件

Subsystem sftp internal-sftp
Match User sftpuser
    X11Forwarding no
    AllowTcpForwarding no
    PermitTTY no
    ForceCommand internal-sftp
    ChrootDirectory /home/sftpuser

从上到下依次解释:

必须使用internal-sftp

匹配用户名sftpuser

关闭X11Forwarding和AllowTcpForwarding,这两个forwarding都跟sftp业务无关,

不允许登录TTY,

只能使用sftp相关命令,

只能在/home/sftpuser目录下活动。

然后重启ssh服务器,我们先试着用sftpuser登录ssh,发现了如下错误:

C:\Users\xinli>ssh sftpuser@192.168.78.134
sftpuser@192.168.78.134's password:
PTY allocation request failed on channel 0
This service allows sftp connections only.
Connection to 192.168.78.134 closed.

就应该这样。

修改目录权限

目录权限设置要遵循2点:

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。

$ pwd
/home
$ sudo chown -R root:root sftpuser
$ su root
$ cd sftpuser
$ mkdir upload
$ chown -R sftpuser:sftpuser upload

将sftpuser的home全部给root,并且在这个目录中设置一个upload目录,upload给sftpuser。

这样,sftpuser这个用户登录sftp之后,只能打开upload目录,并且只有在upload目录下才有写的权限。

/home/sftpuser目录下的其它文件其实是没有存在的意义的,最开始useradd使用了-m参数,多余了。

然后用sftp软件连接测试:

通过SSH配置纯sftp用户及权限

通过SSH配置纯sftp用户及权限

测试成功,sftpuser用户就成为要给纯sftp用户,只能使用sftp业务,有自己独立的读写目录。

通过ssh的配置,来支持sftp用户,不用另外安装其它sftp服务器软件。不过,貌似不能很方便地限制文件夹的最大尺寸!

本文链接:https://www.maixj.net/ict/ssh-sftp-21993

相关文章

留言区

《通过SSH配置纯sftp用户及权限》有2条留言

  • 麦新杰

    sftp用户应该还不算 伪用户(psuedo users) []

    • 麦新杰

      sftp也算是一种登录方式。 []


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top