在Linux中添加具有root权限的新用户

我想添加新的用户,并有/新的用户拥有所有的根访问权限,我该怎么做?

我做了sudo adduser --system testuser但是这不能按我的预期工作。

感谢帮助。

实际上有三种方法可以做到这一点:正确的方式,错误的方式和丑陋的方式。

首先,创build一个正常的用户帐户。

 adduser username 

然后select以下之一:


正确的方式

/etc/sudoerswheel组创buildsudo条目,如下所示:

 ## 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组。 添加和删​​除具有pipe理权限的用户现在变成记住将它们添加到轮子的function,而不是在sudo中创build条目。 关于使用wheel的好处在于,您可以将此机制扩展到支持组的其他身份validationscheme,即winbind / Active Directory,并在此过程中获得好处。 您可以通过将轮子映射到具有pipe理权限的身份validation模式中的组来完成此操作。

请注意,某些分配使用不同的pipe理帐户。 轮子是一个“传统”的方法,但是你可能会遇到adminadmin和其他组帐户,以达到相同的目的。

后续编辑:

我必须指出Bart Silverstrim指出Ubuntu使用admin作为这个组的用途。 他首先得到了这个,尽pipe当时我没有注意到Ubuntu标签。 同样,这一切都取决于你正在使用的分配。


丑恶的方式

为有问题的用户帐户创build一个sudo条目,然后给出完整的访问权限。 再次,你在/etc/sudoers创build这样的条目:

 ## 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 

看到第三个条目为零? 当您login到该帐户时,出于所有有效目的,您都是root我不推荐这个。 如果你不记得你是谁,你可以创build各种破坏,当你开始创build和触摸文件作为root 。 您也可以将您的用户名添加到root组。 这对文件访问具有相同的效果,但会产生其他问题; 程序会注意到你不是用户 root并拒绝运行,但你将获得对属于 root文件的访问root

如果你这样做,你使用vipw而不是用vi编辑,对不对? (或任何你最喜欢的文本编辑器)毕竟,在这个文件中的一个错字可以locking你的系统 – 这意味着物理访问有问题的计算机修复光盘…

我已经使用了这个多年,这是在AskUbuntu上添加一个sudoer的#1build议的方式 :

 adduser existinguser sudo 

比编辑文件简单得多,并且易于在无人参与安装的情况下引入shell脚本。

如果你想创build用户并授予sudo权限,你可以像这样做一行:

 useradd newuser -m -G sudo passwd newuser 

-m创build一个主目录, -G指定一个辅助组。

和这是100%:

 adduser -u 0 -g root -G root -s /bin/bash -r HackerS2H -p 123456 

并连接putty和ip服务器

那么你可以用adduser来创build用户,请参阅man adduser。
之后,您可以将其添加到特权组,如根,或轮。 但我认为最有可能的方式是使用sudo。

除了Avery Payne的回答:在Ubuntu中,您可能需要如下所示:

 %sudo ALL=(ALL:ALL) ALL 

而不是这样:

 %sudo ALL=(ALL) ALL 

“丑陋和混乱”的方式是编辑/ etc / passwd使新用户的UID = 0和GID = 0。 但这造成了很多安全风险 。 你知道,如果他也是root,他可能会禁用你的accont,更改你的密码,让你成为“标准用户”…对吧? 那么为什么不给他自己的账户?

你可以研究suid( http://en.wikipedia.org/wiki/Setuid )的工作方式,如果你想授予他一些命令的root权限。

你可以执行:

 #useradd -m -g root alex 

它创build一个用户Alex与一个属于根组的主目录