你必须有一个root帐户。就“禁用”它而言,您可以用它做的唯一事情是:
锁定帐户
$ sudo passwd -l root
Run Code Online (Sandbox Code Playgroud)给 root 一个不可用的密码
$ sudo usermod -p '!' root
Run Code Online (Sandbox Code Playgroud)请记住,当具有“管理权限”的用户正在使用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 -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
。
您可以使用以下行授予对所有内容的完全访问权限/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
权限并不打算这样做。
归档时间: |
|
查看次数: |
18867 次 |
最近记录: |