sudo 权限被拒绝

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 目录中进行更改。不知何故,我上面的命令不起作用。

有没有办法解决这个问题?

Ben*_*oit 7

重定向到文件由 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