shell指令碼 批量建立和刪除使用者

2021-09-20 15:15:19 字數 2381 閱讀 6414

一、編寫shell指令碼批量新增使用者

實現方法:判斷使用者是否存在,存在則返回錯誤提示,同時判斷使用者檔案是否存在,不存在則退出

1、建立新增使用者指令碼

[root@localhost ~]# vim useradd.sh 

#!/bin/bash

if [ $# -eq 0 ];then

echo "你沒有輸入任何檔案!"

exit 1

fiif [ ! -f $1 ];then

echo "輸入有誤!"

exit 2

fifor user in `cat $1` 

doid $user &>/dev/null

if [ $? -eq 0 ];then

echo "使用者$user已存在!"

else

useradd -s /sbin/nologin $user

echo "password" | passwd --stdin $user

echo "使用者$user建立成功。"

fidone

2、檢查指令碼並新增可執行許可權

[root@localhost ~]# sh -n useradd.sh 

[root@localhost ~]# chmod +x useradd.sh 

3、新增使用者

[root@localhost ~]# ./useradd.sh 

你沒有輸入任何檔案!

[root@localhost ~]# ./useradd.sh user.txt 

更改使用者 user1 的密碼 。

passwd: 所有的身份驗證令牌已經成功更新。

使用者user1建立成功。

更改使用者 user2 的密碼 。

passwd: 所有的身份驗證令牌已經成功更新。

使用者user2建立成功。

更改使用者 user3 的密碼 。

passwd: 所有的身份驗證令牌已經成功更新。

使用者user3建立成功。

更改使用者 user4 的密碼 。

passwd: 所有的身份驗證令牌已經成功更新。

使用者user4建立成功。

更改使用者 user5 的密碼 。

passwd: 所有的身份驗證令牌已經成功更新。

使用者user5建立成功。

二、刪除使用者

1、編寫刪除指令碼

[root@localhost ~]# vim userdel.sh

#!/bin/bash

#userdel

if [ $# -eq 0 ];then

echo "你沒有輸入檔案!"

exit 1

fiif [ ! -f "$1" ];then

echo "輸入有誤!"

exit 2

fifor user in `cat $1`

doid $user &>/dev/null

if [ $? -eq 0 ];then

userdel -r $user &>/dev/null

echo "刪除$user成功!"

else

echo "使用者不存在!"

fidone

[root@localhost ~]# sh -n userdel.sh 

[root@localhost ~]# chmod a+x userdel.sh 

2、刪除使用者

[root@localhost ~]# ./userdel.sh 111

輸入有誤!

[root@localhost ~]# ./userdel.sh user.txt 

刪除user1成功!

刪除user2成功!

刪除user3成功!

刪除user4成功!

刪除user5成功!

[root@localhost ~]# ./userdel.sh user.txt 

使用者不存在!

使用者不存在!

使用者不存在!

使用者不存在!

使用者不存在!

while read user

doid $user &>/dev/null

if [ $? -eq 0 ];then

echo "使用者$user已存在!"

else

useradd -s /sbin/nologin $user

echo "password" | passwd --stdin $user

echo "使用者$user建立成功。"

fidone < $1

Shell指令碼 批量建立使用者

格式為 使用者名稱 空格 tab 密碼 就是將資料分為兩列 users.txt文字內容示例 新建文字命令 touch create users.sh 編譯文字命令 vim create users.sh bin bash 批量建立使用者 while read line do 讀取line列表中的資料...

shell指令碼批量建立使用者

bin bash date date f t user file user.txt echo color 如果使用者檔案存在並大小大於0就備份 if s user file then mv user file bak echo color green user file exist,rename b...

使用shell指令碼批量建立使用者

1 使用for語句批量新增與刪除特定使用者 for語句的操作物件為使用者指定名稱的變數,並通過in關鍵字為該變數預先設定了乙個取值列表,多個取值之間以空格進行分隔。為於do done之間的命令序列稱為迴圈體。新增使用者 root localhost vim list.txt 準備乙個使用者名稱列表檔...