Linux sudo命令的安全问题?

  1. 我正在使用红帽企业Linux 5 Linux机器。 我发现如果用户在/ etc / sudoers文件中,那么如果用户使用sudo运行命令,用户将以root权限运行这个命令(不知道root密码,用户运行sudo只需要input用户自己的密码为了用sudo运行命令)。 这是正确的理解?

    1. 如果是,那么这是一个安全漏洞? 由于root以外的用户可以以root权限运行?

在此先感谢乔治

这不是一个安全漏洞,至less不会超过su

sudo只是让pipe理员在没有使用root shell的情况下进行快速root访问的方式(这可能很危险)。

sudo只是要求用户input自己的密码,确实会给他root权限(试试$ sudo whoami )。 但是,不是每个人都应该在/etc/sudoers文件中。

如果你看看sudo manpage,你会发现如何限制sudo一些简单的命令。

你可以举例来说,只允许用户bob执行$ sudo poweroff而不允许他做$ sudo cat /etc/shadow

所以不,如果你正确的configuration和使用它不是安全漏洞。 如果您不希望用户拥有root shell,请考虑禁止$ sudo su$ sudo su

如果这是一个安全漏洞,sudo已经被取消了。 这是故意的,你可以configuration它需要用户的密码,根的密码或根本没有密码..

因为只有root可以configuration,所以没有安全漏洞。 根configuration谁可以访问它,谁必须为每个组input每个用户的密码。

此外,关于最后一部分:“因为root以外的用户可以以root权限运行”:这就是sudo程序的全部内容。

sudo是安全的 – 足够安全的一些发行版(Ubuntu)使用和默认推荐它。

这就是说,如果你给用户一揽子的sudo权限,那么它大大地消除了你在该帐户和一个root帐户之间的分离。 例如,如果您给用户timmy赋予一揽子sudo权限,则timmy帐户将变为与root帐户相同的特权。 任何闯入timmy账号的人都可以做任何事情(在大多数情况下,需要timmy的密码)。

Pro-sudo参数

  • 通常设置,以便没有人可以作为用户称为“根”login。 可以让暴力破解超级用户login更困难。
  • 您可以对用户可以以超级用户身份执行的命令进行细化控制(尽pipe通常您会将一个帐户的所有权限授予与“root”具有不同名称的angular色)。
  • 当不是所有运行的命令都需要超级用户权限的时候,删除以root身份保持login的诱惑。

反sudo参数

  • 可能会看到sudo鼓励向用户分发超级用户级权限的做法,这可能不是一个好主意。
  • sudo设置起来有点复杂,因为它非常灵活。 虽然这可以让你更好,更安全,但是如果你不小心或者不明白你在做什么,它也可以使不经意间打开安全漏洞变得更容易。
  • 一般来说,使用具有超级用户权限的帐户来进行日常使用可能被认为是一个糟糕的主意,而拥有sudo权限则是次佳select。 与此相反的是,您的用户密码(在大多数情况下)仍然需要提升到超级用户状态,并且不可能像您一样运行入侵者/错误进程。

从本质上讲,它们只是两种不同的思想stream派,两者都足以使整个发行版本支持自己的方法。

我更熟悉非sudo方法,主要是因为我更熟悉Debian用户。 我发现sudo的灵活性让我拥有一个root帐户的简单性。 我不允许远程rootlogin(即通过SSH),我build议别人也不应该。

sudo是安全的,因为:

  1. 一个root用户或另一个启用sudo的用户(可以运行'visudo'或'$ EDITOR / etc / sudoers')必须修改/ etc / sudoers来授予权限。

  2. 您可以严格限制和指定一个人可以以root权限运行的内容,从而可以在服务器上拥有不同级别的pipe理员用户。

  3. 作为特权用户,您可以查看现有的/ etc / sudoers文件,以查看哪些用户具有权限。

  4. 您不必在一组pipe理员之间共享root密码。

  5. 对sudo命令做了什么完整的logging,提供了清晰的审计线索

我认为安全性比以root身份login更好,因为以root身份执行操作并不方便。 问责制当然更好,这是安全的一部分。

你必须限制谁会使用它。 通常情况下,您可以将其限制在可以知道root密码的人身上,尽pipe可能会更加灵活并限制特定的人员可以执行的操作。

困扰我的安全问题是没有必要为每个sudo命令input密码; 如果我从同一个terminalinput另外几个,没有太多的时间过去,它会接受没有密码的sudo。 这大概是为了避免让我不断input我的密码,但可以想象,一些坏人的用户级软件可以利用这个。 我个人不太了解风险。

sudoers不会自动以root身份访问。 他们可以作为configuration的用户访问。 向用户提供对其他非root用户的运行工具的访问权限是可能的和正确的。

任何有权运行shell或可以授予shell访问权限的用户都应该是您使用root密码信任的用户。 使用sudo,可以在没有root密码的情况下运行系统。 logging了sudo的所有用法,而以root身份运行的命令则不是这种情况。

如前所述,限制访问特定的命令是可行的。 示例sudoers有许多命令集可能需要授予特定用户,他们需要执行需要root权限的任务。 通过使用sudo,可以在不给他们root密码的情况下允许这样做。

任何人都可以运行一个脚本或命令的root privleges,他们可以改变已经有效地被授予root权限。 你需要信任这些人,或者不要给他们访问权限。

有大量需要root权限的任务。 使用sudo,您可以安全地将这些任务委派给备份操作员,网站pipe理员等。

Sudo是更安全的替代品。 如果configuration错误,或者对不可信用户的访问权限不正确,则存在安全风险(漏洞)。

sudo命令允许一个用户以另一个用户的权限运行命令。 其他用户可以是root用户,也可以是其他用户,但默认是root 。 它是为了这个目的而devise的,有很多configuration选项来帮助你以各种方式locking事物,并且已经被很多人审查了很多年。 对于所有的安全问题并不合适,但使用得当的话,它可能是一个非常有用的工具。 但是,如果使用不当,可能会产生比解决问题更多的问题。