我在其中/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 更改为 0
usermod -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
笔记
- 此示例假设您的用户名是
scorpion
。 - 我假设所有命令的路径
apt
都在,/sbin
但 Gentoo 不使用apt
,apt-get
所以不要忘记编辑。 - 这可以在不添加命令别名和用户别名的情况下完成,但恕我直言,别名使添加命令和调试(如果需要)变得更容易。