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