当前位置: 技术问答>linux和unix
RH7.3下如何批量输入有密码的用户列表并且指定用户组和shell??
来源: 互联网 发布时间:2015-01-05
本文导语: 从文件或者数据库里怎么导? | 用perl写个脚本,这是我写的脚本的一个片断,省掉了不重要的部分,你自己改一下吧: #!/bin/perl my $filename = "passwd"; if(open (FH, "$filename")){ while(){ m...
从文件或者数据库里怎么导?
|
用perl写个脚本,这是我写的脚本的一个片断,省掉了不重要的部分,你自己改一下吧:
#!/bin/perl
my $filename = "passwd";
if(open (FH, "$filename")){
while(){
my $line = $_;
$line =~ /(S+):(S+):(S+):(S+):(.*):(S*):(S*)/;
my $username = $1;
my $password = crypt_passwd($setpasswd ? $2 : $default_passwd);
my $userid = $3;
my $groupid = $4;
my $description = $5 ? $5 : "none";
my $home = $6;
my $shell = $7;
my $result = `useradd -d $home -s $shell -p $password -c '$description`;
}
close (FH);
}
#!/bin/perl
my $filename = "passwd";
if(open (FH, "$filename")){
while(){
my $line = $_;
$line =~ /(S+):(S+):(S+):(S+):(.*):(S*):(S*)/;
my $username = $1;
my $password = crypt_passwd($setpasswd ? $2 : $default_passwd);
my $userid = $3;
my $groupid = $4;
my $description = $5 ? $5 : "none";
my $home = $6;
my $shell = $7;
my $result = `useradd -d $home -s $shell -p $password -c '$description`;
}
close (FH);
}
|
我些的脚本里的crypt_passwd需要你自己写,我的是这样的(没用到md5):
sub crypt_passwd(){
my $old_pass = shift;
my $salt = chr(int(rand(26))+65).chr(int(rand(26))+65);
my $new_pass = crypt($old_pass, $salt);
return $new_pass;
}
sub crypt_passwd(){
my $old_pass = shift;
my $salt = chr(int(rand(26))+65).chr(int(rand(26))+65);
my $new_pass = crypt($old_pass, $salt);
return $new_pass;
}
|
-p后面跟的是加密后的密码
你可以用函数 crypt做个c程序来实现加密口令
#!/bin/bash
echo Usage add_user username group shell passwd
pw=`./getpass $4`
useradd -g $2 -s $3 -p $pw $1
//getpass.c
#include
#define _XOPEN_SOURCE
#include
int main(int argc, char *argv[])
{
printf("%s", crypt(argv[1], "bt"));
return 0;
}
你可以用函数 crypt做个c程序来实现加密口令
#!/bin/bash
echo Usage add_user username group shell passwd
pw=`./getpass $4`
useradd -g $2 -s $3 -p $pw $1
//getpass.c
#include
#define _XOPEN_SOURCE
#include
int main(int argc, char *argv[])
{
printf("%s", crypt(argv[1], "bt"));
return 0;
}
|
你的密码是怎么定的??
说的具体点
说的具体点