Impossible d'enregistrer les modifications sous etc/host

Val Oche

Membre actif
18 Février 2006
745
35
Coucou les Geeks!

Je veux mettre au propre mon fichier host. Je tape donc dans le terminal :

Bloc de code:
sudo pico /etc/hosts

J'efface tout et j'écris:

Bloc de code:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1          localhost
255.255.255.255    broadcasthost
::1                localhost
fe80::1%lo0        localhost

Et à chaque fois que je veux enregistrer mon beau fichier tout propre, j'ai systématiquement:

Bloc de code:
[ Error writing /etc/hosts: Operation not permitted

Pourquoi donc. Je suis l'admin de mon Mac pourtant???

Il y aurait il de la rébellion dans l'air?
Une idée?
Merciiiiiiiiiii!
 
Moi aussi j'avais un problème avec les droits administrateurs quand je voulais modifier ce fichier. Mais quand je tapais sudo pico /etc/hosts ça marchait. As-tu bien fais Ctrl (ou Cmd) + O^ où il y a écrit Write out?
 
Le fichier est peut-être en lecture seule, même pour root.
Il faut alors peut-être forcer l'écriture. Avec vi c'est :w! et avec pico, je ne sais pas...
Ou alors modifier d'abord les droits du fichier :
Bloc de code:
sudo chmod 644 /private/etc/hosts
 
Chez moi, le fichier hosts est en : -rw-r--r-- root wheel (644 en valeur octale). Je préconise d'utiliser ☞TextWrangler ☜ (gratuit) --> le lancer, naviguer au fichier et l'ouvrir : à la moindre frappe modificatrice dans le fichier, «TextWrangler» demande si l'on veut vraiment déverrouiller le fichier à fin d'édition --> presser le bouton "Unlock" et il est loisible d'écrire ce qu'on veut (
459250_original.gif
) avec la commodité d'un traitement de texte ordinaire. Au final, quand on fait ⌘S pour sauvegarder l'édition, «TextWrangler» demande une simple authentification par mot-de-passe
admin et les droits du fichier-système sont conservés à l'identique des originels.
 
Dernière édition par un modérateur:
Moi aussi j'avais un problème avec les droits administrateurs quand je voulais modifier ce fichier. Mais quand je tapais sudo pico /etc/hosts ça marchait. As-tu bien fais Ctrl (ou Cmd) + O^ où il y a écrit Write out?

Oui, ça c'est bon, c'est ce que j'ai fais Ctrl O puis entrée et c'est là que j'ai le message d'interdiction


Le fichier est peut-être en lecture seule, même pour root.
Il faut alors peut-être forcer l'écriture. Avec vi c'est :w! et avec pico, je ne sais pas...
Ou alors modifier d'abord les droits du fichier :
Bloc de code:
sudo chmod 644 /private/etc/hosts

Il faut que je tape cette ligne de commande pour le rendre en lecture/ecriture?

Je préconise d'utiliser ☞TextWrangler ☜ (gratuit) --> le lancer, naviguer au fichier et l'ouvrir : à la moindre frappe modificatrice dans le fichier, «TextWrangler» demande si l'on veut vraiment déverrouiller le fichier à fin d'édition --> presser le bouton "Unlock" et il est loisible d'écrire ce qu'on veut

Textwrangler l'ouvre bien, quand je veux e modifier, il me demande de le déverrouiller, ok et si je veux écrire quoi que ce soit, il me redemande si je veux le déverrouiller. Je lui dis oui (un peu plus fort), si je veux écrire, il me redemande si je veux le déverrouiller..... J'en suis à 128 fois et je suis têtu, plus que lui, je l'aurai…

Salut

Que te renvoie un :
Bloc de code:
ls -l  /etc/hosts

Ceci :
-rw-r--r--@ 1 root wheel 7872 25 mai 2014 /etc/hosts
 
Et si tu fais :
Bloc de code:
sudo -i
mv /etc/hosts /etc/hosts.ko
pico /etc/hosts.ko
tu fais tes modifs
puis CTRL+O là tu supprimes .ko et tu valides. Si ok CTRL+X
tu finis par :
Bloc de code:
exit
 
Lorsque je supprime .ko, je valide et j'ai uniquement cette option
Bloc de code:
File exists, OVERWRITE ?                                                       

Y Yes
N No           ^C Cancel

Si je fais Y, je retombe sur l'interdiction.


Prrrrrr
Prrrrrr
Prrrrrr

Et un truc comme Batchmod?
 
On voit que le fichier a des attributs complémentaires en plus des droits UNIX classiques. Ce qui est un peu étonnant (mais peut-être normal pour Yosemite, que je n'ai pas sous la main aujourd'hui).
Tu peux taper :
Bloc de code:
sudo ls -l@e /private/etc/hosts
?
 
ça donne ceci:

Bloc de code:
-rw-r--r--@ 1 root  wheel  7872 25 mai  2014 /private/etc/hosts
    com.apple.TextEncoding      15
0: user:Val allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
 
Val c'est moi! Le chef incontesté du bazar quand il le veut bien ce petit rigolo
 
J'aime bien ce petit jeu :D

Bloc de code:
pc2:~ root# sudo -i
pc2:~ root# mv /etc/hosts /etc/hosts.ko
mv: rename /etc/hosts to /etc/hosts.ko: Operation not permitted
pc2:~ root# ls -l  /etc/hosts*
-rw-r--r--@ 1 root  wheel   7872 25 mai  2014 /etc/hosts
-rw-r--r--  1 root  wheel   1877 20 aoû  2014 /etc/hosts.
-rw-r--r--  1 root  wheel      0  8 jul  2014 /etc/hosts.equiv
-rw-------  1 root  wheel    257 26 fév 18:33 /etc/hosts.ko.save
-rw-------  1 root  wheel   7903 30 jul  2014 /etc/hosts.save
-rw-------  1 root  wheel  14073 30 jul  2014 /etc/hosts.save.1
-rw-------  1 root  wheel    257 26 fév 17:18 /etc/hosts.save.10
-rw-------  1 root  wheel   7526 20 aoû  2014 /etc/hosts.save.2
-rw-------  1 root  wheel   7870 20 aoû  2014 /etc/hosts.save.3
-rw-------  1 root  wheel   6900 20 aoû  2014 /etc/hosts.save.4
-rw-------  1 root  wheel   2217 20 aoû  2014 /etc/hosts.save.5
-rw-------  1 root  wheel   7901 26 fév 08:28 /etc/hosts.save.6
-rw-------  1 root  wheel   7902 26 fév 08:32 /etc/hosts.save.7
-rw-------  1 root  wheel    257 26 fév 09:28 /etc/hosts.save.8
-rw-------  1 root  wheel    258 26 fév 16:56 /etc/hosts.save.9
-rw-r--r--  1 root  wheel    214  8 jul  2014 /etc/hosts~orig
pc2:~ root# exit
 
Le petit jeu continue : :p
Toujours en root :

Bloc de code:
sudo -i
xattr -c  /etc/hosts
ls -l  /etc/hosts
pico /etc/hosts
Tes modifs puis
Bloc de code:
exit
 
On gagne quoi? :D

Bloc de code:
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y
[ Error writing /etc/hosts: Operation not permitted ]
 
Et si je passe le fichier host avec Batchmod pour autoriser l'écriture à tout le monde, ça risque de faire un carnage dans le système?
 
Et si tu essaye de modifier le fichier /etc/host.equiv ça passe?

Edit :
que te renvoie :
Bloc de code:
ls -l@e  /etc
 
Cool on continue le jeu :kiss:

host.equiv se modifie avec text wrangler comme un fichier text normal.

Avec ta commande, j'obtiens ça :
Bloc de code:
lrwxr-xr-x@ 1 root  wheel  11 26 jul  2014 /etc -> private/etc
    com.apple.FinderInfo    32

J'ai juste?
 
Ça à l'air normal. Ce que je tenterai :
Démarrer en mode Recovery ou en mode Mono user puis je modifierai ce fichier (de malheur) avec vi ou pico si ça fonctionne directement en root.