web-dev-qa-db-fra.com

Comment éditer un fichier en lecture seule dans / etc?

Je suis un tout nouvel utilisateur et je ne suis pas encore sûr de mon chemin dans le système. Je souhaite modifier le nom de mon ordinateur. J'ai donc essayé de le modifier dans /etc/hostname, mais il s'agit d'un fichier en lecture seule. L'ajout du caractère ! n'a pas aidé. J'utilise vim pour éditer le fichier.

15
WardenMorgan

La modification des paramètres du système nécessite des autorisations de superutilisateur. Depuis un terminal, faire

Sudo <editor> <filename>

où pourrait être vim ou nano ou toute autre commande d'éditeur, et c'est celle que vous devez éditer.

Vous pouvez également utiliser gksudo gedit <filename>.

Dans les deux cas, vous serez invité à entrer le mot de passe d'un utilisateur disposant d'autorisations de superutilisateur. Dans une installation normale d'Ubuntu, il s'agirait du premier utilisateur créé lors de l'installation.

15
tagMacher

Si vous éditez un fichier sans Sudo et que vous avez besoin de Sudo pour sauvegarder, utilisez simplement cette commande vim:

:w !Sudo tee %

Crédit à Dr Beco . Notez que vim remarquera le changement de fichier et vous demandera si vous souhaitez (L) oad , appuyez sur L.

10
NonlinearFruit

Réponse très courte:

Vous pouvez modifier un fichier (même s'il est en lecture seule) si vous possédez il.

Réponse courte:

Même si l'utilisateur avec lequel vous êtes connecté (dans ce cas, navidname__) possède des privilèges administratifs, vous ne pourrez pas modifier /etc/hostname, car l'utilisateur rootpossède ce fichier. Par conséquent, vous devez vous connecter en tant qu'utilisateur root.

Longue réponse

En supposant que vous souhaitiez changer le nom de votre ordinateur de oldNameà newNamename__, voici les étapes à suivre:

  1. Connectez-vous en tant qu'utilisateur root:

    navid@oldName:~$ Sudo su -
    
  2. Nom d'hôte ouvert:

    root@oldName:~# vi /etc/hostname
    
  3. Vous verrez oldNamename__. presse i pour aller au mode insertion puis changez-le en newNamename__. Puis appuyez Esc + : + w + q + Enter pour sauvegarder et quitter.

  4. Hôtes ouverts:

    root@oldName:~# vi /etc/hosts
    

    Les 2 premières lignes ressemblent à ceci:

    127.0.0.1       localhost
    127.0.1.1       oldName
    
  5. De la même manière que vous avez fait à l'étape 3, remplacez le nom d'ordinateur oldNamepar newNamename__. Puis enregistrez et quittez.

  6. Quittez l'utilisateur root:

    root@oldName:~# exit
    
  7. Enregistrez tout votre travail non sauvegardé et redémarrez votre ordinateur:

    navid@oldName:~$ reboot
    
  8. Ouvrez votre terminal et vous verrez que le nom de votre ordinateur a bien été changé! :-)

    navid@newName:~$ 
    

Remarque: Bien que vous puissiez réaliser ce que vous voulez en sautant les étapes 4 et 5, je vous le recommande vivement, pour éviter les erreurs potentielles à l'avenir.

Voir également:

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

par exemple :

Sudo -H gedit /etc/environment

ou Sudo nano /etc/environment Ctrl + X et Ctrl + Y et appuyez sur Entrée (pour nano)

0
ArUn