Заблокирована ли команда выхода из системы с помощью команды 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 будет завершен, когда ваша программа будет существовать, и оболочка не будет доступна пользователю.
Однако имейте в виду, что это чревато серьезными проблемами безопасности.