Linux 系统操作作为后端开发必须掌握的技术之一,已经越来越多的成为我们工作的一部分。初入职场、首次接触 Linux,面对满屏的操作命令,谁又不会怀念 windows 的界面呢。不过慢慢的就会发现用命令行敲击起来还是蛮爽的,毕竟我们可以"咔咔咔咔"的敲击键盘来证明我们那饱满的工作量!今天就和大家分享一个自己敲击命令遇到的小问题,希望大家都不会遇到。Linux,yyds!
问题描述
在使用普通用户登录 Linux 系统时,由于需要 root 权限来执行一些操作,使用 sudo su 命令来将用户权限提升到 root,执行并输入普通用户密码时提示错误:“…用户不在 sudoers 文件中,此事将被报告” ,由此引发了对 Linux 系统 su、sudo 命令的学习和探究。
产生原因
首先来回顾一下 su、sudo 相关命令的具体含义,参考文章:Linux 从入门到精通: su 和 sudo 命令
- sudo … :sudo 后跟命令,表示当前用户以 root 身份权限执行命令操作,需要验证当前用户密码,命令执行完成后退回到当前用户,sudo 命令执行时需要用户在 sudoers 中有权限
- sudo su :使用 sudo 给 su 命令提权,
- su root :切换至 root 用户,验证 root 密码,不改变所在目录,不改变环境变量
- su :等同于 su root (用户缺省时默认为切换至 root 用户)
- su - root :切换至 root 用户,并进入到 root 用户对应目录下,改变环境变量
- su xxx :切换至 xxx 普通用户,root 用户切换至普通用户不需要输入密码
因此可以对 sudo su 命令进行分析,sudo 表示我们需要提升当前用户的权限为 root 用户权限,并使用 root 用户权限来执行 su 命令。而执行 sudo 命令是需要在 sudoers 文件中需要写入当前普通用户的权限,如果执行时文件中没有当前用户的权限,就会提示 “…用户不在 sudoers 文件中,此事将被报告” 。
解决办法
既然找到问题的出现原因,那么我就可以采取办法来解决问题,正所谓只要思想不滑坡,办法总比问题多。既然是因为当前用户执行 sudo 命令时没有权限,那么我们就给他加上这个权限,问题不久解决了嘛!sudoers 配置文件存在于 Linux 系统的 /etc/sudoers 路径下。文章来源:https://www.toymoban.com/news/detail-724537.html
- 我们首先使用命令 su root 切换至 root 用户,此时需要验证 root 用户密码
- 然后我们查看 /etc/sudoers 文件内容是否包含当前用户权限
- 如果没有权限,使用命令 vim /etc/sudoers 编辑文件增加 shone 用户的 sudo 权限
## root用户默认存在
root ALL=(ALL:ALL) ALL
## 代表为 shone 用户添加了 sudo 命令的权限
shone ALL=(ALL:ALL) ALL
- 注意 /etc/sudoers 文件的权限是 440 只读文件,编辑文件内容后无法正常保存退出
- chmod u+w /etc/sudoers ,增加写入权限
- chmod 740 /etc/sudoers ,增加 root 用户的全部权限(4+2+1=7)
- 编辑完成后使用命令 :wq! 强制保存修改 - 最后我们使用命令 su shone 切换至普通用户,重新测试 sudo 命令权限已经增加成功
在平时的工作学习中,需要保持好奇心,遇到问题不仅要知其然,也要尽力去知其所以然,只有如此我们才能在工作中不断积累、不断学习、并不断进步,终究有一天我们会真正进入到领域中。文章来源地址https://www.toymoban.com/news/detail-724537.html
到了这里,关于Linux 从入门到精通: “用户不在 sudoers 文件中,此事将被报告“ 问题处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!