Prawa dostępu do plików MediaWiki

Z funus.net

Zakładając, że nasz serwis oparty o oprogramowanie MediaWiki działa na sensownym serwerze WWW, a więc:

  • z sytemem uniksowym lub Linuksem,
  • do którego mamy dostęp przez SSH;
  • serwerem WWW jest Apache,
  • i używa on suExec, więc skrypty PHP wykonywane są z naszym identyfikatorem użytkownika,

można w prosty sposób ograniczyć dostęp do plików i katalogów MediaWiki korzystając z uniksowych praw odczytu/zapisu/wykonywania nadawanych właścicielowi, grupie oraz innych użytkownikom.

Przy opisanej konfiguracji wystarczy dostęp dla ogółu do:

  • plików i katalogów w podkatalogu skins;
  • wszystkich plików i katalogów w podkatalogu images[1].

Żeby ustawić takie minimalne uprawnienia należy przejść do katalogu, w którym zainstalowane jest MediaWiki, a następnie:

  • rekursywnie odebrać wszelkie uprawnienia grupie i innym użytkownikom:
chmod -R go-rwx .
  • pozwolić na dostęp do głównego katalogu wiki, by serwer WWW mógł odczytać stamtąd niezbędne pliki; przy tym nie jest potrzebne prawo odczytu, czyli listowania zawartości katalogów (r), wystarczy prawo do wejścia do katalogu (x):
chmod o+x .
  • to samo zrobić dla podkatalogów skins i images, oraz wszystkich katalogów podrzędnych:
find skins images -type d -exec chmod o+x {} \;
  • należy dodać prawo odczytu plików w wyżej wymienionych katalogach, ale z pominięciem skryptów PHP:
find skins images -type f \! -name "*.php" -exec chmod o+r {} \;
  • można jeszcze rekursywnie zablokować dostęp do zawartości podkatalogu images/deleted; jak nazwa wskazuje, są tam przechowywane pliki usunięte przez administratora, do których zwykli użytkownicy nie powinni mieć dostępu; administratorzy nadal będą mogli te pliki obejrzeć, bo dostęp do nich jest realizowany przez skrypt PHP a nie bezpośrednio; a więc:
find images/deleted -exec chmod o-rwx {} \;

Może też być konieczne udostępnienie do odczytu plików .htaccess:

find . -name .htaccess -exec chmod o+r {} \;

Po wykonaniu tych czynności możemy być niemal pewni, że nikt nam nie będzie gmerał w nieodpowiednich miejscach.

przypisy
  1. W niektórych instalacjach zamiast images może być katalog upload.