前言
虚拟机root突然连接不上,由于是公用的,也不知道是是不是有人误改了usr权限还是其他原因,仍然处于未知。。
但是,重点是自己在各种百度的情况的,差点就打算重装系统了,然后没有重装就搞定了。
于是想着这个必须分享给有需要的博友们~
一系列报错
1、连接root,报Permission denied, please try again.(我输入密码是对的,我确定)
2、切换普通用户,可以登录
3、再重普通用户su - ,输入密码(我输入密码是对的,我确定),报以下错
[admin@localhost home]$ su -
密码:
su: 鉴定故障
4、尝试sudo su登入,又报错
[admin@localhost home]$ sudo su
[sudo] password for admin:
admin 不在 sudoers 文件中。此事将被报告。
5、登入该虚拟机靠挂的物理机,很卡!!!但是还是坚持各种尝试,结果也没让自己失望,上解决方案。
解决办法
1、登入该虚拟机靠挂的物理机,重启虚拟机,按以下步骤进行:
- 按e
- 在UTF-8后面添加:空格
- 修改完,按ctrl+x
- 挂载:mount -o remount,rw /sysroot
- 切换根:chroot /sysroot
- 删除root口令:pass -d root
- 修改root密码:
[root@localhost ~]# passwd root
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
- 将普通用户(admin)赋予sudo权限:配置sudoers文件
1.切换到root用户下,su -
2.添加sudo文件的写权限,命令是:
chmod u+w /etc/sudoers
3.编辑sudoers文件
vi /etc/sudoers
找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
ps:这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
4.我添加的是:admin ALL=(ALL) ALL
这样普通用户就可以使用sudo了
- 服务器设置远程shell登录root用户
1、登录
若是新装centos机器,可以直接root用户登录;若是云服务器,需要登录云服务器后台,使用web版ssh登录root用户,接下来操作一致。
2、修改sshd_config
1)打开配置文件
vi /etc/ssh/sshd_config
2)修改配置,找到这两个配置参数,打开注释(删除“#”),并设置为“yes”PermitRootLogin yes
PasswordAuthentication yes
3、重启ssh服务systemctl restart sshd
- 或者重启客户机/虚拟机
- 耐心等待一会儿
- 待重启好了,再次打开远程连接工具,root可以直接连,admin使用sudo正常.