授予用户完全root权限

授予用户完全root权限

我在其中/etc/sudoers添加了:
%myuser ALL=(ALL) NOPASSWD:ALL

现在,如果我键入,sudo apt update则无需键入密码。
但我想要完整的 root 权限:即,我只想使用apt update.
apt 是我想要完全 root 权限的一个例子,另一个例子是能够在任何地方创建/修改文件。

root ALL=(ALL:ALL) ALL我尝试在 myuser 行中使用根行 ( ),但没有任何结果:
%myuser ALL=(ALL:ALL) ALL

这是我的/etc/sudoers文件:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
scorpion  ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

%scorpion ALL=(ALL) NOPASSWD:ALL

答案1

更安全的特权运行apt update方式root没有输入sudo apt update,将为apt您的用户个人资料添加别名:

  • alias apt='sudo apt'

然后,每当您运行apt update、 、apt upgrade、 或 时apt install <pkg>,apt 命令都会以 root 权限运行。但其他命令将仅以普通用户身份运行,并具有普通用户权限。


现在,承认我们不只以 root 权限运行所有用户是有充分理由的,以下是一种可以向用户授予与 root 相同的所有权限的方法,但不使用 sudo。

  • 将用户的 UID 和 GID 更改为 0usermod -ou 0 -g 0 <username>

这将改变您的<username>用户所做的一切以 root 权限运行。一切。

是的。我知道这是非常不安全的。 但它回答问题。

如果您选择此路线,请在您不介意不时重新安装的系统上执行此操作。以 root 身份运行所有内容最终可能会产生不可预见的后果。

答案2

您可以键入sudo -i,然后您将获得一个交互式 root shell,而不必sudo在每个命令之前键入。

答案3

使用 Gentoo 的/etc/sudoers文件作为默认文件,您有两个选择:

选项1:


## sudoers file.
.. snip ..
## User privilege specification
##
root ALL=(ALL) ALL
## Add your user here.  This allows you to run all commands as root, 
## not just the update commands.
scorpion ALL=(ALL) ALL
.. snip ..

选项2:


## sudoers file.
.. snip ..
## User alias specification
##
## Groups of users.  These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias    ADMINS = millert, dowdy, mikef
User_Alias  UPDATERS = scorpion
##
## Cmnd alias specification
##
## Groups of commands.  Often used to group related commands together.
# Cmnd_Alias    PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
#               /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias    REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
Cmnd_Alias  UPDATE = /path/to/apt-get, /path/to/apt
.. snip ..
##
## User privilege specification
##
root ALL=(ALL) ALL
UPDATERS ALL=NOPASSWD: UPDATE

笔记

  1. 此示例假设您的用户名是scorpion
  2. 我假设所有命令的路径apt都在,/sbin但 Gentoo 不使用aptapt-get所以不要忘记编辑。
  3. 这可以在不添加命令别名和用户别名的情况下完成,但恕我直言,别名使添加命令和调试(如果需要)变得更容易。

相关内容