【问题标题】:Replace bash shell with python program's cmdline interface用 python 程序命令行界面替换 bash shell
【发布时间】:2012-03-20 16:12:52
【问题描述】:

我有一个程序使用 python 的cmd 模块作为命令行界面。

现在我希望它在任何普通用户登录到它时在我的 Linux 服务器上运行, 以一种用户永远不会得到默认 Linux 提示的方式(即他不应该能够杀死程序或将其发送到后台或任何类似的东西)。

出于安全问题,程序不应允许用户访问正常提示。用户应始终使用程序的 cmdline 来触发所有命令。 (该程序内置了各种过滤器)。

尝试为用户将程序执行命令放入/etc/password(用程序执行cmd替换默认的bash shell)并尝试将其放入用户.bashrc文件中,但没有用;用户仍然可以获得访问默认提示。

对此的任何指示都会非常有帮助。

【问题讨论】:

  • 为什么这个话题被标记为python?
  • 因为用户想运行 python shell 而不是 bash
  • 提醒我不要在你的系统上工作。你打算允许用户在任何阶段使用编辑器吗?或者你打算让他们使用用 Python 编写的编辑器?如果您让他们使用vimvi 类似工作,并且如果您在系统上有一个shell,那么他们可以访问该shell。比如……
  • @JonathanLeffler:哈哈哈,该程序提供了一组用户可以使用的服务,但是为了我的服务器安全,我不希望他们访问这些服务之外的任何东西...... :)

标签: python linux shell operating-system


【解决方案1】:

这可能属于超级用户,但您应该将其添加到/etc/shells 文件中,并将用户的登录 shell 设置为那个。

例如:sudo useradd -d /path/to/newuserhomedir -s /usr/sbin/nologin newusername 将创建一个名为 newusername 的人,其登录 shell 将是程序 /usr/sbin/nologin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2012-11-20
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多