首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制登录次数的Bash脚本

问限制登录次数的Bash脚本
EN

Ask Ubuntu用户
提问于 2018-08-29 09:58:40
回答 3查看 4.1K关注 0票数 12

我的公司要求我有一个服务器应用程序运行,所有用户通过putty终端访问它。我想写一个shell脚本,只有20个putty终端应该打开。如果第21航站楼开了,那么我想立即关闭那个终端。

我怎样才能做到这一点?

请帮帮我。

EN

回答 3

Ask Ubuntu用户

发布于 2018-08-29 10:08:29

在服务器端编辑您的/etc/sshd_config并更改行:

代码语言:javascript
复制
#MaxSessions 10

至

代码语言:javascript
复制
MaxSessions 20

请参见man sshd_config:

代码语言:javascript
复制
 MaxSessions
         Specifies the maximum number of open shell, login or subsystem
         (e.g. sftp) sessions permitted per network connection.  Multiple
         sessions may be established by clients that support connection
         multiplexing.  Setting MaxSessions to 1 will effectively disable
         session multiplexing, whereas setting it to 0 will prevent all
         shell, login and subsystem sessions while still permitting for-
         warding.  The default is 10.
票数 24
EN

Ask Ubuntu用户

发布于 2018-08-29 13:59:47

乔治的解决方案很好不管你要一个bash脚本..。

因此,在没有像MaxSessions of sshd这样的选项的情况下,可以使用这样的方法:

代码语言:javascript
复制
if [ "$(pgrep -cx processName)" -gt 20 ]; then pkill -xn processName; fi; 

哪个pkill -n会杀死processName的最新实例。

对这种特殊情况的正确解决办法是乔治的答案。

票数 5
EN

Ask Ubuntu用户

发布于 2018-08-30 12:18:06

问题还不清楚。让我首先告诉你,我如何理解它,以何种方式,海事组织,应该问它:

我们有一个本地网络,其中一个服务器提供一个特定的应用程序。我们的团队通过使用PuTTY从他们的计算机到服务器的ssh连接来访问这个应用程序。每个团队成员都有自己的用户帐户,用于建立ssh连接(或者可能:所有团队成员都使用公共用户帐户)。团队成员不会将服务器用于任何其他目的,我们希望将其ssh连接的数量限制在20个,无论某个特定用户建立了多少连接(或者每个用户建立了20个连接)。

如果这种解释是正确的,那么满足这些要求的正确方法可能是创建一个用户组,然后将所有用户帐户添加到该组中,并通过/etc/security/limits.conf限制maxlogins的数量。

  1. 创建一个名为the-app-maxlogins的组,其中包含组id 10 000:sudo group添加-g 10000 -app-maxlogins
  2. 将用户添加到该组- sudo adduser <user> <group>:用于"user1“"user2”“user3”中的用户;做sudo adduser "$user“-app-maxlogins;do
  3. 将下一行添加到/etc/security/limits.conf以限制整个组的maxlogins:% the -app-maxlogins - maxlogins 20或添加以下行以限制组的每个用户的最大登录号:@ the -app-maxlogins - maxlogins 20
  4. 编辑/etc/ssh/sshd_config并将下列行添加到底部(!)禁用该组会话多路复用的文件(在这种情况下,这可能不是必需的):Match group -app-maxlogins MaxSessions 1

此解决方案将限制受影响用户的登录数,无论是通过ssh还是tty。如果您想将其应用于某个用户,而不是某个组,只需在limits.conf中添加一行,或者将其放入目录/etc/security/limits.d/中的一个单独的.conf文件中:

代码语言:javascript
复制
username      -       maxlogins       20

MaxSessions指令的实际含义在这个答案中提供了简单的解释。目前答案的主要来源是L&U同样的问题下的另一个答案。

我的其他答案可以在某种程度上提供解决方案,但它是一种乐趣,而不是真正的解决方案。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1070055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档