Skocz do zawartości
lucassek

zabezpieczanie shell

Polecane posty

Witam,

 

Dopiero uczę się linuxa i mam do was pytanie. chcialbym ograniczyc userom, zeby nie mogli grzebac po katalogach serwera, zeby nie mogli wyjsc poza swoj katalog. Moglby ktos mi napisac, jak mam to zrobic?? Bede bardzo wdzieczny.

 

 

Z gory dziekuje za szybka odpowiedz,

 

Pozdrawiam,

luca$

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

musisz nadać odpowiednie prawa (chmod) aby użytkownik nie miał dostęp do katalogów, również możesz wydzielić środowisko za pomocą chroota ;- ))

Jak to zrobić google.pl->howto chroot

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No np. ustawić aby tylko właściciel miał prawo odczytu plików, ew. dodatkowo zmienić właściciela chownem na root.

 

Więcej o chmodach znajdziesz w google ;]

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość papaj

Sluchaj, radze ci zainteresowac sie terminologa i wiedziec o co w ogole chodzi, zeby zablokowac uzytkownikowi calkowite wyjscie z jego katalogu /home/user, poczytaj o chroot. Tego nie robi sie jedna komenda.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Gdybyś chciał chmodem to byś musiał zmienić uprawnienia wszystkich katalogów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak by nie kombinować, nie można zezwolić użytkownikowi na odczyt/zapis jedynie w jego katalogu domowym i jednocześnie dać mu możliwość normalnej pracy. Chyba, że w jego katalogu domowym znajdzie się cały system operacyjny...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

literówka : open_basedir

 

Ograniczenie dla plików polegające na tym, że mogą one być otwierane przez PHP wyłącznie w określonem drzewie katalogów. Działanie tej dyrektywy NIE zależy od tego czy tryb bezpieczny jest włączony czy wyłączony.

 

Gdy skrypt próbuje otworzyć plik za pomocą np. fopen() lub gzopen(), sprawdzana jest lokalizacja tego pliku. Jeśli plik znajduje się poza określonym drzewem katalogów, wtedy PHP odmówi dostępu do otwarcia go. Wszystkie dowiązania symboliczne są sprawdzane, tak więc nie jest możliwe obejście tej restrykcji za pomocą dowiązań symbolicznych. Jeśli plik nie istnieje wówczas dowiązanie symboliczne nie może być sprawdzone, a pełna ścieżka nazwy pliku jest porównywana z open_basedir .

 

Specjalna wartość . wskazuje, że roboczy katalog skryptu ma być traktowany jako katalog podstawowy. To jest jednakże nieco niebezpieczne, jako że katalog roboczy skryptu można łatwo zmienić za pomocą chdir().

 

W httpd.conf, open_basedir może być wyłączony (np. dla niektórych hostów wirtualnych) ten sam efekt uzyskamy za pomocą innej dyrektywy konfiguracyjnej: "php_admin_value open_basedir none".

 

W Windows oddzielamy katalogi za pomocą średnika, natomiast we wszystkich innych systemach operacyjnych za pomocą dwukropka. Gdy PHP działa jako moduł serwera Apache, ścieżki open_basedir z katalogów nadrzędnych są automatycznie dziedziczone.

 

Restrykcja określona za pomocą open_basedir jest obecnie przedrostkiem a nie nazwą katalogu. To oznacza, że "open_basedir = /dir/incl" pozwala uzyskać dostęp do "/dir/include" i "/dir/incls" (jeżeli istnieją). Gdy chcemy ograniczyć dostęp tylko do określonego katalogu, dodajemy na końcu ukośnik. Na przykład: "open_basedir = /dir/incl/"

 

Informacja: Obsługa wielu katalogów została dodana w PHP 3.0.7.

 

Domyślnie PHP ma dostęp do plików we wszystkich lokalizacjach.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrick

@WSHE-Bydgoszcz: A ktoś wspomniał, że zainstalowany jest tam w ogóle serwer www ?

Czytamy z zrozumieniem, to nie boli ;) (chyba).

 

@lucassek przeszukaj google za chrootem. Jest to najlepsze rozwiązanie by odseparować konta użytkowników. W google jest mase na ten temat pewnie, więc masz trochę czytania.

Możesz też zainteresować się virtualizacja środowisk, wtedy też oddzielisz zasoby ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Najlepiej jest zastosować chroot'a niż chmody, przyda się również przekompilować kernel aby dostęp do procesów był tylko do danego użytkownika, z tego co mi się wydaje można też zastosować patch na powłokę.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
przeczytaj patrick pierwszy post, będziesz wiedział

 

czy wg Ciebie zablokowanie dostępu do plików z poziomu PHP nie ma znaczenia?

 

W przypadku zastosowania innych zabezpieczen, na nizszym poziomie, jest zwyczajnie zbedne.

Ponadto osobiscie bardziej ufam funkcjom systemowym niz funkcjom PHP.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×