Jak zabezpieczyć ekran przed użyciem ze skryptem menu?

2

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.

Pęto
źródło
jeśli użytkownicy nie mogą uruchamiać programów, to dlaczego potrzebują powłoki? Zawsze istnieje sposób na obejście powłoki. Możesz spróbować uwięzić je w systemie plików noexec.
matthias krull,
@mugen Nie chcę, aby mieli wiersz polecenia, po prostu ustawiam „powłokę” mojego skryptu, aby działał on podczas logowania. Bycie noexec uniemożliwiłoby im uruchomienie aplikacji docelowej.
Jess,

Odpowiedzi:

1

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):

multiuser on
aclchg bob -w-x #,?
aclchg bob +x copy,detach,help
exec $HOME/runthis.sh

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ć to rbash( man rbashlokalnie pokaże ci odpowiednią część strony podręcznika bash). Możesz także rozważyć rssh ( pakiet Ubuntu Zainstaluj rssh ).

Gilles
źródło
0

jeśli dobrze rozumiem twoje pytanie - spróbuj użyć Żelaznej Sztabki , to po prostu wszystko zaprzecza

„Iron Bars Shell (ibsh) to darmowa, ograniczona systemowo powłoka systemowa dla systemów Linux i Unix. Jest niewielka, bezpieczna i opiera się na zupełnie nowej perspektywie: ODRZUĆ WSZYSTKO !! Jeśli coś jest potrzebne, pozwól na to.”

jeśli chcesz włączyć coś / cokolwiek dla określonego użytkownika (użytkowników) w pewnym momencie, będziesz mógł to zrobić ...

pootzko
źródło
Zobacz edycję pytania. Nie jestem zainteresowany udzielaniem użytkownikowi wiersza polecenia.
Jess,