GNU/Linux >> Belajar Linux >  >> Linux

cara menemukan pemilik file atau direktori dengan python

Anda ingin menggunakan 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)

Contoh penggunaan untuk mendapatkan UID pemilik:

from os import stat
stat(my_filename).st_uid

Perhatikan, bagaimanapun, bahwa stat mengembalikan nomor id pengguna (misalnya, 0 untuk root), bukan nama pengguna yang sebenarnya.


Ini adalah pertanyaan lama, tetapi bagi mereka yang mencari solusi yang lebih sederhana dengan Python 3.

Anda juga dapat menggunakan Path dari pathlib untuk mengatasi masalah ini, dengan memanggil Path owner dan group metode seperti ini:

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}")

Jadi dalam hal ini, metodenya bisa sebagai berikut:

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()}"

Saya bukan orang python, tapi saya bisa menyiapkan ini:

from os import stat
from pwd import getpwuid

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

Saya menemukan ini baru-baru ini, mencari untuk mendapatkan pengguna dan grup pemilik informasi, jadi saya pikir saya akan membagikan apa yang saya hasilkan:

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. Cara Menemukan File Terlama Di Pohon Direktori Di Linux

  2. Bagaimana Cara Menampilkan Path Lengkap File Atau Direktori Di Terminal?

  3. Temukan URL File

  1. Bagaimana saya bisa menemukan file terlama di pohon direktori

  2. Bagaimana cara membuat find mengecualikan folder yang dicarinya?

  3. Bagaimana cara memutuskan tautan semua symlink di bawah direktori?

  1. Bagaimana Menemukan Jenis File Img Dan Memasangnya?

  2. Bagaimana Cara Menemukan Pemilik Dan Grup Direktori?

  3. Bagaimana cara menemukan lokasi yang dapat dieksekusi di C?