rbash限制用户到其主目录closuressftp连接

服务器:红帽企业Linux服务器版本6.5(圣地亚哥)

使用openssh-server来允许sftp连接。

我试图限制用户到他们自己的个人主目录。 所以我修改/ etc / passwd设置用户“john”使用/bin/rbash而不是/bin/bash

 john:502:503::/home/john:/bin/rbash 

如果我这样做,约翰不能通过SFTP连接:连接closures,只要他login(SFTP消息是Connection closed )。 如果我将bash设置为/ bin / bash,他的connexion可以正常工作,但是john可以使用cd遍历整个服务器文件系统。

你能解释我做错了什么,以限制用户通过SFTP连接到自己的目录?

rbash不会让你用前导/运行命令,如果正在尝试,那么它就会退出。

除非你使用内部的sftp-server,否则exec /usr/libexec/sftp-server将会失败。

sshd_config使用Subsystem sftp internal-sftp可以解决这个问题。

但是,使用rbash不会阻止sftp在文件系统中漫游,您可能想要chroot用户 。

你可以使用没有链接的正常shell,对于restrited shell,在/ etc / profile中放置这个

  if [[ $USER == "pluto" ]]; then export PATH=$HOME/bin readonly PATH set -r fi 

 mkdir /home/pluto/bin as root ln -s /bin/ls /home/pluto/bin/ls 

这样sftp工作和pluto只能使用ls命令