GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi ne puis-je pas supprimer ce fichier en tant que root ?

Depuis l'utilisateur root, vérifiez les attributs des fichiers

# lsattr 

si vous remarquez i (immuable) ou a (ajout uniquement), supprimez ces attributs :

# man chattr
# chattr -i [filename]
# chattr -a [filename]

La raison la plus courante pour rm se plaindre que vous n'avez pas la permission de supprimer un fichier, c'est que les permissions sur le répertoire vous interdisent de supprimer le fichier. Pour supprimer un fichier, vous avez besoin d'une autorisation en écriture sur le répertoire. Les autorisations sur le fichier ne sont pas pertinentes (rm sans -f demande confirmation avant de supprimer un fichier en lecture seule, mais ce n'est qu'une confirmation, pas une limitation). Sur certaines variantes d'Unix comme OSX (mais pas Linux), l'ACL sur un fichier peut empêcher sa suppression; ls -l afficherait @ à la fin du champ d'autorisation s'il y avait une entrée ACL sur le fichier.

L'accès en tant que root contourne les autorisations, donc root peut supprimer des fichiers même dans un répertoire en lecture seule.

La sortie de ls -l affiche un . à la fin de la colonne d'autorisation. Cela indique que le fichier a un contexte de sécurité SELinux. Contrairement aux autorisations de base et à l'ACL, le contexte de sécurité SELinux sur un fichier peut contrôler qui est autorisé à le supprimer. De plus, SELinux ne peut pas toujours être contourné par root (il est possible qu'un processus s'exécute sous l'ID utilisateur 0 mais avec aussi peu de droits que le concepteur de la politique SELinux l'a choisi). Pour voir ce que le contexte SELinux vous permet de faire, exécutez ls -lZ . exam_a .

Une autre chose qui peut empêcher la suppression d'un fichier est si lui ou le répertoire qui le contient a l'attribut Linux ajouté uniquement ou immuable. Exécutez lsattr -d . exam_a pour afficher les attributs Linux. Si le a ou i est activé, vous devrez le supprimer (chattr -a -i . exam_a ) afin de supprimer le fichier ; seul root peut le faire. La racine ne peut pas contourner ces attributs pour supprimer un fichier, les attributs doivent d'abord être désactivés.

Une autre chose qui empêche la suppression d'un fichier est si le système de fichiers est monté en lecture seule, mais vous obtiendrez un message d'erreur différent dans ce cas.


Linux
  1. Comment supprimer le fichier Root Mails (Mailbox) sous Linux

  2. Impossible de supprimer le fichier, même lors de l'exécution en tant que root ?

  3. Seule la racine peut monter, pourquoi ?

  4. Comment puis-je supprimer une nouvelle ligne si c'est le dernier caractère d'un fichier ?

  5. Où se trouve le fichier d'en-tête <conio.h> sous Linux ? Pourquoi ne puis-je pas trouver <conio.h> ?

L'utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé

Comment supprimer un fichier portant ce nom sous Linux :-]???????q

Pourquoi ne puis-je pas créer de fichiers de plus de 2 Go sous Linux ?

Comment un gestionnaire de fichiers peut-il monter un lecteur sans racine ?

Je ne peux pas supprimer les fichiers 'rm:can can remove X Read-only file system'

Pourquoi ai-je pu supprimer un fichier appartenant à root dans mon répertoire personnel sans être root ?