Ce face os.chown(), fchown() și lchown()
chown() primește identificatorii numerici ai utilizatorului și grupului; -1 lasă valoarea neschimbată. fchown() lucrează pe un fișier deschis, iar lchown() pe legătura simbolică însăși. Schimbarea proprietarului cere drepturi de administrator. Pentru nume în loc de numere, folosește shutil.chown() sau modulele pwd și grp.
Parametri
| Parametru | Descriere |
|---|---|
cale / fd |
Fișierul. |
uid, gid |
Noul proprietar și grup (-1 = neschimbat). |
Ce returnează
None.
Exemple
Exemplul 1: Fișier predat utilizatorului serverului web
import os, pwd
www = pwd.getpwnam("www-data")
os.chown("/var/www/site/upload.jpg", www.pw_uid, www.pw_gid)
os.chown("/var/www/site/index.html", -1, www.pw_gid)
print(os.stat("/var/www/site/upload.jpg").st_uid == www.pw_uid)
Rezultat (rulat ca root pe Linux)
True
Greșeli frecvente
- Rulezi ca utilizator obișnuit și primești
PermissionError: [Errno 1] Operation not permitted.
Comenzi înrudite
shutil.chown(): Schimbă proprietarul și/sau grupul unui fișier, folosind nume în loc de numere.os.getuid(), geteuid(), getgid(), getegid() și getlogin(): Identitatea utilizatorului și a grupului sub care rulează procesul.os.chmod(), fchmod(), lchmod(), chflags(), lchflags(): Schimbă permisiunile unui fișier și, pe BSD/macOS, flag-urile speciale.