все Python 3Linux · macOSosфункция
os.seteuid
os — идентификаторы пользователя/группы
Устанавливает эффективный UID процесса. Доступно на Unix.
Синтаксис
os.seteuid(...)
Меняет только эффективный UID, а сохранённый остаётся прежним, — поэтому привилегии можно временно сбросить и затем вернуть. Это удобно для коротких операций от имени пользователя, но не защищает от уязвимостей: взломанный код тоже может вернуть права. Для окончательного сброса нужна setuid.
Примеры
import os
saved_uid = os.geteuid() # → ? только Unix: текущий эффективный UID, например 1000 (у root — 0)
os.seteuid(os.getuid()) # → ? только Unix: сбрасывает эффективный UID до реального
print(os.geteuid() == os.getuid()) # → ? True: процесс работает с правами реального пользователя
os.seteuid(saved_uid) # → ? только Unix: возврат прежнего эффективного UID (не-root может вернуться лишь к реальному или сохранённому)
os.seteuid(0) # → ? только Unix: PermissionError без прав root; в отличие от os.setuid() меняется только эффективный UID
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности