我喜欢nano
并且经常使用它。一个相关的应用程序是rnano
.
从rnano
手册中:
DESCRIPTION
rnano runs the nano editor in restricted mode. This allows editing
only the specified file or files, and doesn't allow the user access to
the filesystem nor to a command shell.
In restricted mode, nano will:
• not allow suspending;
• not allow saving the current buffer under a different name;
• not allow inserting another file or opening a new buffer;
• not allow appending or prepending to any file;
• not make backup files nor do spell checking.
我应该什么时候使用rnano
?
rnano
我怀疑(或)的预期用例nano -R
是提供可在特权场景中或使用不受信任的键盘输入使用的编辑器。例如,如果您想为其他人提供使用您帐户的编辑器 - 他们将无法访问其他文件。sudo
同样,限制访问编辑器的危险也是有用的;但在这种情况sudoedit
下应该使用。限制模式是在 1.3.3 版本中添加的,发布于 2004 年 6 月。2004 年 2 月的最初补丁没有给出太多理由:
David Lawrence Ramsey在 2004 年 4 月合并之前对该补丁进行了相当多的扩展。
其他编辑器有限制模式,对“限制”的定义各不相同;例如,Vim 5 在 2002 年添加了限制模式(使用
-Z
或调用rvim
,与原始补丁相同rnano
),该模式阻止对外部 shell 的任何访问。您可以像这样使用它
sudoers
,以允许选定的一组用户编辑特定的配置文件该文件应该只能由 写入
otheruser
,因此这些用户无法正常编辑它。然后他们将能够使用:他们将能够编辑该文件,但不能使用该用户的权限执行任何其他操作,因为
rnano
禁止访问其他文件或退出 shell。您可以使用它让人们编辑选定的文件,而无需授予他们 shell 访问权限。
假设秘书史蒂夫需要能够为员工分配不同的公司电子邮件别名。但是,您不想在公司邮件服务器上为 Steve 提供一个完整的 shell 帐户,因为这将允许他四处查看并执行任意命令。也许有一天史蒂夫感到无聊,在服务器上发现了一个可利用的命令,他们可以用它来阅读首席执行官的私人对话,或者史蒂夫的一次性帐户被某些恶意软件破坏并用于在服务器上部署比特币矿工。当人们拥有他们不需要的特权时,各种不愉快的事情都可能发生。
所以你会怎么做?您在邮件服务器上为 Steve 创建了一个帐户,但您将其配置为仅允许
rnano /etc/aliases
而不允许其他任何内容。您可以使用ForceCommand
in 选项sshd_config
或使用command=
inauthorized_keys
(在这种情况下,他们甚至不需要自己的帐户)来完成此操作,或者如果他们将使用 SSH 以外的其他方式登录,则可以相应地配置他们的登录 shell。它可用于提供编辑器窗口作为其他应用程序的一部分。
一个简单的例子是修复合并冲突(我认为 CVS 工作流程与此类似)或在发送错误反馈消息之前对其进行编辑。
它甚至不需要特权,只是不希望更改文件名。