一、為什么需要大批量添加用戶;
我們什么時(shí)候才需要大批量添加用戶呢?有時(shí)我們需要讓幾十個(gè)或更多的用戶在主機(jī)上完成相同或相似的任務(wù),比如我們想同時(shí)添加一堆的ftp 用戶,這些ftp用戶歸屬同一組,但不允許他們通過(guò)終端或遠(yuǎn)程登錄服務(wù)器;有時(shí)我們可能為了教學(xué),比如我們有50個(gè)學(xué)生,并且每個(gè)學(xué)生在服務(wù)器上有一個(gè)獨(dú)立的用戶名,能登錄系統(tǒng),并能管理自己的帳號(hào)或完成一些在自己權(quán)限下的作業(yè);
二、批量用戶添加流程;
批量添中用戶流程是通過(guò)newusers 導(dǎo)入一個(gè)嚴(yán)格按照/etc/passwd 的書(shū)寫(xiě)格式來(lái)書(shū)寫(xiě)內(nèi)容的文件來(lái)完成添加用戶,然后通過(guò)chpasswd 導(dǎo)入用戶密碼文件來(lái)完成批量更新用戶密碼的過(guò)程;
1、newusers 成批添加用戶的工具;
其用法很簡(jiǎn)單,newusers 后面直接跟一個(gè)文件;文件格式和/etc/passwd 的格式相同;
用戶名1:x:UID:GID:用戶說(shuō)明:用戶的家目錄:所用SHELL
舉例:
win00:x:520:520::/home/win00:/sbin/nologin
win01:x:521:521::/home/win01:/sbin/nologin
......
值得一提的是關(guān)于SHELL類(lèi)型,查看主機(jī)上所有SHELL ,可以通過(guò)chsh 來(lái)查看;
[root@localhost beinan]# chsh --list
/bin/sh
/bin/bash
/sbin/nologin
/bin/ksh
/bin/tcsh
/bin/csh
/bin/zsh
其中除了/sbin/nologin ,其它類(lèi)型的SHELL 都能登錄系統(tǒng);nologin 大多是虛擬用戶用的SHELL ,也就是說(shuō)雖然他是系統(tǒng)用戶,但他并無(wú)登錄系統(tǒng)的權(quán)限;如果您想添加這類(lèi)用戶,就把他的SHELL 設(shè)置成/sbin/nologin ,比如上面的例子;
關(guān)于用戶名、UID、GID及用戶的家目錄是怎么回事,您可以讀相應(yīng)的參考文檔;
2、chpasswd 批量更新用戶口令工具;
chpasswd 工具是成批更新用戶口令的工具,是把一個(gè)文件內(nèi)容重新定向添加到/etc/shadow中;
chpasswd < 文件
但文件的內(nèi)容并不是沒(méi)有約定的,必須以下面的格式來(lái)書(shū)寫(xiě),并且不能有空行;
用戶名:口令
用戶名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
然后用文本編輯器打開(kāi)文件userfile.txt,添加如下內(nèi)容;
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 文件內(nèi)容格式和 /etc/passwd 的格式是一樣的,必須嚴(yán)格按照/etc/passwd 的格式來(lái)書(shū)寫(xiě);上面所添加的用戶都不能登錄系統(tǒng),但完全能用于ftp登錄,但您得在相應(yīng)ftp服務(wù)器的配置文件中打開(kāi)讓本地用戶有讀寫(xiě)權(quán)限;如果您想讓上面的部份用戶可以登錄系統(tǒng),可以把SHELL類(lèi)似改一改,比如改成/bin/bash ;
我們?cè)賮?lái)書(shū)寫(xiě)新增用戶的密碼文件userpwdfile.txt內(nèi)容;這個(gè)文件的內(nèi)容中的用戶名要與 userfile.txt用戶名相同;也就是說(shuō)我們先是添加了win00到win09的用戶,現(xiàn)在要為這些用戶更新密碼;比如下面的;
win00:123456
win01:654321
win02:123321
win03:qweewq
win04:google
win05:adadwc
win06:wsscee
win07:xxec32
win08:543wew
win09:3ce3wf
2、通過(guò)newusers和chpasswd 完成批量添加用戶;
[root@localhost ~]# newusers userfile.txt
[root@localhost ~]# chpasswd < userpwdfile.txt
這樣就算添加完成了,如果您發(fā)現(xiàn) /etc/passwd 中能發(fā)現(xiàn)用戶的明口令,您可以通過(guò)下面的命令來(lái)映射到 /etc/shadow文件名;
[root@localhost ~]# pwconv
四、關(guān)于本文;
本文是大批量添加用戶的一個(gè)實(shí)例,主要是newusers和chpasswd的用法的解說(shuō);實(shí)話實(shí)說(shuō),這兩個(gè)工具還是有用的;至于能用在哪,我前面已經(jīng)說(shuō)過(guò)了,可以用在ftp的虛擬用戶,可以用到教學(xué)中;
本文沒(méi)有技術(shù)含量,不值一提,但不寫(xiě)出來(lái),感覺(jué)對(duì)于一個(gè)系列文檔來(lái)說(shuō)又少了內(nèi)容;還是寫(xiě)出來(lái)為好;