os.access ( )
DESCRIPTION.
Retourne si l'utilisateur à certains droits sur un fichier ou un répertoire.
SYNTAXE.
Variable = os.access ( chemin , droits , * , descripteur , referent , symbolique )
Variable = ⇨ variable qui recevra la valeur [ optionnel ]
os.access ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
chemin ⇨ emplacement à tester [ OBLIGATOIRE ]
droits ⇨ droits à tester [ OBLIGATOIRE ]
* ⇨ autres options [ optionnel ]
descripteur ⇨ descripteur de fichier [ optionnel ]
referent ⇨ type d'utilisateur [ optionnel ]
symbolique ⇨ liens symboliques [ optionnel ]
REMARQUES.
chemin doit être un str ( ) identifiant de façon absolue ou relative un chemin d'un répertoire ou d'un fichier.
droits doit être l'une des valeurs suivantes, ou une combinaison d'eux séparés par l'opérateur or, ou le symbole | :
- os.F_OK, teste si chemin existe ;
- os.R_OK, teste si le référent a le droit de lire les données sur les fichiers dans chemin ;
- os.W_OK, teste si le référent a le droit d'écrire des données sur les fichiers dans chemin ;
- os.X_OK, teste si le référent a le droit d'exécuter les fichiers dans chemin.
descripteur est un attribut nommé par dir_fd = valeur, où valeur doit être un int ( ) identifiant un descripteur de fichier valide, ou None, valeur par défaut. descripteur n'est disponible que pour UNIX et la plupart des Linux. Son utilisation sous d'autres OS, tel que Windows de Microsoft, lèvera une exception.
referent est un attribut nommé par effective_ids = valeur, où valeur doit être un bool ( ). referent n'est disponible que pour UNIX et la plupart des Linux. Son utilisation sous d'autres OS, tel que Windows de Microsoft, lèvera une exception. Si valeur vaut :
- True, cela désigne l'utilisateur, ou le groupe, effectif comme référent pour la recherche de droits ;
- False, valeur par défaut, cela désigne l'utilisateur, ou le groupe, réel comme référent pour la recherche de droits.
symbolique est un attribut nommé par follow_symlinks = valeur, où valeur doit être un bool ( ) symbolique n'est disponible que pour UNIX et la plupart des Linux. Son utilisation sous d'autres OS, tel que Windows de Microsoft, lèvera une exception. Si valeur vaut :
- True, valeur par défaut, os.access ( ) opère sur le fichier pointé par chemin ;
- False, et que le dernier élément du chemin est un lien symbolique, os.access ( ) teste le lien symbolique et non le fichier.
L'appel de la méthode os.access ( ) teste si le référent, l'utilisateur réel ou groupe réel d'utilisateurs, dispose du ou des privilèges précisés dans droits sur le fichier ou le répertoire indiqué par chemin.
L'utilisation de cette méthode est particulièrement recommandé pour sécuriser les opération sur des fichiers, ou groupes fichiers, sensibles. En effet, des fichiers volumineux pourrait être manipulés entre l'appel de la méthode open ( ) et la vérification des privilèges conférés au référent : utilisateur ou groupe d'utilisateurs.
Note : La méthode os.access ( ) peut retournée que les opérations d'entrées / sorties sont autorisées, mais ces opérations peuvent échouer, en particulier sur des opérations concernant les systèmes de fichiers réseaux qui peuvent avoir une sémantique de permissions au-delà du modèle de bits de permission usuel POSIX.
EXEMPLE.
import os
LST_Donnees = [ ]
kfichier = "/home/login/Documents/votre fichier.txt" # indiquez un fichier valide pour votre machine
print ( "Fichier créé :" , os.access ( kfichier , os.F_OK ) )
print ( "Autorisation de consulter :" , os.access ( kfichier , os.R_OK ) )
print ( "Autorisation de modifier :" , os.access ( kfichier , os.W_OK ) )
print ( "Fichier exécutable :" , os.access ( kfichier , os.X_OK ) )
print ( "Autorisation de consulter ou de modifier :" , os.access ( kfichier , os.R_OK or os.W_OK ) )
print ( "Autoriser l’exécution d'un fichier créé :" , os.access ( kfichier , os.X_OK or os.F_OK ) )
print ( )
if os.access ( kfichier , os.R_OK ) and os.access ( kfichier , os.W_OK ) :
with open ( kfichier ) as FIC_Fichier : LST_Donnees = FIC_Fichier.readlines ( )
for keng in LST_Donnees : print ( keng )
else :
print ( "Accès refusé. Niveau accréditation insuffisant." )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.