8k_*_*wer 3 linux debian bash ubuntu
我运行了这个代码:
sudo cat <<EOF | sudo sed -e "s,%,$,g" >/etc/init.d/dropbox
echo "Hello World"
EOF
Run Code Online (Sandbox Code Playgroud)
但是即使我得到“权限被拒绝”,因为您必须是 root 才能在 /etc/init.d 目录中进行更改。不知何故,我上面的命令不起作用。
有没有办法解决这个问题?
重定向到文件由 bash 处理。因此它不会继承 sudo 授予的权限。
使用sudo tee写入文件,作为根。
尝试这个:
cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
echo "Hello World"
EOF
Run Code Online (Sandbox Code Playgroud)
请注意,$,内部双引号可能会被解释。
小智 5
您可以授予自己持久的权利
# sudo -s
然后你的命令(不再需要 sudo )并退出
# exit
编辑:
我假设你问的是与 Ubuntu 相关的问题,因为你的问题是这样标记的。在 Suse 等其他发行版中,您可以
# su
使用# sudo -s
| 归档时间: |
|
| 查看次数: |
7986 次 |
| 最近记录: |