我正在管理一个 Arch Linux 服务器。
如何安全地将 emacs 添加到我的/etc/sudoers
编辑器变量中?目前我有“emacs”,但这允许M-x shell
.基本上,我想要类似rvim
, 但对于 emacs 的东西。
答案1
你可能做不到。
Emacs 是一个 Lisp 解释器,它运行一个编辑器(用 emacs lisp 编写),因此每次使用 emacs 时,您都可以访问 Lisp 解释器本身。
该解释器可以执行各种操作:创建/删除文件或目录、更改访问权限等...基本上,一旦您进入 emacs,您不需要访问 shell 即可造成相当大的损害 - emacs 本身就是足够强大。
你最好的选择可能是找到一个小的 emacs 克隆(例如这里:http://www.emacswiki.org/emacs/EmacsImplementations)支持受限编辑。
答案2
不幸的是,Emacs 太强大了(即使 shell 被禁用)你可以做很多事情。
也许正确的解决方案是构建一个包装器来复制 sudoers 文件,并给予适当的权限,然后以仅具有写入该文件权限的特殊用户身份运行 Emacs,最后在验证后复制回该文件。
然而,从安全角度来看:显然,任何 sudoers 编辑器都可以分配任何权限,所以我想知道您实际上想解决什么问题。
尽管如此,我还是做了一个实验:如果你设置SHELL
为/bin/false
,那么 Emacs 的shell
命令在尝试执行时会立即退出并出现错误$SHELL
。