linux之root用户,以及命令sudo与su

虚拟机中linux如何进入root

刚安装好的Linux系统没有设置root用户密码的,设置密码步骤如下

输入 sudo passwd root ,其中root为默认,可省略为 sudo passwd

输入密码,并再次输入确认密码

如果没有sudo权限,需要先取得sudo权限(ubuntu安装后,默认享有),这个后文介绍

修改好密码后,输入 su root 并验证密码,即可切换为root用户。

但是,不建议直接使用root用户!

root用户

Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为。

由于root的权限过大,一般情况都不使用它。只有在一些特殊情况下才采用登录root执行管理任务。

一般情况下临时使用root用户的部分权限多采用su和sudo命令。但是

su 与 sudo

参考文章:https://linux.cn/article-8404-1.html

su

su为switch user,即切换用户的简写。

su命令可以在用户之间切换,超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。

常用命令格式有两种

su - USERNAME(-, -l, --login 三种形式都表示登录l)
su USERNAME

如果不指定USERNAME,默认即为root,所以切换到root的身份的命令即为:su -root或su -,su root或su。

su USERNAME,与su – USERNAME的不同之处如下:

su – USERNAME
切换用户后,同时切换到新用户的工作环境中。
su USERNAME
切换用户后,不改变原用户的工作目录,及其他环境变量目录。

sudo

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令;

命令格式如下,sudo不带参数默认为sudo -u root ;除了可以切换为root用户,也可以切换为其他用户执行命令。

sudo -u username [operate]

sudo执行命令时,需要输入当前用户的密码,不是-u指定的用户密码,默认保存密码15分钟,可更改为永久保存,但不建议。

sudo命令在被要求输入密码时,你的输入不会有任务显示,默认星号也没,此项也可更改以得到输入反馈。

未提到的具体操作,请参考文章 https://www.howtoforge.com/tutorial/sudo-beginners-guide/

在 Debian/Ubuntu 系统中如何配置 sudo 访问权限?

在基于 Debian 的系统中(如 Debian、Ubuntu 和 LinuxMint),使用下面的三个方法就可以做到。

方法1:在 Linux 中使用 sudo 或 admin 组为普通用户授予超级用户访问权限

sudo 或 admin 是基于 Debian 的系统中的特殊组,它提供额外的权限,可以授权用户像超级用户一样执行受到限制的命令。

如下图所示
在这里插入图片描述
使用命令将用户加入到admin组或者sudo组中

usermod -aG sudo username
usermod -aG admin username

直接修改用户分组文件,将用户加入到admin组或者sudo组中,文件为 /etc/group,查看一下
> mika@ubuntu:/etc$  grep -i sudo /etc/group
输出结果表示sudo组当前用户为mika,lifeng

我们使用 whoami 命令来确认用户是否已经被添加到 sudo 中。

sudo whoami

这个命令提示我们输入密码,如果密码正确,并且该用户在 sudo 组中,终端中会打印出 root。

如果用户不在 sudo 组中,我们会得到一个错误信息说 user is not in the sudoers file。

方法2:修改使用 /etc/sudoers 文件为普通用户授予超级用户访问权限

文件顶部注释内容向我们介绍了,要修改此文件,推荐使用visudo命令,此命令会对修改后的文件做格式检验,能避免错误的修改。

只需要添加如下内容即可,其中username为要赋予权限的用户

username ALL=(ALL) ALL

这里最后一个ALL表示赋予的是所有命令的权限,也可以指定赋予某些权限。关于具体参数以及更多细节暂不做了解。

文末提到了/etc/sudoers.d 目录,我们也可以通过在此目录下创建配置文件来实现用户运行命令的权限,配置文件的内容同上

在 RHEL/CentOS/OEL 系统中配置 sudo 访问权限

大体方法同上,但是用户分组不再是admin以及sudo,而是wheel

略。。。

03-11
<think>好的,我现在需要帮助用户解决如何在Linux中使用su命令切换到root用户的问题。首先,我需要回顾一下用户提供的引用内容,确保回答准确。 根据引用[1],使用su命令可以直接切换用户,而sudo则是以root权限执行命令用户提到su rootsudo su的区别,引用[4]说明su root需要root密码,而sudo su可能使用当前用户的密码。 然后,引用[2]指出某些发行版如Ubuntu默认禁用root账户,这时候su可能无效,必须用sudo。比如,如果用户尝试su但提示认证失败,可能需要先设置root密码或者使用sudo su。 接下来,我需要整理步骤。首先检查是否知道root密码。如果知道,直接使用su - 或者su root,输入密码即可。如果不知道,可能需要用sudo passwd root设置密码,但要注意这可能不安全,特别是在禁用root的系统中。 另外,要注意susu -的区别,后者会加载root的环境变量,而前者保持当前环境。引用[4]提到方法1是su root,但建议使用su -来获得完整的root环境。 用户的问题集中在使用su命令,所以重点放在su的用法,同时可能需要提到sudo su的情况,特别是当系统禁止su时。例如,在Ubuntu中,用户可能需要使用sudo su,输入自己的密码而不是root的,因为root可能没有密码。 还需要注意错误处理,比如如果出现认证失败,可能是密码错误或root账户被禁用,这时候需要引导用户使用sudo或者先启用root账户。但根据引用[2],出于安全考虑,可能不建议启用root,而是使用sudo。 最后,生成相关问题时要考虑用户可能的后续疑问,比如切换失败的原因、susudo的区别、如何启用root等。确保问题覆盖常见的使用场景和问题。</think>在Linux中使用`su`命令切换到root用户的具体步骤如下: ### 1. 基础切换方法 ```bash su - root # 或直接输入 su - ``` 输入命令后需要**输入root用户的密码**。使用`su -`会**加载root用户的环境变量**,而单独使用`su`会保留当前用户的环境变量[^4]。 ### 2. 常见问题处理 - 若出现`Authentication failure`错误: - 可能原因1:root账户未设置密码(常见于Ubuntu等发行版) ```bash sudo passwd root # 先设置root密码(需要当前用户sudo权限) ``` - 可能原因2:输入密码时未区分大小写或键盘布局错误[^2] ### 3. 特殊发行版处理(如Ubuntu) 对于默认禁用root账户的系统: ```bash sudo su - # 使用当前用户密码切换(不需要root密码) ``` 这种方法通过`sudo`临时获取root权限完成切换[^3]。 ### 4. 环境差异验证 ```bash whoami # 验证当前用户 pwd # 查看工作目录 echo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值