Uruchamiam ekran za pomocą następującego polecenia w skrypcie powłoki, który jest ustawiony jako powłoka użytkownika, aby uniemożliwić im ucieczkę.
screen -dRRq -S ${USER}_MC -s $HOME/runthis.sh
Czy istnieje sposób zabezpieczenia ekranu, aby uniemożliwić użytkownikowi korzystanie z sekwencji ucieczki lub, w najgorszym przypadku, uniemożliwić uruchamianie poleceń takich jak exec
?
Edycja: To nie jest tak, że użytkownik powinien mieć dostęp do rzeczywistej powłoki wiersza polecenia. Chcę tylko, aby mogli uruchomić jeden program, który działa trwale, i o ile wiem, ekran jest najłatwiejszym sposobem na zrobienie tego. Jednak wydostanie się z tego jest tak proste, jak C-a : exec bash
.
W tej chwili uwolniłem większość kluczy za pomocą .screenrc (szczególnie dwukropka), chcę tylko upewnić się, że nie umknie mi coś łatwiejszego.
źródło
Odpowiedzi:
Jeśli chcesz uruchomić ekran, możesz uruchomić aplikację jako inny użytkownik (nazwijmy ją Alice) i pozwolić ograniczonemu użytkownikowi (nazwijmy go Bob) dołączenie sesji ekranowej. (Nie wiem, czy można to zrobić z jednym użytkownikiem). Użyj funkcji ACL ekranu, aby ograniczyć możliwości Bob. Wstawiłbyś coś takiego:
.screenrc
(ostrzeżenie, sprawdź dokumentację i przetestuj zabezpieczenia, mogłem pominąć ważny krok):Jeśli niekoniecznie chcesz uruchomić screen, możesz przejść przez ograniczoną powłokę (tak, nawet jeśli nie jesteś zainteresowany udzieleniem im dostępu do powłoki). Dałbyś użytkownikom możliwość uruchomienia aplikacji
nohup
, a być może sposób na przeglądanie plików dziennika, jeśli jest to istotne. Ograniczona powłoka, której możesz użyć torbash
(man rbash
lokalnie pokaże ci odpowiednią część strony podręcznikabash
). Możesz także rozważyć rssh ( pakiet Ubuntu ).źródło
jeśli dobrze rozumiem twoje pytanie - spróbuj użyć Żelaznej Sztabki , to po prostu wszystko zaprzecza
jeśli chcesz włączyć coś / cokolwiek dla określonego użytkownika (użytkowników) w pewnym momencie, będziesz mógł to zrobić ...
źródło