(PHP 4, PHP 5)
chmod — Zmienia prawa dostępu do pliku
$nazwa_pliku
, int $prawa
)
Próbuje dokonać zmiany praw pliku na podane w
prawa
.
nazwa_pliku
Ścieżka do pliku.
prawa
Pamiętaj, że parametr prawa
nie jest
automatycznie zastępowany wartością oktalną (ósemkową), więc łańcuchy
(takie jak "g+w") nie będą poprawnie interpretowane. Aby, zapewnić poprawność operacji
musisz parametr prawa
poprzedzić prefixem zero (0):
<?php
chmod("/somedir/somefile", 755); // dziesiętnie; prawdopodobnie nieprawidłowo
chmod("/somedir/somefile", "u+rwx,go+rx"); // łańcuch; nieprawidłowo
chmod("/somedir/somefile", 0755); // ósemkowo; poprawna wartość dla praw
?>
Parametr prawa
zawiera trzy cyfry w systemie ósemkowym
określające prawa dostępu dla właściciela, grupy do której on należy
oraz wszystkich innych. Jedna cyfra może zostać obliczona poprzez
dodanie do siebie potrzebnych uprawnień. Cyfra 1 oznacza nadanie
praw do wykonania, cyfra 2 oznacza, że plik będzie zapisywalny, cyfra
4 oznacza, że plik będzie można odczytać. Dodając te cyfry
określamy potrzebne uprawnienia. Więcej o prawach w systemie Unix
można przeczytać w 'man 1 chmod'
i 'man 2 chmod'.
<?php
// Odczyt i zapis dla właściciela, żadnych praw dla innych
chmod("/katalog/plik", 0600);
// Odczyt i zapis dla właściciela, odczyt dla wszystkich
chmod("/katalog/plik", 0644);
// Wszystkie prawa dla właściciela, odczyt i wykonanie dla innych
chmod("/katalog/plik", 0755);
// Wszystkie prawa dla właściciela, odczyt i wykonanie dla grupy właściciela
chmod("/katalog/plik", 0750);
?>
Zwraca TRUE
w przypadku powodzenia, FALSE
w
przypadku błędu.
Informacja:
Bieżący użytkownik to użytkownik pod którym działa PHP. Prawdpodobnie nie jest to ten sam użytkownik, którego używasz normalnie przy dostępie do shell'a lub FTP. W większości systemów, prawa mogą być zmienione jedynie przez właściciela pliku.
Informacja: Ta funkcja nie będzie działać na zdalnych plikach, ponieważ przetwarzany plik musi być dostępny w systemie plików serwera.
Informacja:
Kiedy włączony jest tryb bezpieczny, PHP sprawdza czy pliki lub katalogi na których mają zostać wykonane operacje posiadają taki sam UID (właściciela) jak skrypt, który jest wykonywany. W dodatku, nie możesz ustawić SUI, SGID i bitów lepkości (sticky bits).