Linux下批量添加samba用户和系统用户

一、批量添加系统用户

 

作为一个系统管理员,可能要经常的为机器添加用户,可能是在一台机器上添加很多用户,也有可能是在很多机器上要添加同一个用户。基本上,批量添加用户有两种方式,一是用useradd + passwd命令配合脚本来添加,二是用newusers+chpasswd来添加。

 

第一个方法合适用来在不同的机器上添加不同的用户,或者在同一台机器上添加大量的规则命名的用户。第二个方法可用于在同一台机器上添加大量的用户名单,如将A机上的用户全部添加到B机上。

 

方法一:useradd + passwd命令配合脚本来添加

wKiom1PRqHOgTIZAAAETqLmzLJc839.jpg

 

 

其中users.list文件内容如下:

johnson
lily
kelly

执行结果如下图所示:

wKiom1PRqKiSsPIRAAEk4mMtN0I085.jpg

 

 

由脚本知,用户的初始密码被设为用户名+123,大家可以按需修改使用。

 

方法二、newusers+chpasswd批量添加用户

 

1、首先我们创建用户文件和密码文件;

 

我们要创建包含新用户的文件userfile.txt ;另一个是为新添加的用户设置密码的userpwdfile.txt;

[root@localhost ~]# touch userfile.txt
[root@localhost ~]# touch userpwdfile.txt

 

然后用文本编辑器打开文件userfile.txt,添加如下内容;

win00:x:520:520::/home/win00:/sbin/nologin
win01:x:521:521::/home/win01:/sbin/nologin
win02:x:522:522::/home/win02:/sbin/nologin
win03:x:523:523::/home/win03:/sbin/nologin
win04:x:524:524::/home/win04:/sbin/nologin
win05:x:525:525::/home/win05:/sbin/nologin
win06:x:526:526::/home/win06:/sbin/nologin
win07:x:527:527::/home/win07:/sbin/nologin
win08:x:528:528::/home/win08:/sbin/nologin
win09:x:529:529::/home/win09:/sbin/nologin

 

userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上 面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;

 

我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同且严格按照“用户名:密码”的格式来写,一个用户一行;也就是说我们先是添加了win00到win09的用户,现在要为这些用户更新密码;比如下面的;

win00:123456
win01:654321
win02:123321
win03:qweewq
win04:google
win05:adadwc
win06:wsscee
win07:xxec32
win08:543wew
win09:3ce3wf

 

2、用newusers批量添加用户,此时用户是没有密码的

 

[root@localhost ~]# newusers userfile.txt

 

2、执行命令/usr/sbin/pwunconv,将/etc/shadow产生的shadow密码解码,然后回写到/etc/passwd中, 并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消shadow password功能,关闭影子文件。

[root@localhost ~]# pwunconv

 

3、 用chpasswd批量修改密码
[root@localhost ~]# chpasswd < userpwdfile.txt

 

4、最后不要忘了恢复影子文件,保证安全,您可以通过下面的命令来映射到 /etc/shadow文件名

[root@localhost ~]# pwconv

 

 

二、批量添加samba用户

 

批量增加samba用户并设置默认密码8个8最新公司想启用文件服务器.从稳定性和安全性方面考虑最终决定用SAMBA.
在测试过程中发现了一个问题,就是smbpasswd 改用户密码一定得改两次.用户一个两个无所谓.现在有150多个用户.这样的话就太麻烦了..
怎么办呢?在CU上也找过文章,没有发现结果.
今天刚刚找到方法.就是从mksmbpasswd.sh这个脚本入手
[root@testserver ~]# cat /usr/bin/mksmbpasswd.sh
#!/bin/sh
awk 'BEGIN {FS=":"
printf("#\n# SMB password file.\n#\n")
}
{ printf( "%s:%s:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[UD ]:LCT-00000000:%s\n", $1, $3, $5) }
'

发现 XXXXXXXX 这一个就是密码.默认的话导过去是没有密码的.
我们从/etc/samba/smbpasswd这个文件可以看出来 当我们当用的密码设为8个8的时候
其中有一串EA4DC076CA45EC7E36077A718CCDF409:87E694F8DF877A2EE6A3E1AFBC72217A
我们可以将这一串加过密的密码替换掉 XXXX 这样就解决了密码的问题..
另外 [UD ] 这个里面的 D 代表 disable 表示用户是禁用的..我们也可以改成[U ],
LCT-00000000 这个是表示 last change time 一个时间戳..可以不用理会..
修改完这个脚本以后,就是这样子的,
#!/bin/sh
awk 'BEGIN {FS=":"
printf("#\n# SMB password file.\n#\n")
}
{ printf( "%s:%s:EA4DC076CA45EC7E36077A718CCDF409:87E694F8DF877A2EE6A3E1AFBC72217A:[U ]:LCT-44BD9F82:%s\n", $1, $3, $5) }
'
我们就可以用
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
将用户加到 samba 里面去了..

你可能感兴趣的:(linux用户批量添加)