系统教程 发布时间: 2025-11-03

Linux用户退出系统后限制IP登录Shell的操作实例

作者: 热心网友
阅读: 56次

在Linux系统中,有时我们需要限制某些用户在退出系统后无法立即通过IP登录Shell。这种需求通常出于安全考虑,防止恶意用户或未授权的访问。可以通过修改系统的配置文件来实现这一目标。

首先,我们需要编辑PAM(Pluggable Authentication Modules)的配置文件。这个文件通常位于/etc/pam.d/login或者/etc/pam.d/shell。具体路径可能因Linux发行版而异。使用文本编辑器打开相应的文件,例如使用vi或nano。

在文件中找到与认证相关的模块配置行,通常是`auth required pam_shelldate.so`这一行。这个模块用于记录用户登录的时间戳。我们可以通过添加`session optional pam_shelldate.so`来确保在用户退出时更新时间戳。

接下来,我们需要创建一个脚本来检查时间戳,并在用户尝试通过IP登录时进行限制。创建一个名为`check_timestamp.sh`的脚本,并赋予它执行权限。脚本内容如下:

`#!/bin/bash
CURRENT=$(date +%s)
LAST=$(grep username /var/log/shelldate.log | cut d' ' f2)
DAYS=$(( ( $CURRENT $LAST ) / 86400 ))

if [ $DAYS gt 1 ]; then
echo "You can only log in locally." >&2
exit 1
fi

将`username`替换为需要限制的用户名。这个脚本会检查当前时间与上次登录时间的差异,如果超过一天,则拒绝IP登录。

最后,我们需要将这个脚本集成到PAM配置中。在PAM配置文件中添加一行`session optional /path/to/check_timestamp.sh`,将`/path/to/check_timestamp.sh`替换为脚本的实际路径。

保存并退出编辑器,然后测试配置是否生效。尝试通过IP登录被限制的用户,应该会看到提示信息“您只能本地登录”。这样,我们就成功地实现了在用户退出系统后限制IP登录Shell的目标。

相关文章