1. 程式人生 > >用shell指令碼增加幾個組,並在每個組裡建立一定的使用者

用shell指令碼增加幾個組,並在每個組裡建立一定的使用者

昨天我們用語言寫了一個關於使用者組和使用者的簡單應用,但是說實話,就九個使用者我已經重複的很煩惱了,於是我就想能不能通過shell指令碼來實現批量增加使用者。於是乎,我今天就想著用shell指令碼去完成昨晚的例子。我們先來回顧一下昨天的例子。

題目:建立幾個組,每個組有一定的成員,並且每個組有一個可以操作的資料夾,每個使用者有一個自己的家目錄,其他使用者無法讀取自己的家目錄。其中兩個組還有一個共用資料夾,兩個組的組員都可以可讀可寫可操作,最後還有一個資料夾,全部的組都可以操作使用。下面是我昨晚列出的具體許可權:

只不過,我今天做的是每個組分配了30個使用者。廢話不多說,指令碼原始碼奉上

 1
#!/bin/sh 2 #min=1 3 #max=3 4 for((i=1;i<4;i++)) 5 #while [$min -le $max] 6 do 7 case $i in 8 1) 9 groupname=yanfa 10 groupadd ${groupname} 11 mkdir /wenjian/yanfa 12 chown -R :yanfa /wenjian/yanfa 13 ;; 14 2) 15 groupname=yunwei 16 groupadd ${groupname} 17 mkdir /wenjian/yunwei
18 chown -R :yunwei /wenjian/yunwei 19 ;; 20 3) 21 groupname=renshi; 22 groupadd ${groupname} 23 mkdir /wenjian/renshi 24 chown -R :renshi /wenjian/renshi 25 esac 26 #groupadd ${groupname} 27 for((j=1;j<31;j++)) 28 #while [$j -le 30] 29 do 30 username=${groupname}${j} 31 useradd -g ${groupname} ${username}
32 #j=$(($j+1)) 33 done 34 #i=$(($i+1)) 35 done 36

現在我來一步步解釋這些程式碼,

首先第一行肯定就是定義使用的shell這裡一般可以是/bin/bash或者/bin/sh

第二步就是for迴圈,這邊是迴圈三次,for迴圈的開始,然後就是case語句,及其格式,然後就是對應每一個語句需要建立的使用者組名,然後就是為使用者組建立資料夾,然後就是給資料夾賦予一定的許可權,然後esac就是case語句的結束,然後再迴圈三十次,為每個組建立三十個使用者。最後的兩個done就是for迴圈的結束。這就簡單實現了,使用者組和使用者的建立,由於在除錯程式的時候,一個個使用者的刪除比較麻煩,於是我就寫了個針對於這個檔案建立使用者組的刪除指令碼。也貢獻出來吧。

  1 #!/bin/sh
  2 for ((i=1;i<=30;i++))
  3 do
  4 userdel -r yanfa${i}
  5 userdel -r renshi${i}
  6 userdel -r yunwei${i}
  7 done
  8 groupdel yunwei
  9 groupdel renshi
 10 groupdel yanfa
 11 rm -rf /wenjian/yunwei /wenjian/yanfa /wenjian/renshi

 好了,這就是一個簡單的shell指令碼。