“ sudo su-”被认为是不良做法吗?


13

背景

我知道其中的差别之间su -sudo su -以及sudo <command>

  • su - -将用户切换为root,需要root密码
  • sudo su - -将用户切换为root,仅需要当前用户的密码
  • sudo <command>-仅授予针对特定命令的root访问权限;只需要当前用户的密码

我的问题是sudo su -在生产环境中使用是否安全。

一些想法:

  1. 通过允许sudo su -根目录帐户访问取决于单个用户密码,似乎允许存在安全风险。当然,可以通过执行严格的密码策略来缓解这种情况。我认为su -没有什么比这更好的了,因为它需要管理员共享实际的root密码。

  2. 允许用户完全切换到root帐户使跟踪谁对系统进行更改变得更加困难。我在日常工作中看到了多个用户被授予sudo su -访问权限的情况。sudo su -在开始工作之前,用户在登录系统时要做的第一件事就是运行。然后,有一天发生了什么事,无法追溯谁rm -rf *在错误的目录中运行。

问题

考虑到上述问题,允许用户使用sudo su -甚至su -根本禁止使用是个好主意吗?

是否有一个管理员将配置用户帐户以任何理由sudo su -su -代替sudo <command>(除了懒惰)?

注意:当root用户禁用直接ssh访问时,我忽略了用户正在运行sudo su -su -管理员需要进行系统更改的情况。


4
sudo su -这是相当愚蠢的,因为sudo -i它实际上执行相同的操作,而击键次数却更少。
迈克尔·汉普顿

我同意@MichaelHampton。但是,我通常sudo bash只是为了避免某些登录开销而运行。但是,经过反思,这可能无法避免我想像的那么多。
ericx

2
@ericx也考虑一下sudo -s
迈克尔·汉普顿

Answers:


11

让我们看一下您的案例:

 su -

将使用root环境作为root用户运行/ bin / sh。需要root密码,并且可以根据系统日志设置记录日志(通常默认为/var/log/auth.log)。

 sudo /bin/sh

将使用当前环境变量集(作为例外,将在sudoers文件中定义)以root用户身份运行shell。密码是源用户密码,而不是根用户密码。通常会记录sudo。

 sudo su -

将以root用户身份运行shell(通常为/ bin / sh),并将环境设置为root用户。这将需要源用户的密码,并且通常将其记录下来。

有时有必要在您自己的环境上拥有根环境,因此su-是一种适当的方法。请记住,无论哪种情况,sudo仍然会记录shell命令的使用。


我完全错过了sudo和su之间的环境差异。谢谢!
Kingand 2014年

0

*鉴于上述问题,允许用户使用sudo su是一个好主意吗*

不,我不认为。除了允许他们使用su之外,它没有实际的优势,只是他们不需要root密码即可。

或su-根本没有?

由于我始终禁用root登录,因此su是必需的,并且总而言之,使服务器更安全。


2
不要求每个人都积极共享root密码具有重要的安全文化优势,这一点不容忽视。
Falcon Momot 2014年

0

OP似乎提供了很多充分的理由来禁止/鼓励一般用途来运行sudo bashsudo su -因为这会将它们切换到内部通常未记录的全能模式。他们可能会忘记自己处于那种模式下,却做了一些……令人遗憾的事情。

因此,将大多数用户限制为运行sudo on/a/particular/command/或命令列表似乎更为安全。这样,每个sudo命令都会被记录。

在实践中,您会遇到例外吗?当然。对此类异常的反应是恢复为不受限制的懒惰实践sudo su吗?可能不是。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.