如何解决第 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
用于压缩 dd
或 tee
写入标准输出的任何内容。
请注意,以下操作无效。命令解析和重定向由 非特权 用户 shell 完成。它无权打开 $(FILE)
...
# Simpler but incorrect
wget -q -O - "$SOURCE" | sudo cat > "$FILE"
警告:以上都没有经过测试!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。