Linux shell 将 sftp 用户限制到他们的主目录?
Posted
技术标签:
【中文标题】Linux shell 将 sftp 用户限制到他们的主目录?【英文标题】:Linux shell to restrict sftp users to their home directories? 【发布时间】:2010-12-04 08:34:55 【问题描述】:我需要授予对我服务器上我的 webroot 中的目录的 SFTP 访问权限。我已将 ben_files 设置为用户并将他的主目录设置为
/var/www/vhosts/mydomain.com/files
如果他使用普通的旧 FTP 连接,那一切都很好 - 他仅限于该目录,但要启用 SFTP,我必须将他添加到 bin/bash shell,这会突然打开我的整个服务器...
有没有办法让他访问 SFTP 但不打开我所有的目录?我真的希望他只能呆在家里;)
谢谢!
【问题讨论】:
【参考方案1】:您还可以使用以下命令将用户 shell 设置为 /bin/false:
usermod -s /bin/false 用户名
限制他们 ssh'ing 并且只能 sftp(或 ftp,如果已设置)
我将它用于 sftp usres,以及提到的 chroot 设置(由其他答案涵盖)。
【讨论】:
当我将 shell 设置为 /bin/false 时,我不能再 sftp 或 scp 到它!/bin/false
限制任何类型的登录尝试。你的信息是假的。请改用/sbin/nologin
【参考方案2】:
使用 pam_chroot。
这是一本很好的手册:http://www.howtoforge.com/chroot_ssh_sftp_debian_etch
【讨论】:
【参考方案3】:OpenSSH≥4.8 支持ChrootDirectory
指令。
添加到/etc/sshd_config
或/etc/ssh/sshd_config
或您设置的全局sshd
配置文件是:
【讨论】:
嗨,我收到一些错误 - 启动 sshd:/etc/ssh/sshd_config:第 113 行:错误的配置选项:匹配和 /etc/ssh/sshd_config:第 115 行:错误的配置选项:ForceCommand。这些都停止 sshd 再次恢复。有什么想法吗? 您可能没有足够新的 SSH 版本。 啊,是的,我在你的回答中错过了这一点 - 我们在 4.3,我会考虑升级。 哇哦,4.3到现在4岁了;你还在用吗?升级! 5.3 是当前的最新版本。 @ephemient 是的,他们被拒绝使用 sftp。但是,我意识到我的问题是对主目录的所有权。我将它设置为 root:root 755,一切都很好【参考方案4】:看看rssh。它可能已经为您的 o/s 分发打包。
【讨论】:
它没有打包,但是很完美!我会尽快安装;)谢谢! rssh 现在无人维护,并且缺少安全更新。【参考方案5】:你可以尝试将他的shell设置为/bin/rbash
受限外壳 如果 bash 以名称 rbash 开头,或者 -r 选项为 提供于 调用时,shell 会受到限制。受限制的外壳是 用过的 设置比标准外壳更受控制的环境。 它 行为与 bash 相同,但以下内容除外 是 不允许或不执行:
· changing directories with cd
还有更多...
在使用此功能之前,请确保您完全了解允许和禁止的内容。
【讨论】:
rbash 在发行版中,但它似乎不允许 sftp - 我想我必须查看配置。谢谢你的提示!以上是关于Linux shell 将 sftp 用户限制到他们的主目录?的主要内容,如果未能解决你的问题,请参考以下文章