sudoを使用してサーバーのホスト名を変更できないのはなぜですか? [コピー]

sudoを使用してサーバーのホスト名を変更できないのはなぜですか? [コピー]

sudoers グループに属するユーザーの場合、通常、次のようにしてすべてのコマンドを実行できます。sudo <command>

ただし、次のコマンドは失敗し、「権限が拒否されました」というメッセージが表示されます。

sudo echo "myhostname" > /etc/hostname

でも私のパスワードを尋ねることはありません。ホスト名を変更するには?

答え1

あなたの場合、正しいコマンドはecho "newhostname" | sudo tee /etc/hostnamenssndの説明がsudo単一のコマンドに対してのみ機能し、リダイレクトの優先順位がnssndより低いためですsudo。別のオプションは、bash次のコマンドを使用することです。

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

答え2

sudo最初のコマンドでのみ機能するため、「>」操作はユーザーが行います。

コマンドを実行するには、次のようにします。

  1. 以下を実行してルートシェルを取得します。sudo -i
  2. コマンドを実行します。echo "myhostname" > /etc/hostname
  3. ルートシェルの終了exit

関連情報