Другая вещь, которую Вы могли бы рассмотреть, состоит в том, если у Вас есть карта удаленного доступа, которая позволяет завершения работы. Шансы являются небольшими, у Вас был бы другой администратор, закрывающий Ваш сервер, но никогда не повреждает проверять.
Сценарий может функционировать как оболочку входа в систему. Необходимо будет добавить/local/sbin/admin_menu к /etc/shells
. Иначе, ssh логины (и возможно другие) не будет работать без объяснения того, почему (если я буду помнить правильно).
Существуют некоторые переменные среды, которые будут переданы от клиента, такого как размер окна. Некоторые будут установлены при вхождении в систему. PAM может установить некоторые из них, но у меня нет примера.
После завершения процесса меню выходится из системы клиент, я верю. Я основываю это прочь наблюдения, что происходит когда /bin/bash
завершается.
На вашем месте я использовал бы stdin/stdout для Вашего входного и выходного источника.
Можно поместить любую программу вместо/bin/sh в/etc/profile записи, или сценарий оболочки или исполняемый двоичный файл. Вещью, за которой Вы хотите наблюдать, являются Escape к оболочке - если Вы попытались получить их в программе, Вы, вероятно, не хотите, чтобы они получили доступ к командной строке.
Например, если бы программа, оказалось, была чем-то как vi, то пользователь мог бы использовать ":!/bin/sh" и добираются до командной строки. Точно так же при использовании сценария, часто ввод данных пользователем времен используется в качестве данных в командной строке - этим можно злоупотребить для получения командной строки также. Если интерфейс меню должен был предложить Вам, чтобы файл распечатал, который мог бы привыкнуть в команде "lpr $input", что происходит, если введенным именем файла является "myfile.txt;/bin/sh"?
Существует несколько других способов вспыхнуть к командной строке, необходимо быть очень осторожными при создании полученной учетной записи, которая берет ввод данных пользователем.