fileowner în PHP

Returnează ID-ul numeric al utilizatorului care deține un fișier.

Sintaxă
fileowner(string $filename): int|false

Ce face fileowner

fileowner returnează numărul utilizatorului (UID) proprietar al fișierului. Pentru numele utilizatorului ai nevoie de extensia POSIX: posix_getpwuid(fileowner($f))["name"].

Este util când verifici de ce PHP nu poate modifica un fișier: compari proprietarul cu utilizatorul cu care rulează scriptul.

Parametri

Parametru Descriere
$filename Calea fișierului.

Ce returnează

UID-ul proprietarului sau false la eroare.

Exemple

Exemplul 1: Fișier creat de script

Un fișier creat de PHP aparține utilizatorului cu care rulează PHP. Aici, același utilizator deține și scriptul, deci UID-urile sunt egale.

<?php
touch("nou.txt");

var_dump(fileowner("nou.txt") === getmyuid());

Rezultat

bool(true)

Exemplul 2: Numele proprietarului

<?php
$uid = fileowner("/var/www/magazin/config.php");
echo $uid . " = " . posix_getpwuid($uid)["name"];

Rezultat posibil (depinde de server)

33 = www-data

Greșeli frecvente

  • Te aștepți la un nume de utilizator. Funcția returnează un număr. Pentru nume folosește posix_getpwuid.

Comenzi înrudite

  • filegroup: Returnează ID-ul numeric al grupului care deține un fișier.
  • chown: Schimbă utilizatorul care deține un fișier.
  • getmyuid: Returnează ID-ul utilizatorului care deține fișierul scriptului PHP curent.