欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Linux中创建sftp用户并限制目录权限 有大用 有大大用 有大大大用

[root@kslk-es-faq ~]# sftp -oPort=22 www@127.0.0.1

www@127.0.0.1's password:

packet_write_wait: Connection to 127.0.0.1 port 22: Broken pipe

Couldn't read packet: Connection reset by peer

 

执行到最后,执行上面的命令,报错的话,可以见  /node-admin/18952

注意两点:

一是禁止该用户通过ssh登录,二是不需要创建家目录。家目录简单来说,就是在/home下的用户命令,默认每个用户在/home中都是有与用户名一样的文件夹。

创建组:groupadd sftp

创建用户:useradd -g sftp -s /sbin/nologin sftpuser

设置密码:passwd sftpuser

创建成功:passwd :all authentication tokens updated successfully。 


创建目录:mkdir /home/sftp。确保该目录及该目录以上的系统根目录的拥有者都只能是root用户,

目录用户:chown root:sftp /home/sftp;

写入权限:chmod 755 /home/sftp.  注:该目录权限最大为755,设置成777会报错


创建用户sftpuser根目录,目录名为用户名
 mkdir 
/home/sftp/sftpuser

设置sftpuser目录权限: chown -R sftpuser:sftp /home/sftp/sftpuser

(注:设置用户sftpuser,如果设置拥有者为root,表示该目录sftpuser没有权限读写,在该目录下建立其它目录,赋权给sftpuser用户读写权限;

 chmod -R 755 /home/sftp/sftpuser   注:这里的目录sftpuser  权限也只能是755,否则无法限制目录。


上面关于组和用户的,我的做法如下: 使用 www 作为用户

chown root:www /www/web  

chmod 755 /www/web  

chown -R www:www /www/web/ksf...... 

chmod -R 755 /www/web/ksf...... 






配置sshd_config: vim /etc/ssh/sshd_config
修改如下内容,并保存退出

#注释掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
#添加
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match User sftpuser #匹配用户,如果要匹配多个组,多个组之间用逗号分割
PasswordAuthentication yes ChrootDirectory /home/sftp #指定sftpuser用户只能ftp到本目录 Match User test2#设置两个账号
PasswordAuthentication yes ChrootDirectory /home/aa X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉 AllowTcpForwarding no ForceCommand internal-sftp #指定sftp命令


上面关于  配置sshd_config: vim /etc/ssh/sshd_config

..........................................................................................................

#Subsystem      sftp    /usr/libexec/openssh/sftp-server

Subsystem       sftp    internal-sftp



# Example of overriding settings on a per-user basis

#Match User anoncvs

#       X11Forwarding no

#       AllowTcpForwarding no

#       PermitTTY no

#       ForceCommand cvs server


Match User www

PasswordAuthentication yes

ChrootDirectory /www/web

X11Forwarding no

AllowTcpForwarding no

#       PermitTTY no

ForceCommand internal-sftp

..........................................................................................................




重启sshd服务器:systemctl restart sshd.service
查询sshd启动状态命令:systemctl status sshd.service
sftpuser用户登录测试: sftp -oPort=22 www@170.23.2.25      #sftp是命令  www是用户名

或者 sftp  -P 22  www@170.23.2.25      #sftp是命令  www是用户名



来自 https://www.jycfd.cn/html/album/1637/2022/11-18/155835567-38592.html



普通分类: