gpt4 book ai didi

linux - PAM 模块是否可以防止用户多次登录?

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:15 25 4
gpt4 key购买 nike

是否可以有一个 PAM 模块来检查尝试通过 OpenSSH 登录的用户是否已经登录,如果他们拒绝第二次登录?

我已经尝试了其他几种方法来阻止多个登录 session ,但没有任何效果,如果有人可以使用自定义 PAM 模块确认这是可行的,我将非常感激,谢谢。

当我注释掉 sftp 配置时,我注意到 limits.conf 工作正常:

# SFTP + Port Forwarding Only for Normal Users
# Create home directory in /home/%u and set permissions to user / sftponly
# then do a usermod -d / user
# In Tunnelier set user home to /home

#Subsystem sftp /usr/lib/openssh/sftp-server

#Match group sftponly
#ChrootDirectory /home/%u
#X11Forwarding no
#AllowTcpForwarding yes
#ForceCommand internal-sftp

但它破坏了 sftp。

最佳答案

您可以使用 utmp 或 utmpx 检查事件登录 session 的数量,这是一个像这样的简单循环:

#include <utmpx.h>

int get_num_login_sessions( const char* username )
{
int num_active_sessions = 0;
struct utmpx* ent = NULL;
setutxent();
while( (ent = getutxent()) != NULL )
{
if( ent->ut_type == USER_PROCESS &&
strcmp(username, ent->ut_user) == 0 )
{
num_active_sessions++;
}
}
endutxent();
return num_active_sessions;
}

请参阅 utmp 的维基百科条目:http://en.wikipedia.org/wiki/Utmp

如果您创建了一个执行此操作的 pam 模块并将其堆叠在您的身份验证堆栈的顶部,如果事件 session 的数量超过 0(只要您的模块是根据需要或要求堆叠的),您可能会失败。

关于linux - PAM 模块是否可以防止用户多次登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9637123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com