当我在postgres用户下去执行sudo vim demo.sql需要用管理员权限运行时,并且输入本用户的密码,但是输入之后提示如下:
postgers is not in the sudoers file. This incident will be reported
翻译一下:postgres 不在sudoers文件中。将报告此事件。
这时候我们可以根据提示去找到这个 sudoers file 。也就是就是在/etc/sudoers文件里给该用户添加权限。
解决方法如下:
1.切换到root用户下
2./etc/sudoers文件默认是只读的,对root来说也是,因此需先添加sudoers文件的写权限,命令是:
chmod u+w /etc/sudoers
3.然后就可以编辑sudoers文件
vim /etc/sudoers
找到这行 root ALL=(ALL) ALL ,在他下面添加 xxx ALL=(ALL) ALL (这里的xxx是你的用户名).
root ALL=(ALL) ALL
progres ALL=(ALL) ALL
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.撤销sudoers文件写权限,命令:(通常/etc下文件均是不可写的文件,这时可以:)
chmod u-w /etc/sudoers
然后再去执行:
sudo vim demo.sql,输入密码即可。
over~~~,参考,感谢:https://www.linuxidc.com/Linux/2016-07/133066.htm,~~~