web-dev-qa-db-ja.com

/ etcの読み取り専用ファイルを編集する方法は?

私はまったく新しいユーザーですので、システムをどのように使用するかはまだわかりません。コンピューターの名前を変更したいので、/etc/hostnameの名前を編集しようとしましたが、読み取り専用ファイルです。 !文字を追加しても解決しませんでした。 vimを使用してファイルを編集しています。

16
WardenMorgan

システム設定を変更するには、スーパーユーザーの権限が必要です。ターミナルから、

Sudo <editor> <filename>

ここで、vim、nano、またはその他のエディターコマンドがあり、編集する必要があります。

Usegksudo gedit <filename>も使用できます。

どちらの場合でも、スーパーユーザー権限を持つユーザーのパスワードの入力を求められます-通常のUbuntuインストールでは、これはインストール中に作成される最初のユーザーになります。

17
tagMacher

Sudoなしでファイルを編集していて、保存するためにneedSudoを使用する場合は、次のvimコマンドを使用します。

:w !Sudo tee %

Dr Beco へのクレジット。 vimはファイルの変更を認識し、変更を(L)oadするかどうかを尋ねるので、押してください。 L

10
NonlinearFruit

非常に短い回答:

canあなたがownの場合、ファイルは(読み取り専用であっても)変更します。

簡潔な答え:

ログインしているユーザー(この場合はnavid)が管理者権限を持っている場合でも、rootユーザーがそのファイルを所有しているため、/etc/hostnameを変更することはできません。したがって、rootユーザーとしてログインする必要があります。

ロングアンサー

コンピューター名をoldNameからnewNameに変更する場合、次の手順を実行する必要があります。

  1. Rootユーザーとしてログインします。

    navid@oldName:~$ Sudo su -
    
  2. ホスト名を開く:

    root@oldName:~# vi /etc/hostname
    
  3. oldNameが表示されます。押す i 挿入モードに移動するには、newNameに変更します。次に Esc + : + w + q + Enter 保存して終了します。

  4. オープンホスト:

    root@oldName:~# vi /etc/hosts
    

    上の2行は次のようになります。

    127.0.0.1       localhost
    127.0.1.1       oldName
    
  5. 手順3で行ったことと同様に、コンピューター名をoldNameからnewNameに変更します。次に、保存して終了します。

  6. Rootユーザーを終了します。

    root@oldName:~# exit
    
  7. 未保存の作業をすべて保存し、コンピューターを再起動します。

    navid@oldName:~$ reboot
    
  8. ターミナルを開くと、コンピューター名が正常に変更されたことがわかります! :-)

    navid@newName:~$ 
    

注:ステップ4と5をスキップすることで目的を達成できる可能性がありますが、将来の潜在的なエラーを回避するために、同様に実行することを強くお勧めします。

こちらもご覧ください:

5
Navid Vafaei
Sudo -H gedit <path to file>

例:

Sudo -H gedit /etc/environment

またはSudo nano /etc/environment Ctrl + X そして Ctrl + Y Enterを押します(nanoの場合)

0
ArUn