1、用shell腳本批量建立Linux用戶
實現要求:創建用戶student1到student50,指定組為student組!而且每個用戶需要設定一個不同的密碼!
【腳本實現如下:說明:Linux下 Passwd有參數 --stdin This option is used to indicate that passwd should read the new password from standard input, which can be a pipe. 所以linux下自動改變用戶密碼的辦法就是: Echo 密碼 |passwd –stdin 用戶名】-------------------設置相同的密碼------------------------
說明:
echo -n 不換行輸出:
$echo -n "123"
$echo "456"
最終輸出 123456
而不是
123
456
echo -e 處理特殊字符:
\n 換行且光標移至行首 】
ok,就這麼一個簡單的腳本,就可以再系統裡批量生成賬號了。而且密碼跟賬號的名字一樣。
這就是for do done語句用法。
2、批量創建用戶
3.批量添加組用戶
添加一個新組為class1,然後添加屬於這個組的30個用戶,用戶名的形式為stdxx,其中xx從01到30
參考答案:
4.批量刪除用戶
實現自動刪除50個賬號的功能。賬號名為stud1至stud50。
參考腳本:
5.批量修改用戶密碼
舊密碼SSH主機信息old_info文件:
# ip user passwd port
192.168.18.217 root 123456 22
192.168.18.218 root 123456 22
修改密碼腳本:
生成新密碼new_info文件:
192.168.18.217 root n8wX3mU% 22
192.168.18.218 root c87;ZnnL 22
作為一個系統管理員,可能要經常的為機器添加用戶,可能是在一臺機器上添加很多用戶,也有可能是在很多機器上要添加同一個用戶。
基本上,批量添加用戶有兩種方式,一是用useradd + passwd命令配合腳本來添加,二是用newusers+chpasswd來添加。
第一個方法合適用來在不同的機器上添加不同的用戶,或者在同一臺機器上添加大量的規則命名的用戶。第二個方法可用於在同一臺機器上添加大量的用戶名單,如將A機上的用戶全部添加到B機上。
方法一:useradd + passwd命令配合腳本來添加
其中users.list文件內容如下:
johnson
lily
kelly
執行結果如下圖所示:
由腳本知,用戶的初始密碼被設為用戶名+123,大家可以按需修改使用。
方法二、使用while語句
#!/bin/bash
user_info=/root/adduser.txt
useradd=/usr/sbin/useradd
passwd=/usr/bin/passwd
cut=/bin/cut
while read lines
do
username=`echo $lines | $cut -f1 -d' '`
password=`echo $lines | $cut -f2 -d' '`
$useradd $username
if [ $? -ne 0 ];then
echo "$username cunzai,bunengxiugaimima"
else
echo $password | $passwd
fi
done < $user_info
其中adduser.txt存的文件為
username001 password001
username002 password002
username003 password003
username004 password004
方法三、newusers+chpasswd批量添加用戶
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批量添加用戶,此時用戶是沒有密碼的
[root@localhost ~]# newusers userfile.txt
2、執行命令/usr/sbin/pwunconv,將/etc/shadow產生的shadow密碼解碼,然後回寫到/etc/passwd中, 並將/etc/shadow的shadow密碼欄刪掉。這是為了方便下一步的密碼轉換工作,即先取消shadow password功能,關閉影子文件。
[root@localhost ~]# pwunconv
3、 用chpasswd批量修改密碼
[root@localhost ~]# chpasswd < userpwdfile.txt
4、最後不要忘了恢復影子文件,保證安全,您可以通過下面的命令來映射到 /etc/shadow文件名
[root@localhost ~]# pwconv
6、批量權限控制腳本
設計一個Shell程序,在/userdata目錄下建立50個目錄,即user1~user50,並設置每個目錄的權限,其中其他用戶的權限為:讀;文件所有者的權限為:讀、寫、執行;文件所有者所在組的權限為:讀、執行。
如下:
後面小編會分享更多Linux和DBA運營方面的乾貨,感興趣的朋友走一波關注哩~
閱讀更多 智能運維小講堂 的文章