os.chown(), fchown() și lchown() în Python

Utilizatori și permisiuni (os) Python 3.0+ (Unix)

Schimbă proprietarul și grupul unui fișier, folosind numere (UID, GID).

Sintaxă
os.chown(cale, uid, gid)
os.fchown(fd, uid, gid)
os.lchown(cale, uid, gid)

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