linux 控制用户登录时间及时长

linux 控制用户登录时间及时长,第1张

1.限制用户user登录时间

# vi /etc/security/time.conf

加入以下一行

sshd*userAl1800-2000

# vi /etc/pam.d/sshd

加入以下一行

account required pam_time.so

2.限制使用时长,将下面脚本加入crontab,在合适的时间每分钟自动执行

#!/bin/bash

last|grep still|grep user | while read username tty ip week mon day time nouse

do

start=$(date -d "$week $mon $day $time" +%s)

end=$(date +%s)

total=$(( $end - $start ))

if [ $total -ge 7320 ]

then

if [ $total -ge 7200 ]

then

pkill -t $tty

else

echo "Time Out !!! You will be logout in 2 minutes! " | write $username $tty

fi

fi

done

我刚刚做过实现,可以实现。

你先新建一个用户test,然后设置密码。再使用命令

usermod

-e

2010-09-28

test

把test设置过期时间为昨天,然后再使用test登录试试。

usermod

-e

是设置

/etc/shadow第八栏里面的参数,里面是的时间是从1970年1月1日开始算起的,是日为单位,所以,我如果设置为2010-09-28,第八栏的数字为14882.同时也要注意,你linux主机的时间要跟现实时间一样。

如果要清除这个时间限制就使用usermod

-e

"

"

test

使用 last [用户名] 命令,可以看到用户历次的登录时间信息

比如: last oracle 就可以显示oracle用历次登录时间

如果你要只显示最后3条,可以用一个组合命令

比如: last oracle | tail -5 | head -3

这样就可以看到最后3次登录信息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8798537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存