Zmiana uprawnień pojedynczego pliku jest prosta za pomocą chmod. Robienie tego dla całego drzewa katalogów — setek plików i folderów — to miejsce, w którym ludzie najczęściej się mylą. Polecenie chmod -R 755 działa, ale czyni wykonywalnymi wszystkie pliki, co jest nieprawidłowe dla zwykłych plików internetowych. Ten przewodnik obejmuje polecenia rekurencyjne i, co ważniejsze, prawidłowy sposób ustawiania różnych uprawnień dla plików i katalogów.
Podstawy: chmod -R
Flaga -R (rekurencyjnie) stosuje chmod do katalogu i wszystkiego, co się w nim znajduje:
chmod -R 755 /path/directory
Ustawia to 755 dla wszystkich plików i folderów. Dla katalogów jest to w porządku, ale pliki zwykle nie powinny być wykonywalne — więc stosowanie 755 do wszystkiego nie jest tym, czego chcesz dla strony internetowej.
Prawidłowy sposób: pliki 644, katalogi 755
Standardowe, bezpieczne uprawnienia to 644 dla plików (odczyt/zapis dla właściciela, odczyt dla innych) i 755 dla katalogów (które potrzebują bitu execute, aby można było do nich wejść). Użyj find, aby zastosować każde prawidłowo:
# ustaw wszystkie katalogi na 755: find /path/directory -type d -exec chmod 755 {} \; # ustaw wszystkie pliki na 644: find /path/directory -type f -exec chmod 644 {} \;
To polecenie używane przez doświadczonych administratorów. -type d dopasowuje katalogi, -type f dopasowuje pliki, więc każde otrzymuje odpowiednie uprawnienia w jednym przebiegu.
Rekurencyjna zmiana właściciela (chown)
Uprawnienia i właściciel to osobne rzeczy. Aby rekurencyjnie zmienić właściciela i grupę — na przykład na użytkownika serwera WWW:
sudo chown -R www-data:www-data /path/directory
Zastąp www-data odpowiednim użytkownikiem dla Twojej konfiguracji (np. nginx, apache lub Twoją nazwą użytkownika).
⚠
Nigdy nie używaj chmod -R 777. Daje to każdemu użytkownikowi pełny dostęp do odczytu, zapisu i wykonywania, co jest poważnym zagrożeniem bezpieczeństwa i częstą przyczyną zhakowanych stron. Jeśli coś działa tylko z 777, prawdziwy problem leży we własności, a nie w uprawnieniach — napraw to za pomocą chown.