Заблокирована ли команда выхода из системы с помощью команды pythons os.system?

В настоящее время я пишу небольшой скрипт, который должен автоматически выполняться, как только определенные пользователи входят на сервер. Затем им разрешается добавить пользователя, и после этого они должны немедленно выйти из системы, чтобы они не вмешивались в мой сервер. Для этого я написал следующую функцию:

      def logout_fkt():
logout = input("Do you wish to log out ? (yes / no): ")  # Maybe the user wants to add another user
if logout == 'no':
    add_user()
else:
    os.system("logout")

Серверы работают на ubuntu20.04, поэтому выход из системы определенно существует. Но каким-то образом, если я выполняю ее через os.system(), я получаю следующее сообщение об ошибке:sh: 1: logout: not found, что указывает на то, что команда не существует, что, конечно, неверно. Я потерян.

1 ответ

В logout Команда - это встроенная команда в Bash, которую нельзя вызывать извне.

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

В обоих случаях сеанс SSH будет завершен, когда ваша программа будет существовать, и оболочка не будет доступна пользователю.

Однако имейте в виду, что это чревато серьезными проблемами безопасности.

Другие вопросы по тегам