微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

第 24 行:sudo:权限被拒绝

如何解决第 24 行:sudo:权限被拒绝

我想创建一个包含写保护目录中的内容文件。我不知道为什么它说 line 24: sudo: Permission denied。请检查我的代码

echo $(wget -q -O - "$SOURCE") > sudo "$FILE";

在 Ubuntu 上测试过。

解决方法

该代码表示​​“将 wget 和 $FILE 的输出写入当前目录中名为 sudo 的文件”。

错误 #1:> 表示写入文件。您打算通过管道传送到 sudo

这就是导致错误的原因。您不是在运行 sudo,而是在编写一个名为 sudo 的文件。 (权限被拒绝,因为当前用户没有权限。)

错误 #2:sudo command 执行命令。你写了sudo $(FILE)。这意味着执行 $(FILE)

错误 #3:$(wget ...) 将对您获取的文档执行 shell 参数拆分等。如果获取的文档太长,则会溢出命令行缓冲区。可能错了。

我会这样做:

wget -q -O - "$SOURCE" | sudo tee "$FILE" > /dev/null

您也可以使用 dd -of="$FILE" 代替 tee "$FILE"> /dev/null 用于压缩 ddtee 写入标准输出的任何内容。

请注意,以下操作无效。命令解析和重定向由 非特权 用户 shell 完成。它无权打开 $(FILE) ...

# Simpler but incorrect
wget -q -O - "$SOURCE" | sudo cat > "$FILE"

警告:以上都没有经过测试!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。