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

seg*_*ult 32 linux ubuntu

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

我做到了,sudo adduser --system testuser但这并不像我预期的那样工作。

感谢帮助。

Ave*_*yne 63

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

首先,创建一个普通用户帐户。

adduser username
Run Code Online (Sandbox Code Playgroud)

然后选择以下选项之一:


正确的方式

sudo为该wheel组创建一个条目,/etc/sudoers如下所示:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
Run Code Online (Sandbox Code Playgroud)

或者对于“现代”版本:

## Allows people in group sudoers to run all commands
%sudoers ALL=(ALL)       ALL
Run Code Online (Sandbox Code Playgroud)

然后将用户添加到wheel组中。添加和删​​除具有管理权限的用户现在成为记住将他们添加到轮子的功能,而不是在 sudo 中创建条目。使用wheel 的好处在于您可以将此机制扩展到支持组的其他身份验证方案,即winbind/Active Directory,并在此过程中受益。您可以通过将轮映射到您的身份验证模式中具有管理员权限的组来完成此操作。

请注意,某些发行版使用不同的管理帐户。车轮是“传统”的方式,但你可能会遇到adminadm以及用于相同目的的其他组帐户。

后续编辑:

我必须指出Bart Silverstrim指出 Ubuntuadmin为此目的用作组。他首先想到了这个,虽然我当时没有注意到 Ubuntu 标签。同样,这完全取决于您使用的发行版。


丑陋的方式

为相关用户帐户创建一个 sudo 条目,然后授予完全访问权限。同样,您可以/etc/sudoers像这样创建条目:

## Allows just user "username" to run all commands as root
username    ALL=(ALL)    ALL
Run Code Online (Sandbox Code Playgroud)

添加:## 对于 Ubuntu 版本:用户名 ALL=(ALL:ALL)

如果您只有一个(或两个)普通帐户,这很好。当您在多个(地球物理)站点上拥有一百个帐户并且必须不断维护 sudo 文件时,这是很丑陋的。


错误的方法

您可以编辑该/etc/passwd文件并将用户帐户 ID 从任何数字更改为0. 没错,

username:x:0:502::/home/username:/bin/bash
Run Code Online (Sandbox Code Playgroud)

看到第三个条目为零?当您登录该帐户时,就所有有效目的而言,您是root. 我不推荐这个。 如果你不记得你是谁,当你开始创建和接触文件时,你可能会造成各种破坏root。您还可以将您的用户名添加到root组中。这对文件访问具有相同的效果,但会产生其他问题;程序会注意到您不是用户 root并拒绝运行,但您将获得对属于group 的 文件的访问权限root

如果你这样做了,你确实使用vipw而不是仅仅用 编辑vi,对吗?(或任何您最喜欢的文本编辑器)毕竟,此文件中的一个错字可以将您锁定在系统之外 - 这意味着使用修复光盘对有问题的计算机进行物理访问......

  • 我不同意。如果你隐藏错误,它不会消失,它只会恶化 - 有时,知道某事被禁止会引起比它应该更多的关注。最好理解*为什么*这是禁忌。尤其是在(不可否认的)情况下,您可能需要这些知识。尽管如此,我还是要给你一个观点,指出事情到底有多糟糕。:) (15认同)
  • 我什至不会以错误的方式记录。太忌讳了。 (2认同)

Ali*_*ani 1

那么您可以使用 adduser 创建用户,请参阅 man adduser。
之后您可以将其添加到特权组(例如root或wheel)。但我认为获得某些权限的最推荐方法是使用 sudo。