Python Glossary Русский

all Python 3Linux · macOSosfunction

os.fchown

os — permissions and ownership

Like chown, but by an open file descriptor. Availability: Unix.

Syntax

os.fchown(...)

Like other descriptor-based functions it guards against races: ownership changes on the file that is open, even if its path has been swapped. A value of -1 leaves uid or gid unchanged. Giving the file to another owner needs root, as with chown; a file's owner can, without it, keep themselves as owner and switch to one of their own groups.

Examples

import os
f = open('demo_fchown.txt', 'w')  # → ? открываем файл и дальше работаем через его дескриптор
os.fchown(f.fileno(), os.getuid(), os.getgid())  # → ? только Unix: владелец и группа — текущий пользователь
os.fchown(f.fileno(), -1, os.getgid())  # → ? только Unix: -1 = «не менять», меняется только группа
print(os.fstat(f.fileno()).st_uid == os.getuid())  # → ? True: os.fstat читает метаданные того же дескриптора (на Unix)
os.fchown(f.fileno(), 0, 0)  # → PermissionError, если скрипт запущен не от root
f.close()  # → ? закрываем файл; после этого os.fchown по этому дескриптору даст OSError

See also

Common errors

Open in the full glossarydocs.python.orgReport an inaccuracy