为了能到远方,脚下的每一步都不能少。|

Undefined443

园龄:2年11个月粉丝:13关注:3

使用了 sudo 却依然显示权限不够的原因

$ sudo echo "151.101.76.133 raw.githubusercontent.com" >> /etc/hosts
bash: /etc/hosts: Permission denied

bash 报错说权限不够,是因为重定向符号 >> 也是 bash 的命令。我们使用 sudo 只是让 echo 命令具有了 root 权限,但是没有让 >> 命令也具有 root 权限,所以 bash 会因为 >> 命令没有写入 hosts 文件的权限而报错。

解决方法:

sudo sh -c "echo '151.101.76.133 raw.githubusercontent.com' >> /etc/hosts"

利用 sh -c 命令,它可以让 bash 将一个字符串作为完整的命令来执行,这样就可以将 sudo 的影响范围扩展到整条命令。

本文作者:Undefined443

本文链接:https://www.cnblogs.com/Undefined443/p/18248930

版权声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

posted @   Undefined443  阅读(793)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起