WikiPrint - from Polar Technologies

Uprawnienia do plików systemu eDokumenty

Pliki systemu eDokumenty ze względu na prawa dostępu można podzielić na 3 grupy.

  1. Pliki źródłowe aplikacji do których nie chcemy żeby użytkownik serwera (www-data) mógł modyfikować. (czyli katalog public_html)
  1. Pliki źródłowe aplikacji które powinny być możliwe do modyfikacji przez aplikację, (katalog var)
  1. Pliki utworzone przez instalator lub aplikację w trakcie użytkowania - ich właścicielem jest www-data. Ale chcemy żeby również user edokumenty miał do nich dostęp. (Są to katalogi z plikami: files, repos, repository)

Do prawidłowego działania wymagane jest aby użytkownik serwera (np. www-data) posiadał prawo do zapisu do niektórych zasobów. Przyjęliśmy zasadę że prawo do zapisu przyznane zostanie poprzez specjalną grupę edokumenty do której dopisywany jest użytkownik serwera. Poniższa lista prezentuje wszystkie z nich, które tego wymagają.

/home/edokumenty/files
/home/edokumenty/repos 
/home/edokumenty/repository
/home/edokumenty/public_html/apps/edokumenty/var
/home/edokumenty/public_html/apps/edokumenty/cache
/home/edokumenty/public_html/apps/edokumenty/config.inc

W przypadku katalogów w których serwer może tworzyć kolejne katalogi, wymagane jest ustawienie sgida dla grupy, dzięki czemu kolejne katalogi tworzone w nich otrzymają grupę z katalogu powyżej - czyli w praktyce nadana im zostanie grupa edokumenty

[root@edokumenty files]# ls -l
ls -l 
drwxrwsr-x  3 edokumenty edokumenty 4096 2009-09-24 15:57 files_1

Naprawa błędnie ustawionych praw

Aby ustawić wcześniej nieprawidłowo ustawione uprawnienia W katalogu /home/edokumenty wykonać komendę:

# 1. dla wszystkich plików (cały kod źródłowy)
chown -R edokumenty:users public_html

# 2. dla plików obecnych w paczce 
chgrp -R edokumenty public_html/apps/edokumenty/var public_html/apps/edokumenty/cache
chmod -R g+rwsX public_html/apps/edokumenty/var public_html/apps/edokumenty/cache

# 3. dla plików utworzonych po instalacji przez program
chown -R www-data:edokumenty files repository repos
chmod -R u+rwX,g+rwX,o-rwx files repository repos
find files repos repository -type d | xargs chmod g+s 
chown www-data:edokumenty public_html/apps/edokumenty/config.inc 
chmod g+w public_html/apps/edokumenty/config.inc