Strona 1 z 3

Zablokowanie wyjścia z katalogu i wyłączenie ssh

: 06 lipca 2010, 18:08
autor: shyte
Witam.
Zainstalowałem sobie ftp za pomocą:

Kod: Zaznacz cały

apt-get install proftpd
Dodałem również tez nowego użytkownika:

Kod: Zaznacz cały

adduser kris
Logując się na ftp za pomocą np programu FileZilla.
Mogę chodzić po wszystkich katalogach etc,boot,bin i innych.

Wyczytałem ze trzeba to zablokować w pliku proftpd.conf.

W linii DefaultRoot ale jak to ma wyglądać dokładnie? Mój katalog logowania ftp to /home/kris.

A w pliku mam dopisane tak:

Kod: Zaznacz cały

 DefaultRoot            ~/home/kris
I nie działa.

Edycja:
Znalazłem trzeba było usunąć tylko znaczek # przed DefaultRoot.
Ale jeszcze konto kris ma dostęp do ssh jak to wyłączyć tylko dostęp ssh na to konto?

: 06 lipca 2010, 19:55
autor: adasiek_j
Zmień wpis:

Kod: Zaznacz cały

/bin/bash
na:

Kod: Zaznacz cały

/bin/false
w pliku

Kod: Zaznacz cały

/etc/passwd 
dla tego użytkownika.


Adam

: 06 lipca 2010, 19:59
autor: shyte
Tylko że wtedy na ftp nie mogę się zalogować, a chciałbym zabronić tylko ssh dla tego użytkownika.

: 06 lipca 2010, 21:19
autor: Pacek
W Linuxie symbolem katalogu użytkownika jest tylda. Dlatego powinno to wyglądać tak:

Kod: Zaznacz cały

DefaultRoot ~
Co do wyłączenia możliwości logowania do powłoki to należy w /etc/passwd zmienić powłokę tak jak napisał kolega, czyli:

Kod: Zaznacz cały

/bin/false
lub:

Kod: Zaznacz cały

/sbin/nologin

: 06 lipca 2010, 21:29
autor: lessmian2
Tylko, że po zmianie powłoki na /bin/false lub /bin/nologin nie zaloguje się też przez FTP, co zresztą już napisał.

shyte, masz kilka możliwości rozwiązania tego problemu:
  • w proftpd.conf zmienić RequireValidShell na off
  • dodać wybraną powłokę do pliku /etc/shells
  • w konfiguracji sshd zabronić danemu użytkownikowi logowania za pomocą dyrektywy DenyUsers
Wybierz co Ci pasuje ;)

: 06 lipca 2010, 21:33
autor: Pacek
Ja mam dla użytkowników:

Kod: Zaznacz cały

/sbin/nologin
i przez FTP mogą się logować bez problemu.

: 06 lipca 2010, 21:34
autor: shyte
Zanim lessmian2 napisałeś zmieniłem na /sbin/nologin oraz RequireValidShell na off
I restart serwera i teraz ssh mi nie działa, ftp działa, strona też i co ja mam teraz zrobić?

: 06 lipca 2010, 21:36
autor: Pacek
Ale przecież chciałeś wyłączyć dostęp do SSH dla użytkownika. Może wpisałeś /sbin/nologin dla użytkownika, którym próbujesz podłączyć się przez SSH.

: 06 lipca 2010, 21:39
autor: lessmian2
shyte, a po co restartowałeś cały serwer? ;)

Pacek, jesli masz wyłączone RequireValidShell lub dodane /sbin/nologin do /etc/shells, to i owszem, zalogujesz się. Inaczej przy domyślniej konfiguracji ProFTPd nie będzie to możliwe dla tej powłoki.

: 06 lipca 2010, 21:41
autor: Pacek
Niekoniecznie, bo mam:

Kod: Zaznacz cały

serwer:/etc/bind# cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/sh
/bin/bash
/bin/rbash
/bin/false
/usr/bin/screen