查看單個文章
舊 2004-08-06, 11:32 AM   #1
飛鳥
協調管理員
 
飛鳥 的頭像
榮譽勳章
UID - 23073
在線等級: 級別:72 | 在線時長:5513小時 | 升級還需:108小時級別:72 | 在線時長:5513小時 | 升級還需:108小時
註冊日期: 2003-01-07
VIP期限: 無限期
住址: 史萊姆團隊
文章: 7199
精華: 11
現金: 837 金幣
資產: 260029 金幣
預設 如何一次建立大量帳戶

ips如何一次建立大量帳戶
方法一:
一個系統管理者日常最常處理的工作便是管理使用者帳號了,包含增加和減少使用者、配置硬碟配額、開啟個人首頁等等,而在系統建置的初期面對要增加大量使用者而要回答adduser(useradd)的一些相關使用者資訊便常要浪費相當多時間,況且又沒有留下相關的記錄,常讓系統管理者痛苦不已,更別說後續的管理動作了。

pdadduser正可以解決這種困擾,不僅可以依需要快速方便建立大量使用者帳號,使用者的密碼可以是採隨機或指定的方式組成,而帳號、UID、家目錄都可由系統管理者自行選擇設定,並可以搭配相關指令使用,深具彈性,並留有相關的記錄,可以大量減輕管理者負擔。筆者在本文中將使用簡單的範例來說明在Linux和FreeBSD這兩套系統下的使用方式,更詳細的說明可以參考http://ghs.ssd.k12.wa.us/~pdavis/。


--------------------------------------------------------------------------------

安裝
pdadduser目前最新的版本是1.2,但是經筆者測試,某些系統1.2版並無法執行,此時請改用1.1版〔筆者均mirror於http://mouse.oit.edu.tw/sources/pdad...分說明。

1.1 Linux 安裝

step 1. tar xvfz pdadduser-1.2.tar.gz ← 解壓縮Pdadduser軟體

step 2. cd pdadduser-1.2 ← 切換到pdadduser-1.2目錄中

step 3. make ← 編輯pdadduser

step 4. gcc pause.c –o pause ← 有時該檔會有問題,所以編輯一下

當產生pdadduser, pause 這兩個可執行檔即可。


--------------------------------------------------------------------------------

1.2 FreeBSD 安裝

step 1. tar xvfz pdadduser-1.1.tar.gz ← 解壓縮Pdadduser軟體

step 2. cd pdadduser-1.1 ← 切換到pdadduser-1.2目錄中

step 3. gcc –Wall –I- -I. pdadduser –o pdadduser ← 編輯pdadduser

step 4. gcc pause.c –o pause ←編輯 pause

當產生pdadduser, pause 這兩個可執行檔即可。


--------------------------------------------------------------------------------

2 指令格式

pdadduser完整的指令格式如下,筆者在本文中僅作簡單的說明,更詳細的使用方式請參考解開的README。

pdadduser -n [-f ] [-F ] [-o ] [-h home-directory-format>] [-g ] [-r ] [-p ] [-t] [-d] -c 'COMMAND1' ['COMMAND2' ...]

選項說明:

-n :使用者清單的文字檔檔案,這是必需的,例如檔案內容如下所示:

Peter Davis

Joe Schmoe

Jane Doe

-f :使用者名稱的組合格式,格式定義如下:

$n:第n個字(起始字是 $0),如果不存在則忽略

%x.n:第n個字中第x個字元,如果不存在則忽略

例如 '%0.0$1' 是取第0個字中第0個字元和第1個字組合而成(預設也是如此),所以套用上面範例取得的使用者名稱分別是 `pdavis', `jschmoe', `jdoe';'%3.0$1' 是取第0個字中第3個字元和第1個字組合而成,所以套用上面範例取得的使用者名稱分別是 'edavis', 'schmoe', 'edoe'。

-F :使用者全名的組合格式,格式定義和 -f 相同,例如 '$0 $1' 是取第0個字空格和第1個字組合而成(預設也是如此),所以套用上面範例取得的使用者全名分別是 'Peter Davis', "Joe Schmoe', 'Jane Doe';而'%0.0. $1' 取得的是 'P. Davis', 'J. Schmoe', 'J. Doe'。

-o :輸出檔案,包含使用者名稱、密碼和錯誤訊息等,請務必放置安全的地方,當然有此檔案則系統管理者應可玩出一些把戲才是。如果輸出檔名為 '-' 則僅自螢幕輸出,筆者並不建議使用。此外錯誤訊息如 '!2!!235!' 等,請見下面範例,可以提醒管理者注意。

-h :使用者家目錄格式,首先定義ㄧ些特殊字元如下:

u:使用者名稱

g:使用者群組

f:使用者全名

使用者家目錄格式,格式定義如下:

$:整個字

%n:字中第n個字元

例如 '/home/$g/$u' 依上例是 '/home/users/pdavis';假設使用者名稱是 'S9351033',家目錄希望是'/home/users/S/93/S9351033',則格式應為 '/home/users/%0u/%1u%2u/$u'。預設格式是 '/home/$u'。

-g :使用者群組。

-r :UID範圍,預設是500到1000。

-p :預設是系統亂數產生,當然也可自訂,如 %xr 為亂數產生 r 個字元,預設是 6 個字元。

-t:測試模式,並不真正增加使用者。

-d:除錯模式,可看到每一指令的執行過程。

-c 'COMMAND1' ['COMMAND2' ...]:這是pdadduser最重要的部份,也就是pdadduser提供相關的參數給COMMAND執行,詳細的範例在下。其中參數如下:

$u:使用者名稱

$p:使用者密碼

$i:使用者UID

$g:使用者群組

$f:使用者全名

$d:使用者家目錄


--------------------------------------------------------------------------------

3 執行

在瞭解指令的參數之後,我們便可以利用pdadduser來新增使用者了,但由於Linux和FreeBSD稍有不同,筆者分別說明之。

3.1 Linux

首先建立使用者清單的文字檔檔案,範例如上,取名 userlists;另外筆者也建立一個shell可執行檔,內容如下,取名 pda4linux。

./pdadduser -n $1 -o $2 -g users -d -c

'/usr/sbin/adduser -c "$f" -u $i -g $g -d $d $u'

'(printf "$p"; ./pause 1; printf "$p") | /usr/bin/passwd $u;'

'mkdir $d/public_html'

'cp index.html.samp $d/public_html/index.html'

'chown -R $u.$g $d/public_html'

'chmod 755 $d'

'edquota -p shie $u'

pda4linux執行檔的意思是,'/usr/sbin/adduser -c "$f" -u $i -g $g -d $d $u' 增加使用者,'(printf "$p"; ./pause 1; printf "$p") | /usr/bin/passwd $u;' 變更使用者密碼,'mkdir $d/public_html' 'cp index.html.samp $d/public_html/index.html' 'chown -R $u.$g $d/public_html' 'chmod 755 $d',製作個人首頁,'edquota -p shie $u' 複製shie的Quota樣板。

當然pda4linux是要修改才可以用到你的系統的,如中的index.html.samp, shie 等等。執行的格式如下:

./pda4linux 使用者清單 輸出檔案

如:

./pda4linux userlists accounts

執行第一次pda4linux觀看輸出檔案 accounts內容如下:

Peter Davis: name=pdavis passwd=aacuug group=users uid=500 homedir=/home/pdavis

Joe Schmoe: name=jschmoe passwd=ogyjwm group=users uid=501 homedir=/home/jschmoe

Jane Doe: name=jdoe passwd=appymj group=users uid=502 homedir=/home/jdoe

再執行ㄧ次後,再觀察輸出檔 accounts 內容如下:

Peter Davis: name=pdavis passwd=aacuug group=users uid=500 homedir=/home/pdavis

Joe Schmoe: name=jschmoe passwd=ogyjwm group=users uid=501 homedir=/home/jschmoe

Jane Doe: name=jdoe passwd=appymj group=users uid=502 homedir=/home/jdoe

!1!!256! Peter Davis: name=pdavis passwd=dedrnm group=users uid=503 homedir=/home/pdavis

!1!!256! Joe Schmoe: name=jschmoe passwd=hfyhoy group=users uid=503 homedir=/home/jschmoe

!1!!256! Jane Doe: name=jdoe passwd=ueixrd group=users uid=503 homedir=/home/jdoe

由此可知此時新增使用者是會有問題的,問題當然是重複了,而有時密碼產生的太簡單時也是會有問題的,再次提醒一次請務必該檔放置安全的地方。

方法二、
自動建立帳號--中小學網管者的救星來了(一)
A:使用環境:RedHat Linux+cle
1.先把檔案抓回去![請按這裡](http://netlab.kh.edu.tw/download/建帳號工具.zip )
2.以root權限進入linux
3.將解開的檔案放到一個新建的 /work 目錄
4. cd /work [進入 work目錄]
5.chmod 700 * [將所有script檔屬性改為 -rwx------]
6.更改 /etc/profile裡的敘述
 PATH="$PATH:/usr/X11R6/bin" 改為
 PATH="$PATH:/usr/X11R6/bin:/usr/sbin"
 存檔後離開系統再重新以root登入
7. #./cmenu 執行script檔
8.選[1]自動建立帳號
9.選[3]產生全校帳號
10.您需求的規則: 例如英文字母:stu ,最低年級:1 , 最高年級:6 , 每一年級的班級數目: 9, 每一班學生人數:50, 然後就會以:群組+年級+班級+座號的規則建立帳號,但目前尚無密碼,也無法收發E-mail,請回到主選單繼續.
11.在主選單中選[4]批次更改使用者密碼(二)
12.輸入群組名稱:stu , 其他請依說明操作,最後會產生一個pwtemp檔,內容是使用者帳號以及群組+四位數密碼.
(參考資料:RedHat Linux隨裝即用.賴阿福.高健智著,松崗)


自動建立帳號--中小學網管者的救星來了(二)
A:接下來說明如何自動產生帳號通知單.
1.將產生的pwtemp檔拷貝到Win98或WinNT上
2.使用Excel或Access的匯入功能匯入到資料表中並分欄位如編號、姓名、帳號、密碼.
3.回到Word裡開啟新文件.
4.使用工具->合併列印
5.簡單格式如下: <姓名>等代表合併之欄位

高雄市和平國小電子郵件帳號分配通知單

使用者姓名:<姓名> 配發日期:1999/9/15
E-mail:<帳號>@mail.hpps.kh.edu.tw
伺服器資訊:
內送郵件→POP3 :mail.hpps.kh.edu.tw
外寄郵件→SMTP :mail.hpps.kh.edu.tw
內送郵件伺服器帳號:<帳號> 密碼:<密碼>

<>

6.合併完會產生一份新文件,您可以檢查結果是否正確.
__________________
http://flybird017.googlepages.com/quok.gif http://flybird020.googlepages.com/new321.gif
寶貝你我的地球
, 請 少開電器,減少溫室氣體排放外,多種植植物,減少列印, 多用背面,丟棄時做垃圾分類。

http://netgames123.googlepages.com/tobikeways.jpg

飛鳥 目前離線  
送花文章: 11706, 收花文章: 3363 篇, 收花: 16453 次
回覆時引用此帖