Как получить владельца и группу папки с Python на машине Linux?

Как я могу получить идентификатор владельца и группы в каталоге с помощью Python под Linux?

Ответ 1

Используйте os.stat(), чтобы получить uid и gid файла. Затем используйте pwd.getpwuid() и grp.getgrgid(), чтобы получить имена пользователей и групп соответственно.

import grp
import pwd
import os

stat_info = os.stat('/path')
uid = stat_info.st_uid
gid = stat_info.st_gid
print uid, gid

user = pwd.getpwuid(uid)[0]
group = grp.getgrgid(gid)[0]
print user, group

Ответ 2

Так как Python 3.4.4, класс Path модуля pathlib обеспечивает хороший синтаксис для этого:

from pathlib import Path
whatever = Path("relative/or/absolute/path/to_whatever")
if whatever.exists():
    print("Owner: %s" % whatever.owner())
    print("Group: %s" % whatever.group())

Ответ 3

Я предпочитаю использовать os.stat:

Выполните системный вызов stat по данному пути. Возвращаемое значение - это объект, атрибуты которого соответствуют членам структуры stat, а именно: st_mode (бит защиты), st_ino (номер inode), st_dev (устройство), st_nlink (количество жестких ссылок), st_uid (идентификатор пользователя владельца), st_gid (идентификатор группы владельца), st_size (размер файла, в байтах), st_atime (время последнего доступа) st_mtime (время последней модификации содержимого), st_ctime (зависит от платформы, время последнего изменения метаданных в Unix или время создания в Windows)

Вот пример ссылки на os.stat выше.

Ответ 4

Используйте функцию os.stat.

Ответ 5

Используйте os.stat:

>>> s = os.stat('.')
>>> s.st_uid
1000
>>> s.st_gid
1000

st_uid является идентификатором пользователя владельца, st_gid является идентификатором группы. См. Связанную документацию для получения другой информации, которая может быть обработана с помощью stat.