限制linux用户只能通过sftp访问服务器端资源

配置用户只能通过sftp访问服务端资源

1.新增用户,为了限制用户的登录方式,指定登录shell为/sbin/nologin,主目录为/data/test

useradd -s /sbin/shell -d /data/test test

 

建成后如下图示

2.修改用户密码

passwd test

输入密码回车即可。

3.更改用户主目录的所有者为root

chown root:root test

 

4.修改主目录访问权限为755

chmod 755 test

 

前面几步操作不正确时,通过sftp登录时会报如下错误:

Aug 24 16:32:28 FileServer sshd[28556]: User test not allowed because account is locked

Aug 24 16:32:30 FileServer sshd[28556]: error: Could not get shadow information for NOUSER

Aug 24 16:32:30 FileServer sshd[28556]: Failed password for invalid user test from [ip] port [port] ssh2

或者是

Accepted password for 800002100010007 from 172.16.54.95 port 3145 ssh2

Aug 24 15:03:25 FileServer sshd[28171]: fatal: bad ownership or modes for chroot directory "/data/test"

以上错误日志记录在/var/log/messages文件中

 如果使用winscp访问的话会提示拒绝访问或验证失败

 

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

vi /etc/ssh/sshd_config

 

注释掉#Subsystem      sftp    /usr/libexec/sftp-server

选择Subsystem       sftp    internal-sftp

# override default of no subsystems

#Subsystem      sftp    /usr/libexec/sftp-server

Subsystem       sftp    internal-sftp

 

在Match处输入目标用户信息

# Example of overriding settings on a per-user basis

#Match User anoncvs

#       X11Forwarding no

#       AllowTcpForwarding no

#       ForceCommand cvs server

# test user

Match User test

        ChrootDirectory         /data/test

        ForceCommand            internal-sftp

 

修改完成后保存退出

6.测试sshd_config文件是否正确

sshd -T

7.重启sshd

service sshd restart

启动完成如下图:


配置完成。

posted @ 2012-08-24 17:53  Dr.AuYueng  阅读(1202)  评论(0编辑  收藏  举报