"linux下批量添加用戶和修改密碼的方法,批量用戶添加流程 "
- 來源:縱橫數(shù)據(jù)
- 作者:中橫科技
- 時(shí)間:2013/1/14 13:20:54
- 類別:新聞資訊
linux下批量添加用戶和修改密碼的方法,批量用戶添加流程
批量添中用戶流程是通過newusers 導(dǎo)入一個(gè)嚴(yán)格按照/etc/passwd 的書寫格式來書寫內(nèi)容的文件來完成添加用戶,然后通過chpasswd 導(dǎo)入用戶密碼文件來完成批量更新用戶密碼的過程。
1、newusers 成批添加用戶的工具
其用法很簡(jiǎn)單,newusers 后面直接跟一個(gè)文件;文件格式和/etc/passwd 的格式相同
用戶名1:x:UID:GID:用戶說明:用戶的家目錄:所用SHELL
舉例:
win00:x:520:520::/home/win00:/sbin/nologin
win01:x:521:521::/home/win01:/sbin/nologin
值得一提的是關(guān)于SHELL類型,查看主機(jī)上所有SHELL ,可以通過chsh 來查看
[root@localhost beinan]# chsh --list
/bin/sh
/bin/bash
/sbin/nologin
/bin/ksh
/bin/tcsh
/bin/csh
/bin/zsh
其中除了/sbin/nologin ,其它類型的SHELL 都能登錄系統(tǒng);nologin 大多是虛擬用戶用的SHELL ,也就是說雖然他是系統(tǒng)用戶,但他并無登錄系統(tǒng)的權(quán)限;如果您想添加這類用戶,就把他的SHELL 設(shè)置成/sbin/nologin ,比如上面的例子
如果你要批量添加的用戶需要有環(huán)境變量,用上面的 newusers 添加的用戶是沒有環(huán)境變量的,不過我們可以通過 useradd 命令自己編寫shell腳本,很簡(jiǎn)單,如下:
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
file=/home/user_list
cat $file | grep -v "#" | while read LINE
do
echo $LINE
useradd $LINE
done
如果你暫時(shí)不需要添加某個(gè)用戶,可以在文件內(nèi)用 “#” 過濾掉該行。
注意:
如果你用這個(gè)腳本添加用戶,注意 /home/user_list 文件每個(gè)用戶單獨(dú)一行,只包括用戶名。
自定義腳本所需文件 /home/user_list 格式如下:
[root@localhost beinan]# more user_list
win01
win02
#win03
2、chpasswd 批量更新用戶口令工具
chpasswd 工具是成批更新用戶口令的工具,是把一個(gè)文件內(nèi)容重新定向添加到/etc/shadow中
chpasswd < 文件
但文件的內(nèi)容并不是沒有約定的,必須以下面的格式來書寫,并且不能有空行
用戶名:口令
用戶名1:口令1
用戶名2:口令2
舉例:
win00:123456
win01:654321
三、批量添加用戶實(shí)例
1、首先我們創(chuàng)建用戶文件和密碼文件
我們要?jiǎng)?chuàng)建包含新用戶的文件userfile.txt ;另一個(gè)是為新添加的用戶設(shè)置密碼的userpwdfile.txt;
[root@localhost ~]# touch userfile.txt
[root@localhost ~]# touch userpwdfile.txt
然后用文本編輯器打開文件userfile.txt,添加如下內(nèi)容;
win00:x:520:520::/home/win00:/sbin/nologin
win01:x:521:521::/home/win01:/sbin/nologin
userfile.txt 文件內(nèi)容格式和 /etc/passwd 的格式是一樣的,必須嚴(yán)格按照/etc/passwd 的格式來書寫;上面所添加的用戶都不能登錄系統(tǒng),但完全能用于ftp登錄,但您得在相應(yīng)ftp服務(wù)器的配置文件中打開讓本地用戶有讀寫權(quán)限;如果您想讓上面的部份用戶可以登錄系統(tǒng),可以把SHELL類似改一改,比如改成/bin/bash
我們?cè)賮頃鴮懶略鲇脩舻拿艽a文件userpwdfile.txt內(nèi)容;這個(gè)文件的內(nèi)容中的用戶名要與 userfile.txt用戶名相同;也就是說我們先是添加了win00到win09的用戶,現(xiàn)在要為這些用戶更新密碼;比如下面的;
win00:123456
win01:654321
2、通過腳本 useradd.sh ,newusers 完成批量添加用戶
[root@localhost ~]# ./useradd.sh
[root@localhost ~]# newusers userfile.txt
3、通過 chpasswd 完成批量修改用戶密碼
[root@localhost ~]# chpasswd < userpwdfile.txt
這樣就算添加完成了,如果您發(fā)現(xiàn) /etc/passwd 中能發(fā)現(xiàn)用戶的明口令,您可以通過下面的命令來映射到 /etc/shadow文件名;
[root@localhost ~]# pwconv
文章來源于縱橫數(shù)據(jù)(www.qq-team.cn)