分类: LINUX
2010-04-15 15:57:22
因为自己需要导入大量公司邮件用户,导出全局地址本的时候希望有用户的名字,看了一下userctl.pl的使用说明,并没有读取文件内邮件用户名字,如果是导入后再一个个在后台改就太麻烦了,所以就打算小改一下脚本。
看了一下userctl.pl,发现只要多读文件内一列然后写入就行了,读不懂下边这句:
my $name = defined $opt{name} ? $opt{name} : $user;
似乎是如果name参数有定义就用name,无定义就用@domain.com之前的部分,那个个用户都用name参数的值,貌似很不合理吧?
修改的方法
131行加上:
my $name = $_[4];
注释原139行的:
#my $name = defined $opt{name} ? $opt{name} : $user;
原来第268行改为:
$rv = adduser $info[0],$info[1],$info[2],$info[3],$info[4];
用户信息文件格式(email地址、密码、邮箱配额、netdisk配额、名字):
123123 100 20 测试用户1
123123 100 20 测试用户2
用户信息文件保存的时候记得保存为utf8格式(见图)
然后命令格式如下:
cd /usr/local/www/extman/tools/
perl ./userctl.pl --mod=badd --file=./userlist --setuid=1000 --setgid=1000