CentOS 6 - Blokada dostępu do katalogów poza /home/user/


(Dmcmmm) #1

Jak ustawić uprawnienia "zwykłym użytkownikom", tak aby mieli oni dostęp wyłącznie do swojego katalogu domowego. Poza swoim katalogiem domowym nie powinni nic widzieć. Próbowałem na żywca chmoda, ale nieciekawie się to skończyło. System: CentOS 6.

Macie jakieś sugestie? :slight_smile:


(FadeMind) #2

Literatura:

Link 1

Link 2

Link 3

Zapraszam do lektury :slight_smile:


(Dmcmmm) #3

Świetna lektura, ale co ona mi dała? Nie znalazłem tam nic, żadnej odpowiedzi na moje pytanie lub jeszcze się nie obudziłem i coś przegapiłem.

Próbowałem chmod 751 na katalogi, ale zapewne domyślasz się jakie skutki to przyniosło.


(Unixuser) #4

Chyba najszybszym rozwiązaniem będzie utworzenie drugiego konta użytkownika.

np:

useradd -m -G users,audio,lp,optical,storage,video,wheel,power -s /bin/bash nazwa_użytkownika

Potem to stare konto użytkownika z namieszanymi prawami do katalogów można usunąć.

userdel -r nazwa_użytkownika

(Dmcmmm) #5

Utworzyłem nowe konto użytkownika z twoimi parametrami aczkolwiek nie przyniosło to żadnego efektu.


(ra-v) #6

To jest prawie niewykonalne (choć nie twierdzę że nie jest) - przecież jak dany użytkownik odpalać różne programy, mieć dostęp do dysku nie mając do ww. dostępu? (hehe własnie fajnie zostało to napisane)


(Dmcmmm) #7

Sam nad tym rozmyślałem ra-v. Mimo wszystko jest to wykonywalne, spotkałem się z tym nieraz (głównie na freebsd). Poruszać się między katalogami mogłem, ale po użyciu komendy " ls -l" pokazywało Permission Denied. Przy próbie użycia mc (Midnight Commander) również blokowało dostęp. Co do programów - mogłem uruchamiać je bez problemu.


(ra-v) #8

Czyli dostęp do katalogów z programem np. w /usr/bin musiał być,. chyba że wszystkie elementy były instalowane w katalogu użytkownika (binaria, biblioteki i inne pliki wspóldzielone), ale instalcja w taki sposób to raczej dodatkowa robota i kto wie czy jedyny sposób na taką instalację to kompilacja źródeł.

Wg mnie taki dostęp do SHH na zasadzie jakby prawie go nie było zwykle nie ma sensu chyba że to jakiś b.specyficzny przypadek.


(roobal) #9

Skoro w Windowsie (w edycjach professional) da się ukrywać przed użytkownikiem partycje, to dziwne, żeby w Linuksie nie można było zabronić dostępu do katalogów. Jako root.

chmod 711 /

I przy poleceniu ls powinieneś mieć takie coś

roobal@roobal-Extensa-5200:/$ pwd

/

roobal@roobal-Extensa-5200:/$ ls

ls: cannot open directory .: Permission denied

roobal@roobal-Extensa-5200:/$

natomiast jeśli używasz jakiegoś środowiska graficznego, to powineneś mieć takie coś.

image_id: 4299

Programy są uruchamiane normalnie, bo użytkownik ma na to pozwolenie, użytkownicy nie mogą czytać jedynie zawartości katalogu głównego. Jeśli chcesz blokować dostęp do katalogów użytkowników, daj im chmod 700. Jeśli jest to jakiś serwer FTP, ustaw katalog główny w konfiguracji serwera.

Pozdrawiam!


(FadeMind) #10

Polecam stronę:

http://www.chmod.pl/

Można tam w prosty sposób poznać odpowiedni kod uprawnień dla polecenia chmod.


(Dmcmmm) #11

(roobal) #12

To znaczy? Możesz też zablokować całkowicie dostęp do samego katalogu /home, dając mu chmod 711.

Zapoznaj się z ulimit.

Pozdrawiam!


(Dmcmmm) #13

To znaczy chodziło mi o zablokowanie listowania katalogu głównego / i jego podfolderów. Myślałem o poleceniu:

chmod -R 711 /

ale nie zdało by to egzaminu, ponieważ chmoduje także pliki.

Słyszałem o tym jednak nie próbowałem stosować. Poczytam jeszcze i zdam relacje.


(roobal) #14

Można to zrobić jeszcze tak.

cd /

for dir in $(find -type d) ; do chmod 711 $dir ; done

Co oznacza, że pętla for się zakończy, gdy find znajdzie wszystkie pliki, będące katalogami i zmieni ich uprawnienia na 711.

Wpisz ulimit -a polecenia to wyświetli wszystkie limity wraz z opisem czego dotyczą, oraz przełączniki, których trzeba użyć do zmiany limitu.

Pozdrawiam!


(litestep) #15

Chmod na pewno nie jest rozwiązaniem. Problem zatrzymania użytkownika w katalogu domowym jest często poruszany gdy ktoś chce udostępnić niezaufanym użytkownikom dostęp do ich plików po scp/ssh. Szukaj po restricted shell/rksh albo ogólnie o opisów robienia jaila dla dystrybucji, której używasz