centos 解决“不在 sudoers 文件中。此事将被报告”问题
2018-05-24| 程成| 2391| 0| Linux

我在执行 sudo 命令的时候,由于输错了两次密码,报出了“不在 sudoers 文件中。此事将被报告”错误信息。


[elasticsearch@localhost logs]$ sudo chattr -V -a yidian-application.log
[sudo] password for elasticsearch: 
Sorry, try again.
[sudo] password for elasticsearch: 
Sorry, try again.
[sudo] password for elasticsearch: 
elasticsearch 不在 sudoers 文件中。此事将被报告。


一、sudo是什么


root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开。普通用户执行到系统程序时,需要临时提升权限,sudo就是我们常用的命令,仅需要输入当前用户密码,便可以完成权限的临时提升。


sudo命令可以让你以root身份执行命令,来完成一些我们这个帐号完成不了的任务。其实并非所有用户都能够执行sudo,因为有权限的用户都在/etc/sudoers中呢。



二、解决方法


1、切换到 root 用户



2、执行vi命令,编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root  ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:


## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
user    ALL=(ALL)       ALL(需要新增的用户)


说明:格式为(用户名    网络中的主机=(执行命令的目标用户)    执行的命令范围)



3、保存退出,并恢复/etc/sudoers的访问权限为440


[root@Compile user]# chmod 440 /etc/sudoers



4、切换到原来的用户,继续剩下的 sudo 操作



注:
其实centos自带命令visudo,意思就是调用vim来修改“/etc/sudoers”文件,从而达到增加账号权限的目的。相比之下,这个命令应该会做些保护和隔离,所以更加安全。

这样省去了你切换帐号的步骤。


×
作者:程成
QQ:492245711