Czuję się zagubiony w tej konfiguracji, którą próbuję wdrożyć. Mam nadzieję, że ktoś z was może mi pomóc: bardzo wdzięczny.
Podstawowe informacje
Serwer to Debian 6.0, ext3, z Apache2 / SSL i Nginx z przodu jako odwrotne proxy. Muszę zapewnić dostęp sftp do katalogu głównego Apache (/ var / www), upewniając się, że użytkownik sftp jest chrootowany do tej ścieżki z uprawnieniami RWX.
Wszystko to bez modyfikowania domyślnego uprawnienia w / var / www.
drwxr-xr-x 9 root root 4096 Nov 4 22:46 www
Inside / var / www
-rw-r----- 1 www-data www-data 177 Mar 11 2012 file1
drwxr-x--- 6 www-data www-data 4096 Sep 10 2012 dir1
drwxr-xr-x 7 www-data www-data 4096 Sep 28 2012 dir2
-rw------- 1 root root 19 Apr 6 2012 file2
-rw------- 1 root root 3548528 Sep 28 2012 file3
drwxr-x--- 6 www-data www-data 4096 Aug 22 00:11 dir3
drwxr-x--- 5 www-data www-data 4096 Jul 15 2012 dir4
drwxr-x--- 2 www-data www-data 536576 Nov 24 2012 dir5
drwxr-x--- 2 www-data www-data 4096 Nov 5 00:00 dir6
drwxr-x--- 2 www-data www-data 4096 Nov 4 13:24 dir7
Co próbowałem
- utworzył nową grupę secureftp
- utworzył nowego użytkownika sftp, dołączonego do grup danych bezpiecznychp i www również z powłoką nologin . Homedir jest /
- edytowałem sshd_config za pomocą
Subsystem sftp internal-sftp AllowTcpForwarding no Match Group <secureftp> ChrootDirectory /var/www ForceCommand internal-sftp
Mogę zalogować się z użytkownikiem sftp, wyświetlać listę plików, ale nie można wykonywać żadnych operacji zapisu. Użytkownik Sftp jest w grupie danych www, ale uprawnienia w / var / www są odczytywane / czytane + x dla bitu grupy, więc ... To nie działa.
Próbowałem też z ACL, ale ponieważ stosuję uprawnienia ACL RWX dla użytkownika sftp do / var / www (katalogi i pliki rekurencyjnie), zmieni to również uprawnienia unix, czego nie chcę.
Co mogę tutaj zrobić?
Myślałem, że mógłbym umożliwić użytkownikowi www-data logowanie się jako sftp, aby mógł modyfikować pliki / katalogi, które www-data posiada w / var / www. Ale z jakiegoś powodu uważam, że byłby to głupi ruch z punktu widzenia bezpieczeństwa.
źródło
Odpowiedzi:
To, co zrobiłem, to chrootowanie moich użytkowników do ich katalogów domowych, a następnie
mount --bind
tworzenie linków do nich w ich katalogach domowych.Następnie
setfacl
upewniłem się, żewww-data
zachowuje uprawnienia do zapisu nowych plików w katalogu. Ten efekt powróci w/var/www
to, co chcesz zrobić.Ustawiając
g+s
katalog, wszystkie nowe pliki i katalogi utworzone w nim odziedziczą własność grupy od jego rodzica.To powinno wystarczyć.
Uczyń swoje wierzchowce trwałymi
Oczywiście chcesz, aby twoje mounty nadal tam były podczas restartu serwera. To tak proste, jak dodawanie uchwytów do swojego
/etc/fstab
. Nie wszyscy dostawcy pozwalają dotknąć tego pliku, ale większość tak.Po prostu dodaj takie linie:
Możesz zrestartować komputer, aby upewnić się, że działa.
źródło