GNU/Linux >> Tutoriels Linux >  >> Linux

comment trouver le propriétaire d'un fichier ou d'un répertoire en python

Vous souhaitez utiliser os.stat() :

os.stat(path)
 Perform the equivalent of a stat() system call on the given path. 
 (This function follows symlinks; to stat a symlink use lstat().)

The return value is an object whose attributes correspond to the 
members of the stat structure, namely:

- st_mode - protection bits,
- st_ino - inode number,
- st_dev - device,
- st_nlink - number of hard links,
- st_uid - user id of owner,
- st_gid - group id of owner,
- st_size - size of file, in bytes,
- st_atime - time of most recent access,
- st_mtime - time of most recent content modification,
- st_ctime - platform dependent; time of most recent metadata 
             change on Unix, or the time of creation on Windows)

Exemple d'utilisation pour obtenir l'UID du propriétaire :

from os import stat
stat(my_filename).st_uid

Notez cependant que stat renvoie le numéro d'identification de l'utilisateur (par exemple, 0 pour root), et non le nom d'utilisateur réel.


C'est une vieille question, mais pour ceux qui recherchent une solution plus simple avec Python 3.

Vous pouvez également utiliser Path à partir de pathlib pour résoudre ce problème, en appelant le Path est owner et group méthode comme celle-ci :

from pathlib import Path

path = Path("/path/to/your/file")
owner = path.owner()
group = path.group()
print(f"{path.name} is owned by {owner}:{group}")

Donc dans ce cas, la méthode pourrait être la suivante :

from typing import Union
from pathlib import Path

def find_owner(path: Union[str, Path]) -> str:
    path = Path(path)
    return f"{path.owner()}:{path.group()}"

Je ne suis pas vraiment un gars en python, mais j'ai réussi à concocter ceci :

from os import stat
from pwd import getpwuid

def find_owner(filename):
    return getpwuid(stat(filename).st_uid).pw_name

Je suis tombé dessus récemment, cherchant à obtenir l'utilisateur propriétaire et le groupe informations, alors j'ai pensé partager ce que j'ai trouvé :

import os
from pwd import getpwuid
from grp import getgrgid

def get_file_ownership(filename):
    return (
        getpwuid(os.stat(filename).st_uid).pw_name,
        getgrgid(os.stat(filename).st_gid).gr_name
    )

Linux
  1. Comment trouver le type d'un fichier Img et le monter ?

  2. Comment trouver le propriétaire et le groupe d'un répertoire ?

  3. Trouver l'URL d'un fichier

  4. Comment ajouter un fichier .so au java.library.path sous Linux

  5. Comment obtenir le répertoire absolu d'un fichier dans bash ?

Comment trouver la taille totale d'un répertoire sous Linux

Comment puis-je trouver l'emplacement MySQL my.cnf

Comment puis-je trouver le fichier le plus ancien dans une arborescence de répertoires

Comment puis-je faire en sorte que find exclut le dossier dans lequel il recherche?

Comment dissocier tous les liens symboliques sous le répertoire ?

Comment trouver le fichier .pid pour un processus donné