用户通过 SSH 进入文件夹,但是 nano 可以进入任何上层文件夹吗?

用户通过 SSH 进入文件夹,但是 nano 可以进入任何上层文件夹吗?

我做到了useradd -s /bin/rbash -d /var/www/html/directory USRNAME

在使用 USRNAME(包括 ssh 密钥)进行 ssh 登录时,它会转到directory并且 cd 不会返回。所以这有效...但是

如果他们使用nano /var/www/html/.env(之前目录)它会说

Unable to create directory /var/www/html/directory/.local/share/nano/: Permission denied
It is required for saving/loading search history or cursor positions.

Press Enter to continue

如果他们按下enter它,他们将可以阅读任何使用 nano 文件...在系统中的任何地方!

任何帮助只允许该用户该特定目录仅使用谷歌云

答案1

rbash 不是限制 shell 用户的安全方法。它仅限制 shell 输入,而不限制可执行文件的文件系统访问。在标准 Linux 系统上,$PATH 中有许多工具可用于绕过这些限制,而不仅仅是 nano。

通过创建 chroot 环境或 jail 可以实现适当的限制访问,但这也需要提供所有需要的可执行文件,甚至可能是 /dev、/sys 或 /proc 硬链接。

您可以修改 $PATH 以仅包含安全命令,但这是一个雷区,并且本质上还要求您创建单独的可执行文件集合。

您看到的错误可能与用户不被允许写入 /var/www/html/directory 有关,但与当前的实际问题无关。

相关内容