无需 sudo 即可编辑某些系统文件的最佳方法

无需 sudo 即可编辑某些系统文件的最佳方法

在 Unix 系统上,以非 root 身份编辑系统文件(如)的最佳做法是什么/etc/hosts,而无需执行繁琐的 sudo+password?php.ini

我可以简单地将chown这些文件提供给非 root 用户吗?或者是否有更好的方法使用组或其他方式?

答案1

sudo是最好的、最正确的做法。如果你赋予用户帐户过多的管理权限(例如,将自己添加到组中root),你就有可能意外地做出各种有害的事情。此外,恶意软件/木马可能会在你不知情的情况下利用你的权限来做坏事。只需将sudo命令前的输入视为额外的检查 - “我真的要运行这个吗?”

您可以设置sudo(应该已经这样了)等待指定的时间长度再再次询问您的密码,所以如果您同时执行一堆管理任务,则无需继续输入密码。

答案2

除了 MattDMo 的回答之外。如果重新输入密码让您感到困扰,您可以增加NOPASSWD您的权限。这仍然需要您这样做sudo(这样您就可以意识到您正在做的事情可能会造成危害),但不会让输入密码给您带来麻烦。

在 中/etc/sudoers,您可以使用此行:

forthrin ALL=(ALL) NOPASSWD: ALL

答案3

另一个选项是打开一个新终端并切换到 root。根据系统的设置,您可以使用以下一种或多种方式执行此操作:

  • sudo su
  • sudo -i
  • su

一旦您成为用户,只需保持 thyat 终端打开,然后使用或或或任何您喜欢的方式root从该终端编辑您想要的任何文件:emacsvimgedit

emacs /etc/hosts

答案4

sudo就是你想要的。如前所述,您可以设置自定义超时时间,然后再要求输入密码,或者指定NOPASSWD: 也可以仅为特定用户组设置,命令如下:

%usergroup ALL=(ALL) NOPASSWD: /bin/vi

您可以通过指向运行的脚本将此命令限制到某个文件vi /etc/hosts,但这将允许用户从内部打开其他文件或从(或类似命令)vi进入 shell 。vi:!sh

相关内容