Я назначил учетной записи оболочку входа /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.