为什么我无法使用 sudo 更改服务器的主机名?

为什么我无法使用 sudo 更改服务器的主机名?

对于属于 sudoers 组的用户,我通常可以通过执行以下操作来运行任何命令sudo <command>

但以下命令失败并提示“权限被拒绝”

sudo echo "myhostname" > /etc/hostname

它甚至不问我密码。如何更改主机名?

答案1

在您的情况下,正确的命令将是echo "newhostname" | sudo tee /etc/hostname,因为正如 nssnd 所解释的那样,sudo仅适用于单个命令,并且重定向的优先级低于sudo。另一种选择是使用bash命令:

sudo bash -c "echo newhostname > /etc/hostname"

答案2

sudo仅适用于您的第一个命令,因此“>”操作是由您的用户完成的。

要运行您的命令:

  1. 通过执行获取 root shellsudo -i
  2. 执行你的命令:echo "myhostname" > /etc/hostname
  3. 退出 root shellexit

相关内容