2

Я запускаю экран с помощью следующей команды, внутри сценария оболочки, который настроен как оболочка пользователя, чтобы предотвратить его выход.

screen -dRRq -S ${USER}_MC -s $HOME/runthis.sh

Есть ли способ обезопасить экран, чтобы пользователь не мог даже использовать escape-последовательность или, в худшем случае, запретить ему запускать такие команды, как exec?

Редактировать: это не значит, что пользователь должен иметь доступ к фактической оболочке командной строки. Я только хочу, чтобы они могли запускать одну и ту же программу, которая работает постоянно, и, насколько я знаю, экран - самый простой способ сделать это. Однако выйти из этого так же легко, как и C-a : exec bash .

Сейчас я просто отменил привязку большинства клавиш с помощью .screenrc (особенно двоеточия), я просто хочу убедиться, что я не пропустил что-то более простое.

2 ответа2

1

Если вы хотите запустить экран, вы можете запустить приложение другим пользователем (назовем его Алисой) и разрешить пользователю с ограниченными правами (назовем его Бобом) присоединить сеанс экрана. (Я не знаю, возможно ли это сделать с одним пользователем.) Используйте функцию ACL на экране, чтобы ограничить возможности Боба. Вы должны поместить что-то вроде следующего в .screenrc (предупреждение, проверьте документацию и проверьте безопасность, возможно, я пропустил важный шаг):

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

Если вам не обязательно запускать screen, вы можете пройти через ограниченную оболочку (да, даже если вы не заинтересованы в предоставлении им доступа к оболочке). Вы бы дали пользователям возможность запускать приложение, nohup и, возможно, способ просматривать файлы журналов, если это уместно. Оболочка с ограниченным доступом, которую вы можете использовать, это rbash (man rbash локально покажет вам соответствующую часть справочной страницы bash). Вы также можете рассмотреть rssh (пакет Ubuntu Установить rssh).

0

если я правильно понял ваш вопрос - попробуйте использовать Iron Bars Shell, он в принципе все отрицает

«Iron Bars Shell (ibsh)» - бесплатная системная оболочка с открытым исходным кодом для Linux и Unix. Он небольшой, безопасный и основан на совершенно новой перспективе: ОТКРЫТЬ ВСЕ !! Если что-то нужно, разрешите. "

если вы хотите включить что-то / что-либо для определенного пользователя (-ей) в какой-то момент, вы сможете сделать это ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .