bash – 为什么sudo cat给一个Permission被拒绝,但sudo vim工作
发布时间:2020-12-15 16:33:36 所属栏目:安全 来源:网络整理
导读:我试图自动化在我的arch的pacman.conf文件中添加一个存储库源,但在我的shell脚本中使用echo命令。然而,它失败了这样: – sudo echo "[archlinuxfr]" /etc/pacman.confsudo echo "Server = http://repo.archlinux.fr/$arch" /etc/pacman.confsudo echo "
我试图自动化在我的arch的pacman.conf文件中添加一个存储库源,但在我的shell脚本中使用echo命令。然而,它失败了这样: –
sudo echo "[archlinuxfr]" >> /etc/pacman.conf sudo echo "Server = http://repo.archlinux.fr/$arch" >> /etc/pacman.conf sudo echo " " >> /etc/pacman.conf -bash: /etc/pacman.conf: Permission denied 如果我使用vim手动更改/etc/pacman.conf,通过做 sudo vim /etc/pacman.conf 并退出vim与:wq,一切工作正常,我的pacman.conf已手动更新,没有“权限被拒绝”投诉。 为什么会这样?如何让sudo echo工作? (btw,我尝试使用sudo猫,但失败,Permission也拒绝)
问题是重定向正在由您的原始shell处理,而不是由sudo处理。贝壳不能读头脑,不知道那个特定>>是为sudo而不是为它。您需要(a)引用重定向,因此将其传递给sudo,并且(b)使用sudo -s,以便sudo使用shell处理引用的重定向。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |