微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否通过 pythons os.system 命令阻止了注销命令?

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

解决方法

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

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

在这两种情况下,SSH 会话将在您的程序存在且用户无法使用 shell 时终止。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。