欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

给普通用户赋予sudo权限后报错,提示/etc/sudoers文件权限拒绝

程序员文章站 2022-04-10 20:16:30
在Ubuntu 16.04系统里给普通用户赋予sudo权限,编辑vi /etc/sudoers 文件内容后发现执行sudo命令报错。 当我运行命令检查sudo权限的时候 sudo -i 输出错误提示: >>> /etc/sudoers: syntax error near line 24 <<

在ubuntu 16.04系统里给普通用户赋予sudo权限,编辑vi /etc/sudoers 文件内容后发现执行sudo命令报错。

  当我运行命令检查sudo权限的时候 sudo -i 输出错误提示:

>>> /etc/sudoers: syntax error near line 24 <<<
sudo: unable to stat /etc/sudoers.d/readme: permission denied
sudo: parse error in /etc/sudoers near line 24
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

  仔细看这段提示是说运行sudo命令的时候遇到4个错误。分别是:

/etc/sudoers.d/readme文件没有权限

/etc/sudoers文件内容第24行有语法错误

找不到有效的sudoers源

无法初始化策略插件

 

  于是,切换到root用户,执行 vi /etc/sudoers 编辑文件内容,将第24行的错误改正(注释掉)之后保存退出。然后再出来切换到之前的普通用户执行 sudo -i 输出错误提示只剩下一个:

sudo: unable to stat /etc/sudoers.d/readme: permission denied

  明白了,是应为文件权限的问题。切换到root用户修改用户和权限就行了:

chown -r root:root /etc/sudoers.d
chmod u=rwx,g=rx,o=rx /etc/sudoers.d/
chmod u=r,g=r,o= /etc/sudoers.d/*

  将sudoers.d文件夹的权限设置成root用户和root组,root组只有执行的权限,只有root用户有写入的权限。

至此,再次切换回普通用户,执行 sudo -i 命令发现正常。