我跟着这个问题为了sudo
为我创建的用户启用命令。所以我将其添加到wheels
组中并/etc/sudoers
相应地编辑了文件。
但我不明白的是,例如,当我键入 时sudo yum install
,它需要该用户的密码,而不是 的密码root
。这看起来确实不安全,因为如果帐户被盗,您可以使用root
该用户密码访问 的功能。
难道它不应该以这样的方式工作吗:如果你想要root
权限,那么你需要知道root
密码?
答案1
就是这样sudo
工作的。您信任该用户,并且该用户的操作都会被记录。
如果你想输入root密码,那么你想使用su
如下命令:-
su -c yum install <package>
Password:
上面的命令完成后,您将返回到普通用户的提示符。
答案2
嗯,事情就是这样完成的。您将授予组用户wheel
执行管理职责的权限。简而言之,您授予他们 root 访问权限。
这不是特定于发行版的 - 在所有 Linux 发行版甚至 BSD 中您都会这样做。
如果您担心危及安全性,您可以从 sudoers 表中删除用户并使用root
.
#> su root
Enter password
root #> yum install ...
这样您就可以使用 root 密码,并且只有 root 用户拥有管理员权限。
是的,可以使用 sudoers 表进行异国情调的设置,但这并不是真正的常规方式。
为您提供所有您可以了解的信息sudo
访问这里
su
方法切换用户。su root
成为 root也是如此。su <your_username>
会将您的终端提示返回到<your_usrname>
。
答案3
正如其他回答者所说,这是默认行为。
如果你真的想要输入root密码而不是用户的密码,可以添加以下行
Defaults rootpw
到您的/etc/sudoers
文件(使用visudo
命令,执行不是sudoers
通过任何其他方式编辑文件)。
通常的免责声明:
选择默认值sudo
是有原因的。改变它们很容易弊大于利。阅读手册页。
你可以做的比买一本迈克尔·W·卢卡斯的书更糟糕Sudo Mastery:真人的用户访问控制如果你真的想摸索sudo
。
答案4
您可以通过限制“sudo 用户”可以运行的命令来提高安全性。强烈推荐这个。这是我拥有的 Debian 机器上的语法,根据系统的不同可能会略有不同。
Cmnd_Alias USER_COMMAND = /bin/user_admin
someuser ALL = PASSWD : USER_COMMAND
这种方式someuser
只能以root身份运行命令/bin/user_admin
。您可以添加用逗号分隔的多个命令,如下所示:
Cmnd_Alias USER_COMMAND = /bin/user_admin,/sbin/fdisk,/some/other/cmd
对于您的特定系统语法,您可以查看man sudoers
。
如果你泄露了 root 密码,为什么还需要sudo
?
重点sudo
是给予用户超级用户权限,而不给予他们完全的 root 访问权限。