Jak ograniczyć użytkownika do jednego folderu i nie pozwolić mu na przeniesienie swojego folderu

28

Mam serwer Ubuntu na digitalocean i chcę dać komuś folder na swoją domenę na moim serwerze, mój problem polega na tym, że nie chcę, aby ten użytkownik widział moje foldery lub pliki lub mógł przenieść ich folder.

Jak mogę ograniczyć tego użytkownika w jego folderze i nie pozwolić mu na przeprowadzkę i zobaczenie innych plików / katalogów?

badr
źródło
W tym celu możesz użyć oddzielnych kont użytkowników.
Martin von Wittich,
A może Jailkit
FloHimself
chmod nie jest dobrym rozwiązaniem, ponieważ nie mogę go użyć do wszystkich folderów na moim serwerze, z których korzystałem, zanim mógł przenieść swój folder
badr
właściwie nie mam pojęcia o grupie, ponieważ wcześniej jej nie używałem. Czy możesz mi po prostu wyjaśnić, jakie korzyści z tego wynikają?
badr

Odpowiedzi:

26

Rozwiązałem swój problem w ten sposób:

Utwórz nową grupę

$ sudo addgroup exchangefiles

Utwórz katalog chroot

$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/

Utwórz katalog do zapisu dla grupy

$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/

Daj je obu nowej grupie

$ sudo chgrp -R exchangefiles /var/www/GroupFolder/

potem poszedłem /etc/ssh/sshd_configi dodałem na końcu pliku:

Match Group exchangefiles
  # Force the connection to use SFTP and chroot to the required directory.
  ForceCommand internal-sftp
  ChrootDirectory /var/www/GroupFolder/
  # Disable tunneling, authentication agent, TCP and X11 forwarding.
  PermitTunnel no
  AllowAgentForwarding no
  AllowTcpForwarding no
  X11Forwarding no

Teraz dodam nowego użytkownika o nazwie Obama do mojej grupy:

$ sudo adduser --ingroup exchangefiles obama

Teraz wszystko jest zrobione, więc musimy zrestartować usługę ssh:

$ sudo service ssh restart

zauważ: użytkownik nie może teraz nic zrobić z filekatalogu Mam na myśli, że cały jego plik musi znajdować się w folderze plików.

badr
źródło
1
Przeszedłem użytkowników jak sudo su - obamai wciąż można go zobaczyć pliki cudzych @badr
alper
11

Ograniczenia są rozsądnym zagadnieniem i należy je konsekwentnie definiować. Możesz zdefiniować ograniczoną powłokę dla użytkownika jako jego domyślną powłokę .

Na przykład ustawienie /bin/rksh(ograniczona kornshell) zamiast wstępnie zdefiniowanej powłoki użytkownika jako domyślnej powłoki dla tego użytkownika w /etc/profile.

UWAGA: jeśli plik wykonywalny o tej nazwie nie istnieje w systemie, utwórz twardy link ln /bin/ksh /bin/rkshi na kshpodstawie jego nazwy określi, czy jest ograniczony, czy nie.

Ograniczony powłoka będzie (na przykład) zapobiec wykonując cdpolecenie, lub podając komendę z /(wyraźnej ścieżce) w wywołaniu i nie pozwoli na zmianę PATH, SHELLlub ENVzmienną i przekierowania wyjścia są również zabronione.

Ty może jeszcze dostarczyć predefiniowane skrypty powłoki dla użytkownika, który będzie (pod kontrolą implementors skryptów!) Pozwalają użytkownikowi na uruchomienie tego skryptu specyficzny (y) w nieograniczonym środowisku.

Janis
źródło
Ta odpowiedź będzie znacznie prostsza niż konfiguracja środowiska chroot, więc głosowałem za nią.
Azhrei,
5

Polecenie chrootumożliwia utworzenie ograniczonego katalogu głównego dla użytkownika. To pytanie wyjaśnia pojęcie chrooti sposób korzystania z niego.

Aktualizacja: Wyszukiwanie więzienia chroot na cyfrowym oceanie powoduje wyświetlenie dodatkowej dokumentacji specyficznej dla ich środowiska. Oto kilka, które moim zdaniem są powiązane z tym, czego możesz potrzebować.

Jak skonfigurować środowiska Chroot do testowania na Ubuntu 12.04 VPS

Jak zezwolić na ograniczony dostęp SSH do użytkownika w więzieniu chroot

Oto jeden, który dotyczy jailkit , który zasugerował FloHimself .

X Tian
źródło
tak, wyjaśniają to, ale nie wyjaśniają, jak go używać, próbowałem z jakimś poleceniem, ale to, co otrzymuję: chroot: nie udało się uruchomić polecenia '/ bin / bash': Nie ma takiego pliku ani katalogu
badr
1
To prawda, ale teraz słyszałeś o więzieniu chroot, możesz zrobić więcej badań, zaktualizowałem odpowiedź z kilkoma linkami do dokumentów na Digital Ocean, które podają dalsze wyjaśnienia dostosowane do ich środowiska.
X Tian