Linux - 限制用户只能使用 ssh 中的一个应用程序

myw*_*hog 4 linux ssh login shell

这是我不久前研究过的,并找到了一些有用的信息......但现在我实际上需要这样做,当然我再也找不到我看到的指南了。

无论如何,情况是这样的。我有一个通过 SSH 使用 ncurses 菜单运行的程序。我希望用户能够通过 SSH 登录到该程序,但仅限于该程序。

我必须做什么才能使这种情况成为可能?

  • 用户打开 Putty
  • 用户使用用户名和密码登录 Linux 服务器
  • 登录时,他们直接进入该程序
  • 即使程序关闭、崩溃、取消等,用户也会被强制从系统注销。

我的目标是完全限制他们看到命令行,并且仅限于该程序。这可能吗?我/我将如何去做?

Joh*_*ald 6

这也称为强制登录。

将程序的执行和退出附加到用户的 ~/.profile 中。

exec /usr/local/bin/program
exit
Run Code Online (Sandbox Code Playgroud)

聪明的用户知道他们可以在 ssh 客户端中提供一个不是您期望的 shell 的命令。使用 sshd 配置中的 ForceCommand 来防止这种情况发生:

部队指挥部

强制执行由 ForceCommand 指定的命令,忽略客户端和 ~/.ssh/rc(如果存在)提供的任何命令。该命令是通过使用用户的登录 shell 和 -c 选项来调用的。这适用于 shell、命令或子系统执行。它在 Match 块内最有用。

Match Group programusers
    ForceCommand /usr/local/bin/program
Run Code Online (Sandbox Code Playgroud)