- 论坛徽章:
- 0
|
在看pleacperl时,有一段关于改/var/log/lastlog文件中某个用户的最后登录时间时,我试了好几次都不成,请大家帮我看看:
代码:
#!/usr/bin/perl -l
use User::pwent;
use IO::Seekable;
open $fh,"+</var/log/lastlog";
$typedef='L A12 A16';
$sizeof=length(pack($typedef,()));
$user=$ENV{USER};
print "user=>$user";
$offset=getpwnam($user)->uid*$sizeof;
seek($fh,$offset,SEEK_SET);
read($fh,$buffer,$sizeof);
($time,$line,$host)=unpack($typedef,$buffer);
print $time;
print $line;
print $host; $time-=60*60*7;
print $time;
seek($fh,-$sizeof,1);
$buffer=pack($typedef,time,$line,$host);
print $fh $buffer;
close($fh);
我在pleacperl中的原来的代码中加了几个print看一下最后登录的信息,可是好象print $line,print $host没有什么作用,代码执行后,通过"lastlog"命令看当前用户的最后登录时间也没有减一天(原文是减7天)。 |
|