【问题标题】:Is the logout command blocked via pythons os.system command?是否通过 pythons os.system 命令阻止了注销命令?
【发布时间】:2021-07-06 23:27:58
【问题描述】:

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

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 上运行,所以 logout 命令肯定存在。但不知何故,如果我通过 os.system() 执行它,我会收到以下错误消息: sh:1:注销:未找到 这将表明该命令不存在,这当然不是真的。我迷路了。

【问题讨论】:

    标签: python-3.x azure-pipeline-python-script-task


    【解决方案1】:

    logout 命令是 Bash 中的内置命令,不能从 shell 外部调用。

    如果您希望用户通过 SSH 连接到您的机器并且只运行您的程序,您可以将其设置为他们的默认 shell,或 only allow that program to be run

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

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

    【讨论】:

    • 谢谢。我会调查的。听起来正是我需要的东西!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2021-11-07
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多