все Python 3Linux · macOSosфункция
os.lchown
os — права и владелец
Как chown, но для самой символической ссылки, не следуя по ней. Доступно на Unix.
Синтаксис
os.lchown(...)
Меняет владельца самой ссылки, а не файла, на который она указывает. Это важно при восстановлении архивов и копировании деревьев: chown прошёл бы по ссылке и поменял владельца у цели, возможно, вне копируемого дерева. Тот же результат даёт os.chown(path, uid, gid, follow_symlinks=False).
Примеры
import os
open('target.txt', 'w').close() # → ? файл-цель: без него os.chown по ссылке ниже упадёт с FileNotFoundError
os.symlink('target.txt', 'link.txt') # → ? только Unix: создаём символическую ссылку для опытов
os.lchown('link.txt', os.getuid(), os.getgid()) # → ? только Unix: меняется владелец САМОЙ ссылки, файл target.txt не тронут
os.chown('link.txt', os.getuid(), os.getgid()) # → ? только Unix: в отличие от lchown идёт ПО ссылке и правит владельца target.txt
print(os.lstat('link.txt').st_uid == os.getuid()) # → ? True: lstat, как и lchown, смотрит на саму ссылку, а не на цель
os.lchown('нет-такой-ссылки', -1, -1) # → FileNotFoundError (пара -1, -1 не меняет ничего, но путь всё равно проверяется)
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности