应该使用sudo或只是su服务器pipe理的根?

哪种方法更好?

对于桌面使用,似乎sudo更好,因为:

  • 作为普通用户,我可以拥有更一致的历史
  • 不需要记住两个密码,当我不经常执行pipe理工作时更是如此。
  • 无需在安装时创build额外的root帐户。

但关于服务器pipe理?

在服务器中,通常您已经创build了一个root帐户,并且您可能经常执行pipe理任务。 所以sudo的优势似乎已经不复存在了。

更重要的是,在大多数发行版中,在命令行上configurationsu很容易,只需将用户添加到轮组即可。 (在使用时你甚至可以传递-G wheel )。因此,configurationsu可以很容易地自动化到shell脚本中。

但是对于sudo? 您需要先添加用户,而不是交互式运行visudo 。 这是不好的,因为你不能将它自动化到shell脚本中。

(好吧,你可以。例如,

 echo '%wheel ALL=(ALL) ALL' >> /tmp/sudoers.tmp cp /etc/sudoers /etc/sudoers.old visudo -c -f /tmp/sudoers.tmp && mv /tmp/sudoers.tmp /etc/sudoers 

但至less不是那么容易的。)

那么你有什么意见? 对于你喜欢的服务器环境,sudo或su root?

根帐户在服务器上是必需的,但是我更喜欢授予sudo权限,特别是当机器上有多个用户时,出于以下几个原因:

  • 我不使用sudo只授予所有命令的所有权限,而且还将特定的用户权限授予特定的命令。
  • 通过将用户分配到function组,我可以在sudoers中用这些组pipe理他们的权限,而不是单独pipe理用户。
  • sudo访问默认logging在auth.log中,包括哪些用户在什么时间使用sudo。
  • sudo允许用一个文件pipe理多台机器的configuration。
  • 每个用户保留自己的密码,所以用户离开时不需要修改root密码。

至于使用脚本进行pipe理,新版本的sudo支持包含内容,但我更喜欢使用puppet和设置连接sudoers内容的类。

木偶还可以与Augeas相关联来pipe理你的sudoers文件。

你似乎正在努力使自己(当涉及到pipe理/ etc / sudoers)。 一个简单的

 echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers 

就足够了。 所有visudo所做的就是locking文件以防止并发编辑,并确保文件仍能正确parsing。