无法在 Ubuntu 中通过 bash 脚本编辑‘/etc/network/interfaces’文件

无法在 Ubuntu 中通过 bash 脚本编辑‘/etc/network/interfaces’文件

可能重复:
sudo 权限被拒绝

我需要通过 bash 脚本编辑 /etc/network/interfaces,我正在执行类似下面的操作...

sudo echo something > /etc/network/interfaces

当执行此行时,我收到下面提到的错误: bash: /etc/network/interfaces: Permission denied

但是如果我用某个编辑器编辑同一个文件它就可以完美地运行...即

sudo nano /etc/network/interfaces

上面让我编辑这个文件。

答案1

虽然我没能找到,但该站点的某个地方已经回答了这个问题。

但基本上可以归结为以下几点:

sudo nano /etc/network/interfaces开始纳米/等/网络/接口作为 uid 0。由于 nano 在 uid 0 下运行并且具有写入 /etc/network/interfaces 的权限。

sudo echo something > /etc/network/interfaces开始呼应某事作为 uid 0。该部分成功。输出被重定向>到 /etc/network/interfaces`。但是,此重定向是用您自己的帐户完成的。并且该帐户无权写入该位置。


尝试一下这个:
sudo bash -c "echo something > /etc/network/interfaces"

这应该以 uid 0 运行 bash,并让 bash 以 uid 0 执行整个命令。

或者干脆su -以 root 身份运行。不建议一直以 root 身份运行,但有时您只是想拥有足够的权限,而不想在每一行前面都输入 sudo 命令。只是不要将 root 用作主用户。使用它来安装和配置系统是可以的。

相关内容