1。为什么执行sudo会出现“commandnotfound”?sudo:commandnotfound在本地安装一个Ubuntu虚拟机,搭建golang环境并添加PATH环境变量,用make编译时显示源代码,显示Permissiondenied,然后sudo:go:commandnotfound是sudo执行编译源代码时显示。然后尝试执行go版本命令非root用户执行:goversiongo1.12.6linux/amd64root用户执行:goversiongo1.12.6linux/amd64非root用户sudo执行:sudo:go:commandnotfoundthis???是不是很奇怪???是什么原因??原来root用户和非root用户正常执行命令时,使用的PATH配置文件是/etc/environment。非root用户sudo执行命令时,使用的PATH配置文件为/etc/sudoers/etc/sudoers。默认是reanonly只读的,需要加点权限;然后将GOROOT路径添加到secure_path中:修改前,Defaultssecure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"修改后Defaultssecure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/go/bin"2.修改/etc/sudoers权限有问题而写权限被修改,会有不同的反应。部分版本修改文件权限后,执行sudo命令会报如上错误。但是如果把权限改回来,直接把权限改回来:permissiondenied;sudo更改权限(执行所有sudo命令),报以上错误。更改权限将失败。这时候可以使用一个命令pkexec,它的功能类似于sudo,以管理员身份运行该命令,但不依赖于soduers文件。当sudo命令无法使用时,可以考虑使用pkexec以管理员权限运行命令。#使用pkexec命令将sudoers文件权限改回440pkexecchmod440/etc/sudoers
