在Linux系統中批次新增使用者的操作流程(轉)

gugu99發表於2007-08-10
在Linux系統中批次新增使用者的操作流程(轉)[@more@]

  一、為什麼需要大批次新增使用者;

  我們什麼時候才需要大批次新增使用者呢?有時我們需要讓幾十個或更多的使用者在主機上完成相同或相似的任務,比如我們想同時新增一堆的ftp 使用者,這些ftp使用者歸屬同一組,但不允許他們透過終端或遠端登入伺服器;有時我們可能為了教學,比如我們有50個學生,並且每個學生在伺服器上有一個獨立的使用者名稱,能登入系統,並能管理自己的帳號或完成一些在自己許可權下的作業;

  二、批次使用者新增流程;

  批次添中使用者流程是透過newusers 匯入一個嚴格按照/etc/passwd 的書寫格式來書寫內容的檔案來完成新增使用者,然後透過chpasswd 匯入使用者密碼檔案來完成批次更新使用者密碼的過程;

  1、newusers 成批新增使用者的工具;

  其用法很簡單,newusers 後面直接跟一個檔案;檔案格式和/etc/passwd 的格式相同;

  使用者名稱1:x:UID:GID:使用者說明:使用者的家目錄:所用SHELL

  舉例:

  win00:x:520:520::/home/win00:/sbin/nologin

  win01:x:521:521::/home/win01:/sbin/nologin

  ......

  值得一提的是關於SHELL型別,檢視主機上所有SHELL ,可以透過chsh 來檢視;

  [root@localhost beinan]# chsh --list

  /bin/sh

  /bin/bash

  /sbin/nologin

  /bin/ksh

  /bin/tcsh

  /bin/csh

  /bin/zsh

  其中除了/sbin/nologin ,其它型別的SHELL 都能登入系統;nologin 大多是虛擬使用者用的SHELL ,也就是說雖然他是系統使用者,但他並無登入系統的許可權;如果您想新增這類使用者,就把他的SHELL 設定成/sbin/nologin ,比如上面的例子;

  關於使用者名稱、UID、GID及使用者的家目錄是怎麼回事,您可以讀相應的參考文件;

  2、chpasswd 批次更新使用者口令工具;

  chpasswd 工具是成批更新使用者口令的工具,是把一個檔案內容重新定向新增到/etc/shadow中;

  chpasswd < 檔案

  但檔案的內容並不是沒有約定的,必須以下面的格式來書寫,並且不能有空行;

  使用者名稱:口令

  使用者名稱1:口令1

  使用者名稱2:口令2

  舉例:

  win00:123456

  win01:654321

  ... ...

  三、批次新增使用者例項;

  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和chpasswd 完成批次新增使用者;

  [root@localhost ~]# newusers userfile.txt

  [root@localhost ~]# chpasswd < userpwdfile.txt

  這樣就算新增完成了,如果您發現 /etc/passwd 中能發現使用者的明口令,您可以透過下面的命令來對映到 /etc/shadow檔名;

  [root@localhost ~]# pwconv

  四、關於本文;

  本文是大批次新增使用者的一個例項,主要是newusers和chpasswd的用法的解說;實話實說,這兩個工具還是有用的;至於能用在哪,我前面已經說過了,可以用在ftp的虛擬使用者,可以用到教學中;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939825/,如需轉載,請註明出處,否則將追究法律責任。

相關文章