打开具有有限访问权限的控制台编辑器

打开具有有限访问权限的控制台编辑器

我有一个将通过 SSH 执行的脚本。我的 SSH 服务器配置为始终触发此脚本,因此用户无法访问实际机器。

此脚本的功能之一是编辑文件,我想知道是否有办法调用 VIM(或其他基于控制台的编辑器),而不允许它编辑其他文件或执行命令。我希望强制 VIM 仅编辑打开的文件。

答案1

我认为不可能按照你想要的方式限制 Vim 本身。

但是您可以将用户的所有权限限制在一个特定的文件/目录中。这样,他就永远无法读取或写入任何其他文件/目录。请注意,您的用户仍然应该能够执行位于其他地方的程序(/usr/bin/vim例如)。

快速谷歌一下可能会返回几十个教程。此工具可能会有帮助:它允许您在服务器上设置一种沙箱。

答案2

你可以建造vim 的副本对于特定用户,并限制用户只能访问其需要访问的文件系统部分 - 因此只能对该文件具有读/写权限,并且已将其他组添加到他的帐户。这应该可以有效地限制他只能访问这些文件。

另一个可能的做法是,在完成上述操作后将用户限制在 chroot jail 中 - 这样他就只能看到 vim 和该文件。

答案3

由于没有使用 Vim,我只能建议(未经测试):

  • 使用 -Z 参数调用 Vim
  • 将 W 命令映射到将保存当前文件并忽略参数的函数
  • 禁用 E 命令

这里还有一些信息可以指引方向:

Vim 中的映射键 - 教程
Vim:remap、noremap、nnoremap 和 vnoremap 之间有什么区别
Vim 文档:地图

答案4

不完全是你想要的,但是 rvim 确实如此一些你想要什么。也许可以用 chroot 做一些小技巧。我不知道。

将无法启动 shell 命令,或者暂停 Vim。

相关内容