1

我目前正在编写一个小脚本,一旦某些用户登录到服务器,它就会自动执行。然后他们被允许添加一个用户,并且应该在之后立即注销,这样他们就不会干预我的服务器。为了实现这一点,我编写了以下函数:

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 这表明该命令不存在,这当然不是真的。我搞不清楚了。

4

1 回答 1

0

logout命令是 Bash 中的内置命令,而不是您可以从外壳外部调用的命令。

如果您希望用户通过 SSH 连接到您的机器并且只运行您的程序,您可以将其设置为他们的默认 shell,或者只允许运行该程序

在这两种情况下,当您的程序存在并且用户没有可用的 shell 时,SSH 会话将被终止。

但请注意,这充满了巨大的安全问题。

于 2021-04-11T19:06:10.547 回答