前言
linux系统中真正标识用户的其实并不是我们的用户名,而是用户名背后的uid。uid和用户名的关系就好比我们的身份证号和姓名的关系,名字不论怎么变,id是不变的。在linux系统中,用户一般分为三类:
- 系统管理员:uid=0
- 系统用户:1<=uid<=999
- 普通用户:uid>=1000
识别UID
在笔者使用的ubuntu系统中,默认登录用户是普通用户,可用id命令查看
mango@wanzhouyi:~$ id mango
uid=1000(mango) gid=1000(mango) groups=1000(mango),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev)
mango@wanzhouyi:~$ id root
uid=0(root) gid=0(root) groups=0(root)
mango@wanzhouyi:~$
root账户是存在于当前系统中的,那么问题来了
怎么切换到root用户?
通常我们可以用su root命令,来切换到root用户。不幸的是,密码怎么输都不对
mango@wanzhouyi:~$ su root
Password:
su: Authentication failure
mango@wanzhouyi:~$
出现这种情况,一般有两种原因,原因一是真的输错了,原因二则是可能还没有给root账户设置密码(出于安全考虑,默认时Ubuntu的root用户时没有固定密码的,它的密码是随机产生并且动态改变的)。
我们可以通过sudo passwd root
来给root用户设置一个密码。
mango@wanzhouyi:~$ sudo passwd root
[sudo] password for mango:
New password:
Retype new password:
passwd: password updated successfully
mango@wanzhouyi:~$ su root
Password:
root@wanzhouyi:/home/mango# exit
mango@wanzhouyi:~$
如上设置了root用户密码之后就可以通过密码方式切换至root账户了。
怎么禁用和启用root
由于root权限太过敏感,一般情况下是建议禁用的。
mango@wanzhouyi:~$ sudo passwd -l root
[sudo] password for mango:
passwd: password expiry information changed.
mango@wanzhouyi:~$ su root
Password:
su: Authentication failure
mango@wanzhouyi:~$
如上所示,我们可以通过sudo passwd -l root
命令来禁用root。这里虽然是禁用了,但是root的密码还保存着。但即使这样,切换到root还是会鉴权失败。
若要再次启用root,则可以使用sudo passwd -u root
命令。
mango@wanzhouyi:~$ sudo passwd -u root
passwd: password expiry information changed.
mango@wanzhouyi:~$ su root
Password:
root@wanzhouyi:/home/mango# exit
mango@wanzhouyi:~$