Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: Sposób na pliki zapisane przez usera nobody

Czy wy sami, lub uzytkownicy administrowanych przez Was serwerow, mieliscie kiedys problem z plikami zapisanymi na serwerze przez
skrypty WWW (np. uploadowanymi przez CMS-y)? Problem polega na tym, ze wlascicielem tych plikow jest nobody (lub inny uzytkownik pod ktorym dziala serwer WWW) i potem uzytkownik - wlasciciel strony ze swojego konta (spod shella albo FTP) nie moze dobrac sie do tych plikow...

U mnie na serwerze problem ten stal sie na tyle dokuczliwy, ze trzeba
bylo zrobic specjalne narzedzie do "poprawiania" takich sytuacji. Moze komus sie przyda - program wraz ze szczegolowym opisem tu:
http://www.ap.krakow.pl/~raj/fixowner/

konto usunięte

Temat: Sposób na pliki zapisane przez usera nobody

Problemu jako takiego nie miałem.
1. Każdy zapisywany plik zmieniane miał prawa dostępu (przez ten sam skrypt, który go zapisywał).
2. Czasem zdarzało mi się pracować na koncie, które znajdowało się w tej same grupie co www.
Przemek Szalko

Przemek Szalko iOS Developer + Full
Stack Developer

Temat: Sposób na pliki zapisane przez usera nobody

Można użyć też PHP jako FastCGI z suexec
albo MPM-peruser.

W virtualhostach ustawiamy użytkownika-właściciela skryptów.

Ale to tylko teoria jak dla mnie, jeszcze się tym nie bawiłem :-)

konto usunięte

Temat: Sposób na pliki zapisane przez usera nobody

Żeby to raz ;-) Ale sądząc po czasie reakcji admina ( do 5 min ) to chyba tego ręcznie nie poprawia..
Rafał Korszuń

Rafał Korszuń co-owner @ Kleder

Temat: Sposób na pliki zapisane przez usera nobody

no cóż wklepanie chown -R uzytkownik:grupa /sciezka

więc można powiedzieć, że admin robi to ręcznie ale za to jest to banalnie proste
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: Sposób na pliki zapisane przez usera nobody

Maciej W.:
Problemu jako takiego nie miałem.
1. Każdy zapisywany plik zmieniane miał prawa dostępu (przez ten sam skrypt, który go zapisywał).

Mozesz to rozwinac? Co daje zmiana praw dostepu do pliku, ktorego wlascicielem jest nobody i grupa tez nobody? Oczywiscie o ile nie zmienia sie praw na 666 - to chyba oczywiste, ze ze wzgledow bezpieczenstwa tego sie absolutnie nie powinno robic... Tu trzeba zmienic wlasnie wlasciciela, a nie prawa, i do tego jest ten program. W opisie dokladnie to napisalem.
2. Czasem zdarzało mi się pracować na koncie, które znajdowało się w tej same grupie co www.

OK pod warunkiem ze takie konto bylo jedno lub kilka. Ogolnie rzecz biorac wsadzanie kont uzytkownikow do grupy WWW jest tez wybitnie niewskazane ze wzgledow bezpieczenstwa.

konto usunięte

Temat: Sposób na pliki zapisane przez usera nobody

Jarosław Rafa:

Mozesz to rozwinac? (...)

Jeśli pliki, które tworzone są przez skrypt nie są dostępne z poziomu www, to nie widzę przeszkód, by nadawać im 777. Ani ja, ani różni administratorzy nie mają żadnych przeciwwskazań. A względy bezpieczeństwa to jedna z większych bajek. Jeśli nikt inny poza grupą deweloperów nie ma dostępu serwera, to nic się nie może stać. Poza tym nie każdy plik jest zapisywany z uprawnieniami 777. Zapisywane są tylko te, co do których nie ma najmniejszych wątpliwości (czyli nic, co wrzuca użytkownik).
OK pod warunkiem ze takie konto bylo jedno lub kilka. Ogolnie rzecz biorac wsadzanie kont uzytkownikow do grupy WWW jest tez wybitnie niewskazane ze wzgledow bezpieczenstwa.

Względy bezpieczeństwa są nieco zbyt przeceniane. Takie jest moje zdanie.

Przypomniałem sobie jeszcze jedną sztuczkę. Administratorzy napisali skrypt uruchamiany na serwerze, który automatycznie zmieniał właściciela (jak napisałeś o właścicielu to mi się przypomniało ;) ), by można było bez problemu pracować na takich plikach.Maciej W. edytował(a) ten post dnia 15.05.08 o godzinie 20:59
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: Sposób na pliki zapisane przez usera nobody

Maciej W.:

Jeśli pliki, które tworzone są przez skrypt nie są dostępne z poziomu www, to nie widzę przeszkód, by nadawać im 777.

Nie widze zwiazku miedzy dostepnoscia lub nie z poziomu WWW a 777. Dla dostepnosci przez WWW 777 a 755 czy 644 nie robi zadnej roznicy. Za to dla mozliwosci zapisu przez niewlasciwego usera - zasadnicza.
Wrzucony plik generalnie komus jest do czegos potrzebny, nawet jezeli nie jest dostepny z poziomu WWW. Jezeli ktos inny zlosliwie nadpisze go jakimis bzdurami, to ten ktos, kto potrzebuje tego pliku, bedzie mial problem.
Poza tym pliki uploadowane przez CMS-y generalnie sa - bezposrednio czy posrednio (np. jako szablon strony) - dostepne z poziomu WWW.
względy bezpieczeństwa to jedna z większych bajek. Jeśli nikt inny poza grupą deweloperów nie ma dostępu serwera, to nic się nie może stać.

A skąd takie założenie - że nikt inny nie ma dostepu do serwera?
Właśnie to załozenie jest w danym konkretnym przypadku, dla którego był napisany ten program, zasadniczo fałszywe.
Do serwera ma dostep około 2 tys. użytkowników, którzy mają na nim konta pocztowe/shellowe/WWW/jakiekolwiek. Z tego kilkanascie osob zajmuje sie aktualizacja "waznych" stron i nikt poza nimi nie powinien miec dostepu do plikow znajdujacych sie na tych stronach. Sprobuj teraz dac tam prawa 777. A na prywatnej stronie usera tez jest to malo przyjemne - ja bym tam nie chcial, zeby kazdy z uzytkownikow serwera mogl sobie dowolnie modyfikowac zawartosc mojej strony...
Poza tym nie każdy plik jest zapisywany z uprawnieniami 777. Zapisywane są tylko te, co do których nie ma najmniejszych wątpliwości (czyli nic, co wrzuca użytkownik).

Tego zdania to już zupełnie nie rozumiem.
Przypomniałem sobie jeszcze jedną sztuczkę. Administratorzy napisali skrypt uruchamiany na serwerze, który automatycznie zmieniał właściciela (jak napisałeś o właścicielu to mi się przypomniało ;) ), by można było bez problemu pracować na takich plikach.

No toż właśnie coś takiego ja tutaj wrzuciłem... Tylko moje ma tę zaletę, że jak administrator to raz zainstaluje, to potem user może sobie uruchamiac sam, kiedy i jak mu potrzeba...Jarosław Rafa edytował(a) ten post dnia 21.05.08 o godzinie 02:37

konto usunięte

Temat: Sposób na pliki zapisane przez usera nobody

A skąd takie założenie - że nikt inny nie ma dostępu do serwera?

Każdy użytkownik należy do jakiejś grupy. Wiadomo, że użytkownik, który ma konto pocztowe lub FTP będzie należał do innej grupy niż developerzy i miał dostęp do zupełnie innych obszarów serwera. To już wystarczające zabezpieczenie.
Tego zdania to już zupełnie nie rozumiem.

Chodzi mi o pliki tworzone przez "system", czyli cache, pliki tymczasowe, pliki blokujące, itp.

Należy pamiętać również o tym, by serwer był odpowiednio skonfigurowany i idiotoodporny. Nawet najlepsze mechanizmy zabezpieczające są niczym w zderzeniu z niekompetentnymi adminami.
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: Sposób na pliki zapisane przez usera nobody

Maciej W.:
A skąd takie założenie - że nikt inny nie ma dostępu do serwera?

Każdy użytkownik należy do jakiejś grupy. Wiadomo, że użytkownik, który ma konto pocztowe lub FTP będzie należał do innej grupy niż developerzy i miał dostęp do zupełnie innych obszarów serwera. To już wystarczające zabezpieczenie.

Owszem, ale jak zrobisz na czyms prawa 777, to każdy uzytkownik, niezaleznie od tego do jakiej grupy należy, będzie mógł to zmodyfikować... Chyba że dla kazdej grupy chcesz robić chrootowane środowiska, ale to troche karkolomne... powielać /bin, /lib, /etc itd... dla każdego chroota...

Następna dyskusja:

JAk skopiowac PLIKI z jedne...




Wyślij zaproszenie do