Mam skrypt, który zostanie wykonany przez SSH. Mój serwer SSH jest skonfigurowany tak, aby zawsze uruchamiał ten skrypt, więc użytkownik nie ma dostępu do rzeczywistej maszyny.
Jedną z cech tego skryptu jest edycja pliku, zastanawiam się, czy istnieje sposób na wywołanie VIM (lub innego edytora opartego na konsoli) bez umożliwienia mu edycji innych plików lub wykonywania poleceń. Chcę, aby VIM był zmuszony do edycji tylko otwartego pliku.
Odpowiedzi:
Nie sądzę, żeby można było ograniczyć samego Vima tak, jak chcesz.
Ale możesz ograniczyć wszystkie prawa użytkownika tylko do jednego określonego pliku / katalogu. W ten sposób nigdy nie byłby w stanie czytać ani pisać do żadnego innego pliku / katalogu. Należy pamiętać, że użytkownik powinien nadal mieć możliwość wykonywania programów znajdujących się w innym miejscu (
/usr/bin/vim
, na przykład).Szybki Google prawdopodobnie zwróci dziesiątki samouczków. To narzędzie może pomóc: pozwala skonfigurować rodzaj piaskownicy na serwerze.
źródło
:w /some/other/file
, czy to?Możesz zbudować kopia vima dla konkretnego użytkownika i ogranicz użytkownika tylko do tych części FS, do których potrzebuje dostępu - więc tylko uprawnienia do odczytu / zapisu do tego pliku, i Nie inne grupy dodane do jego konta. To powinno skutecznie ograniczyć go tylko do tych plików.
Inną możliwą rzeczą byłoby ograniczenie użytkownika do więzienia chroot po wykonaniu powyższego - aby widział tylko vima i ten plik.
źródło
Nie używając Vima, mogę zasugerować bez testowania:
Oto kilka informacji, które wskażą drogę:
Mapowanie kluczy w Vimie - samouczek
Vim: Jaka jest różnica między remapowaniem, noremap, nnoremap i vnoremap
Dokumentacja Vima: mapa
źródło
Posługiwać się Nano w trybie ograniczonym .
rnano to ograniczona wersja nano, która edytuje tylko określone pliki i nie pozwala użytkownikowi na dostęp do systemu plików lub powłoki poleceń .
W trybie ograniczonym nano nie będzie:
źródło
Nie do końca to, czego szukasz, ale rvim tak trochę tego, czego chcesz. Być może można zrobić kilka sztuczek za pomocą chroot. Nie wiem
źródło
Moim zaleceniem jest stworzenie pełnego środowiska logowania do systemu chroot dla użytkowników podczas logowania. Jest to podobne do tego, co producenci urządzeń Apple i OEM robią dla swoich urządzeń. http://en.wikipedia.org/wiki/Chroot . Pozwala to stworzyć określone środowisko dla każdego użytkownika, który loguje się z ograniczonymi uprawnieniami.
W ten sposób możesz zablokować je tylko do określonej sekcji dostępnych narzędzi. Nawet jeśli mają dostęp do zapisu, nie będą mogli wpływać na główny system plików i wszystko, co tam działa, bez większego wysiłku.
Poniższe linki pomogą Ci po drodze http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229
http://allanfeid.com/content/creating-chroot-jail-ssh-access
Podobnie jak zakorzenienie, czy więzienie łamiące iPhone'a, urządzenia z systemem Android, wymaga zaawansowanej wiedzy na temat programowania, aby wykorzystać uprzywilejowany proces, nie jest to zbyt proste.
Ten samouczek dla Ubuntu wyjaśnia, czym jest środowisko root root / chroot i jak je utworzyć. https://help.ubuntu.com/community/BasicChroot
źródło
Możesz po prostu użyć dowolnego edytora tekstu i zrobić mały skrypt do pisania w następujący sposób:
ustaw odpowiednio uprawnienia
(Uwaga: Ta metoda może być używana do wielu rzeczy i jest powszechna w skryptach cgi)
źródło