Назад | Перейти на главную страницу

Как я могу предотвратить выход из rbash с помощью Control-C

Я назначил учетной записи оболочку входа /bin/rbash и обнаружили уязвимость, которая, кажется, rbash в значительной степени бесполезно.

Счета .bash_login просто бежит .bashrc:

. $HOME/.bashrc

и .bashrc наборы PATH в каталог, содержащий единственные допустимые команды:

PATH=/restrict/bin

Это номинально работает. Однако я считаю, что если я ssh в учетную запись и почти мгновенно нажмите Control-C после ввода пароля, есть небольшой шанс (может быть, каждый пятый), что rbash прерывается и переходит в приглашение оболочки перед запуском .bashrc, после чего PATH не был изменен, и пользователь получает неограниченный доступ к /bin.

Пожалуйста, скажите мне, что мне что-то не хватает, потому что решение кажется трудным, если не исправлять и перекомпилировать bash. Я также опасаюсь длинного списка конкретных действий rbash модифицируется для получения «безопасности». Я бы отказался bash для этой цели, за исключением того, что bash сценарии прочно укоренились в моих пользователях.

Одним из решений может быть установка пути в .bash_login файл, полностью пропуская загрузку из .bashrc

РЕДАКТИРОВАТЬ:

Вернувшись и взглянув на это, я понял, что просто установив $PATH переменная фактически ничего не выполняет, поскольку пользователь может просто изменить ее, включив в нее другие каталоги, содержащие двоичные файлы, которые ограниченный в том смысле, о котором вы говорите, и не препятствует прямому вызову исполняемого файла. В оболочках, совместимых с POSIX, вы можете установить переменную только для чтения (readonly PATH=/restricted/bin). Чтобы решить эту проблему позже, вам придется ограничить пользователя / группу, чтобы они не получали доступ к другим файлам / папкам bin.