Jak dodać użytkownika ssh, który ma uprawnienia tylko do dostępu do określonego folderu?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
Utworzyłem użytkownika o nazwie musteri
. Ustawiłem jego folder domowy i grupę. Chcę więc zintegrować musteri
użytkowników z „/var/www/xyz.com.tr/musteri”. Nie chcę, żeby miał dostęp do innego folderu.
ssh
permissions
users
account-restrictions
Wiolonczela
źródło
źródło
scponly
jako powłoka, być może działająca wchroot
trybie, aby ograniczyć jego dostęp do tego katalogu i nigdzie indziej.scponly chroot
lubrssh chroot
powinien doprowadzić cię do poradników).Odpowiedzi:
Wygląda na to, że chcesz, aby Twój müşteriler miał dostęp do przesyłania plików do folderu bez faktycznego udostępniania ich powłok. Jest to dobra rzecz, ponieważ jak zauważył binfalse , dawanie ludziom powłok z ograniczonym dostępem jest trudne, ponieważ powłoki muszą mieć dostęp do wszelkiego rodzaju rzeczy rozproszonych w systemie, aby się uruchomić.
Aby dać SFTP dostęp do określonego folderu, możesz zrobić coś takiego.
/etc/ssh/sshd_config
) za pomocą tych liniiSpowodowałoby to aktywację podsystemu sftp wewnątrz SSH i zmusiłoby członków tej grupy systemów do korzystania tylko z tego systemu podczas logowania. Chrootowałoby ich również do swoich katalogów domowych. Możesz zmienić to na podfolder ich domowych katalogów, dodając coś takiego
ChrootDirectory %h/musteri_sftp
, aby nie mogli zobaczyć reszty plików systemowych, ale logowali się bezpośrednio do specjalnego podfolderu swojego katalogu domowego.Kolay gelsin.
źródło
Moim zdaniem jest to bardzo trudne, jeśli nie niemożliwe. Gdy użytkownik łączy się przez SSH, przynajmniej potrzebuje powłoki, w twoim przypadku
bash
. Aby wykonać/bin/bash
, potrzebuje uprawnień dostępu/bin
.bash
sam musi przeczytać niektóre rzeczy z/etc
(np./etc/bash.bashrc
), więc użytkownik potrzebuje również dostępu do/etc
. Zakładając, że użytkownik nie tylko chce kręcić się w tym katalogu, może chcieć przeczytać plik, ale na przykład, aby wykonaćvim
, potrzebuje również dostępu/usr/bin
.To tylko niewielka demonstracja, jest więcej zależności, np. Tak naprawdę nie wiem, co się stanie, jeśli użytkownik nie będzie miał dostępu do
/tmp
...Powinieneś pomyśleć o swoim zamiarze. Czy chcesz tylko, aby ktoś miał dostęp do odczytu / zapisu do części twojego serwisu? Następnie możesz skonfigurować coś takiego jak FTP, aby wyeksportować określony katalog do tego użytkownika. Dzięki temu może czytać / zapisywać te pliki bez dostępu do SSH.
Kolejnym dobrym rozwiązaniem byłoby repozytorium. Na przykład skonfiguruj repozytorium GIT i pozwól użytkownikowi go sklonować. Może wprowadzić zmiany lokalnie i wysłać łatkę. Możesz zdecydować, czy zastosować tę poprawkę, czy też nie, wycofanie łat na błędy jest również bardzo łatwe.
źródło
rbash
jest przeznaczony do tego właśnie.