• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux上设置用户通过SFTP访问目录的权限的方法

     sftp和ftp是两种协议是不同的,sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。

    1.查看openssh软件版本,想sftp服务用户只能访问特定的文件目录,版本需要4.8以上

    复制代码
    代码如下:

    [root@localhost ftp]# rpm -qa | grep openssh
    openssh-server-5.3p1-81.el6_3.x86_64
    openssh-5.3p1-81.el6_3.x86_64
    openssh-clients-5.3p1-81.el6_3.x86_64

    2.新增用户,限制用户只能通过sftp访问

    复制代码
    代码如下:

    [root@localhost ftp]# useradd -m -d /opt/ftp/dave -s /sbin/nologin dave

    3.限制用户通过sftp登录进来时只能进入主目录,修改/etc/ssh/sshd_config文件

    复制代码
    代码如下:

    [root@localhost ftp]# vim /etc/ssh/sshd_config
    #Subsystem sftp /usr/libexec/openssh/sftp-server
    Subsystem sftp internal-sftp
    Match User dave
    ChrootDirectory /opt/ftp/dave
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

    重启ssh
    4.测试访问

    复制代码
    代码如下:

    root@10.1.1.200:test# sftp -oPort=22 dave@10.1.6.175
    Connecting to 10.1.6.175...
    dave@10.1.6.175's password:
    Read from remote host 10.1.6.175: Connection reset by peer
    Couldn't read packet: Connection reset by peer

    发现连接不上,查看日志

    复制代码
    代码如下:

    [root@localhost ftp]# tail /var/log/messages
    Jan 6 11:41:41 localhost sshd[4907]: fatal: bad ownership or modes for chroot directory "/opt/ftp/dave"
    Jan 6 11:41:41 localhost sshd[4905]: pam_unix(sshd:session): session closed for user dave

    解决方法:

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

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

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

    如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。

    复制代码
    代码如下:

    [root@localhost ftp]# ll
    total 4
    drwxr-xr-x 3 dave dave 4096 Jan 5 13:06 dave
    [root@localhost ftp]# chown root:root dave
    [root@localhost ftp]# chmod 755 dave
    [root@localhost ftp]# ll
    total 4
    drwxr-xr-x 3 root root 4096 Jan 5 13:06 dave

    然后在测试通过

    复制代码
    代码如下:

    root@10.1.1.200:test# sftp -oPort=22 dave@10.1.6.175
    Connecting to 10.1.6.175...
    dave@10.1.6.175's password:
    sftp> ls
    test
    sftp> cd ..
    sftp> ls
    test
    sftp> cd test
    sftp> ls
    1.txt
    sftp> get 1.txt
    Fetching /test/1.txt to 1.txt
    /test/1.txt

    可以看到已经限制用户在家目录,同时该用户也不能登录该机器。

    上一篇:详解Linux系统中的进程初始化配置文件inittab
    下一篇:Linux中rsh远程shell命令的使用技巧解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux上设置用户通过SFTP访问目录的权限的方法 Linux,上,设置,用户,通过,