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

Saq*_*ain 2 linux bash command-line bash-scripting

可能的重复:
sudo 权限被拒绝

我需要通过 bash 脚本编辑 /etc/network/interfaces,我正在做如下的事情......

sudo echo something > /etc/network/interfaces

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

但是如果我用某个编辑器编辑同一个文件,它可以完美地工作......即

sudo nano /etc/network/interfaces

上面让我编辑这个文件。

Hen*_*nes 5

这个问题已经在这个网站的某个地方得到了回答,尽管我没有找到它。

但基本上可以归结为:

sudo nano /etc/network/interfaces以 uid 0启动nano /etc/network/interfaces。由于 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 作为主用户。用它来安装和配置系统就可以了。