GNU/Linux >> Tutoriels Linux >  >> Linux

Linux – Raisons obscures pour lesquelles un fichier est en lecture seule ?

Le système de fichiers Linux semble avoir des couches et des couches de subtilité sur lesquelles je tombe au cas par cas :

Je souhaite modifier ce fichier :

[[email protected] ~]$ ls -l /a/b/c/foo.bar
-rw-rwxr-x    1 user   user      144529 Jan 26  2018 /a/b/c/foo.bar

Il semble qu'il devrait être accessible en écriture par l'utilisateur user - vrai? Mais lorsque j'essaie de modifier le fichier dans vim, j'obtiens un "W10: Warning: Changing a readonly file ” avertissement.

Je sais que l'inscriptibilité du fichier dépend des autorisations de son dossier contenant. Je pense que le dossier contenant doit avoir l'autorisation d'exécution - vrai ? Je suppose que l'autorisation de répertoire requise s'étend également jusqu'à / – vrai ?

Il me semble que l'arborescence de dossiers contenant le fichier noté a des autorisations d'exécution :

[[email protected] ~]$ ls -ld /a/b/c/                                                                                    
drwxrwxrwx    2 user   user       36864 Mar  5 17:50 /a/b/c/
[[email protected] ~]$ ls -ld /a/b/           
drwxrwxr-x    4 user   user        4096 Sep 22  2017 /a/b/
[[email protected] ~]$ ls -ld /a/                
drwxrwxr-x    9 user   user        4096 Sep 15  2017 /a/
[[email protected] ~]$ ls -ld /     
drwxr-xr-x   24 root   root           0 Aug 24 10:48 /
[[email protected] ~]$ whoami
user

Pour autant que je sache d'après ce qui précède, chaque répertoire de l'arborescence concernée dispose d'autorisations d'exécution. Au début, je me demandais si cela avait à voir avec / appartenant à root , mais il dispose d'une autorisation d'exécution pour "autres". De plus, s'il y avait des problèmes liés à / appartenant à root , j'imagine que j'aurais du mal à écrire des fichiers n'importe où sur le système de fichiers en tant qu'utilisateur autre que root , mais ce n'est pas le cas.

Quelqu'un peut-il penser à/identifier d'autres raisons pour lesquelles le fichier noté est considéré comme en lecture seule ?

Réponse acceptée :

Premier – vous êtes avec un ensemble d'indicateurs immuables

chattr -i yourfilename

Si l'indicateur immuable est défini, vous ne pouvez pas modifier le fichier. N'oubliez pas que les autorisations n'ont pas remplacé ce comportement !

Deuxièmement, vérifier si le répertoire où se trouve le fichier est monté sur un autre disque ou une autre partition , en lecture seule, pour cela il suffit de taper :

mount 

(sans arguments)

Si vous voyez quelque chose comme votre répertoire monté en lecture seule, il y a la raison ! Remontez-le en lecture-écriture pour avoir de la chance !

Troisième - et le plus courant , vous exécutez simplement un système de fichiers avec des erreurs , pour corriger cela, vous devez sauvegarder ce que vous pouvez, redémarrer, puis vous connecter en mode simple et exécuter :

mount #To determine how the partition is mounted
mount -o remount,ro /dev/sd(yourpartition) directory
fsck.ext4 /dev/sd(yourpartition)

(ext4 doit peut-être être changé pour votre type de partition)

Bonne chance !

En relation :Obtenir l'heure de l'utilisateur et du noyau d'un processus en cours d'exécution ?
Linux
  1. Comment déplacer un fichier sous Linux

  2. Qu'est-ce qu'un utilisateur Linux ?

  3. Une introduction à la surveillance des comptes utilisateur Linux

  4. Linux - Tout est un fichier ?

  5. Commande Linux su

Commande Gzip sous Linux

Commande Su sous Linux (Changer d'utilisateur)

Commande ID sous Linux

Autorisations de fichiers Linux :tout ce que vous devez savoir

Exemples de commandes Linux chown

Qu'est-ce que le fichier /etc/passwd sous Linux ?