root帐户和管理帐户之间的区别

root帐户和管理帐户之间的区别

如果具有管理权限的用户可以使用 root 来拥有 root 的所有权限sudo,那么拥有 root 帐户有什么好处呢?

答案1

禁用root

你必须有一个 root 帐户。就“禁用”而言,您可以用它做的唯一事情是:

  1. 锁定账户

    $ sudo passwd -l root
    
  2. 给root一个不可用的密码

    $ sudo usermod -p '!' root
    

sudo - 作为 root 用户

请记住,当具有“管理权限”的用户使用时,sudo他们正在以 root 用户身份运行具有提升权限的命令!

您可以通过一个简单的命令看到这是真的ps

$ sudo sh -c "ps -eaf | grep [s]udo"
root      2625 26757  0 04:19 pts/10   00:00:00 sudo sh -c ps -eaf | grep [s]udo

上面显示,当ps执行该命令时,您实际上是 root 用户。

开机

此外,当以单用户模式(从 GRUB)引导到系统时,您需要使用 root 帐户登录。通常,您将单词single或数字传递给 GRUB 1

我有什么 sudo 权限?

在已授予sudo权限的系统上,您可以使用该命令sudo -l查看您拥有哪些权限。这些并不是每个人的完整权限,只是运行命令的用户的权限。

例如:

$ sudo -l
Matching Defaults entries for saml on this host:
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG
    LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME
    LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User saml may run the following commands on this host:
    (ALL) ALL
    (root) NOPASSWD: /usr/lib/jupiter/scripts/bluetooth, (root) /usr/lib/jupiter/scripts/cpu-control, (root)
    /usr/lib/jupiter/scripts/resolutions, (root) /usr/lib/jupiter/scripts/rotate, (root) /usr/lib/jupiter/scripts/touchpad, (root)
    /usr/lib/jupiter/scripts/vga-out, (root) /usr/lib/jupiter/scripts/wifi

笔记:被授予访问权限的命令是“用户 saml 可以运行以下......”行之后的所有内容。

通过 sudo 限制访问

Sudo 有相当丰富的工具来限制对特定命令、命令组、特定用户和/或特定用户组的访问。然而,有一些警告sudo

您可以使用以下行授予对所有内容的完全访问权限/etc/sudoers

aaditya      ALL=(ALL)    ALL

vim您还可以为用户提供对某些文件看似简单的访问权限:

aaditya      ALL=/usr/bin/vim

然而,这将是一个巨大的错误,因为许多编辑器vim允许您从其中调用子 shell。因此,用户aaditya将能够访问具有 root 权限的 shell,即使该sudo权限并不打算发生这种情况。

答案2

管理帐户和管理帐户root绝不相同。除了 goldilocks 和 slm 提到的之外,您还应该知道这root可以显着限制sudo允许用户代表 执行的root操作(请参阅man sudoers示例)。当高级系统管理员想要将一些管理任务委派给初级管理员而不授予他们完全访问权限时,这尤其有用。毕竟,具有完全sudo访问权限的用户可以劫持该root帐户。

相关内容