Dostęp tylko do określonych folderów za pośrednictwem SFTP

2

Mam VPS z systemem Ubuntu Server 14.04.

Oto wybór mojej struktury katalogów:

/
    home/
        my_user/
    var/
        www/
            wp-content/
                themes/
                    my-theme/
                    my-theme-child/

Uprawnienia do katalogów to 755, a pliki to 644.

Powiedzmy, że zatrudniam programistę, my_useraby opracował dla mnie temat. Chcę, aby mogli robić, co chcą, do swojego folderu domowego. Chcę też, żeby umieli czytać, my-themeczytać i pisać my-theme-child, ale nic więcej. Nie powinni nawet widzieć struktury katalogów żadnej innej części serwera.

Przeczytałem trochę i myślę, że chrootwięzienie przydałoby się dobrze, aby utrzymać mojego programistę w katalogu domowym, ale nie mogę wymyślić, jak dać im dostęp my-themei my-theme-childoprócz bieżącego dostępu.

Jak mogę to osiągnąć?


źródło
Brak bogatej kontroli dostępu do warstwy aplikacji w SSH / SCP / SFTP jest jednym z największych wstydów protokołu, imho.
gowenfawr
1
Należy utworzyć grupę dla osób pracujących w kompozycji, a następnie przypisać ją do folderów z odpowiednimi uprawnieniami. Pamiętaj, że użytkownik może spróbować uzyskać dostęp do folderów ręcznie, jeśli nie ograniczysz dostępu.
Fg4spr,
1
@gowenfawr Jest to bardziej problem z powszechnie używanym programem serwerowym OpenSSH SFTP. Istnieją komercyjne serwery SFTP, które dają większą kontrolę nad tym, co jest dostępne zdalnie.
Kenster,
@Kenster świetny punkt - moja krytyka byłaby bardziej poprawnie sformułowana „… de facto implementacja” niż „protokół”.
gowenfawr

Odpowiedzi:

1

Może to być meh dla twoich potrzeb, ale robię coś podobnego, aby pozwolić znajomym wysyłać mi pliki. Zakładając, że więzienie SFTP jest skonfigurowane, możesz:

1) Utwórz katalog domowy tego chrootowanego myusera. Zrobiłemmkdir /var/sftproot

2) Katalog domowy użytkownika powinien być własnością root: chown root:root /var/ftproot

3) mkdir /var/ftproot/dump(w więzieniu chroot) i /var/dumpstuff(poza więzieniem)

4) chown -R myuser:users /var/ftproot/dumpi chown -R myuser:users /var/dumpstuff(jeśli chcesz, aby użytkownik był właścicielem)

4) mount --bind /var/ftproot/stuff/ /var/dumpstuff/

/ var / sftproot nie jest zapisywalny przez myuser, ale podkatalogi w nim są. Prawdopodobnie ogranicza to ich użycie sftp; brak dostępu do powłoki.

Nie mówisz, czy chcesz uzyskać dostęp do powłoki dla tego programisty, ale ponieważ jest to programista, może tak. W tym celu rozważ ssh i więzienie (dotyczy to Arch, ale prawdopodobnie coś podobnego jest możliwe na Ubuntu - nie przetestowałem tego).

Bolwerk
źródło