栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用sudo时找不到命令

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用sudo时找不到命令

没有权限

为了运行脚本,文件必须 设置可执行权限

为了完全理解Linux
文件权限,您可以学习

chmod
命令的文档。chmod是 change mode 的缩写,是用于更改文件的权限设置的命令。

要阅读本地系统的chmod文档,请运行

man chmod
info chmod
从命令行运行。阅读并理解后,您应该能够理解运行的输出…

ls -l foo.sh

…这将列出文件所有者,组所有者以及不是文件所有者或文件所属组成员的其他所有人的READ,WRITE和EXECUTE权限(有时会引用最后一个权限组作为“世界”或“其他”)

这是有关如何解决您的情况下“ 拒绝权限”错误 的摘要。

$ ls -l foo.sh         # Check file permissions of foo-rw-r--r-- 1 rkielty users 0 2012-10-21 14:47 foo.sh     ^^^  ^^^ | ^^^   ^^^^^^^ ^^^^^  |  |  |       |       | Owner| World    |       |     |          |    Name of   Group        |     Group  Name of    Owner

所有者具有读写权限rw,但是-表示缺少可执行权限

chmod
命令解决了该问题。(组和其他仅在文件上设置了读取权限,他们无法对其进行写入或执行)

$ chmod +x foo.sh    # The owner can set the executable permission on foo.sh$ ls -l foo.sh       # Now we see an x after the rw -rwxr-xr-x 1 rkielty users 0 2012-10-21 14:47 foo.sh   ^  ^  ^

就Linux而言,foo.sh现在是可执行的。

在命令中使用sudo结果未找到

使用 sudo 运行命令时,您实际上是以超级用户或root用户身份运行它的。

根用户没有找到自己指令的原因,很可能是

PATH
根环境变量不包括 地方目录
foo.sh
所在
。因此找不到命令。

PATH环境变量包含要搜索命令的目录列表。每个用户根据自己的需求设置自己的PATH变量。看看它要运行什么

env | grep ^PATH

这是一些

env
先以普通用户身份然后以sudo身份以root用户身份运行上述命令的示例输出

rkielty@rkielty-laptop:~$ env | grep ^PATHPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gamesrkielty@rkielty-laptop:~$ sudo env | grep ^PATH[sudo] password for rkielty: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

请注意,尽管类似,但在这种情况下,PATH中包含的目录(非特权用户(rkielty))和超级用户 并不相同

其中目录

foo.sh
所在是不存在于根用户的PATH变量,因此 命令没有发现 错误。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395507.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号