root 账户和管理账户的区别

abc*_*234 6 root sudo

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

slm*_*slm 5

禁用根

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

  1. 锁定帐户

    $ sudo passwd -l root
    
    Run Code Online (Sandbox Code Playgroud)
  2. 给 root 一个不可用的密码

    $ sudo usermod -p '!' root
    
    Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

开机

此外,当以单用户模式(从 GRUB)引导到系统时,您需要使用 root 帐户登录。通常,您将 wordsingle或 number传递给 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
Run Code Online (Sandbox Code Playgroud)

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

通过 sudo 限制访问

Sudo 有一个相当丰富的工具来限制对特定命令、命令组、特定用户和/或特定用户组的访问。但是有一些注意事项sudo

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

aaditya      ALL=(ALL)    ALL
Run Code Online (Sandbox Code Playgroud)

您还可以向用户授予对vim某些文件的简单访问权限:

aaditya      ALL=/usr/bin/vim
Run Code Online (Sandbox Code Playgroud)

然而,这将是一个巨大的错误,因为许多编辑器(例如)vim允许您从它们内部调用子shell。因此,用户aaditya将能够获得对具有 root 权限的 shell 的访问权限,即使该sudo权限并不打算这样做。