2012-09-07 5 views
1

J'ai un fichier appelé test sans autorisations rwx (je l'ai retiré toutes les autorisations en utilisant chmod)appel open() avec succès, même sans autorisations

[root @ dev] # ls -l essai --- -------. 1 root root 21 sept 7 22:22 test

Q1) J'essaie d'exécuter le code ci-dessous pour vérifier si le fichier peut être ouvert ou non. La valeur renvoyée à fd est positive. Ne devrait pas être -1. ?

fd = open(fname, O_RDONLY); 
    if (fd == -1) { 
     /* Print error message */ 
     return (-1); 
    } 
    close(fd); 

Q2) Je suis même capable de lire le fichier. Ne devrait pas y avoir une erreur quand je chat le fichier. [root @ dev] # cat test Ceci est un fichier de test. [racine @ dev] #

REMARQUE: J'utilise le compte root.

+0

Maintenant, vous savez pourquoi il est important de ne pas utiliser les privilèges 'root' plus que nécessaire; le système n'arrête pas 'root' de faire des choses. –

Répondre

4

Réponse courte: root peut tout faire.

Deuxième réponse: En général, d'ouvrir un fichier dans un mode donné, POSIX exige que les autorisations en fonction de votre uid et gid vous permettent correspondant au type d'accès, ou que vous avez des « privilèges appropriés », une phrase qui est définie par l'implémentation. Dans la plupart des implémentations du monde réel, une telle condition qui satisfait les «privilèges appropriés» est l'utilisateur root (uid 0).

Questions connexes