我做到了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 有关,但与当前的实际问题无关。