1. 程式人生 > >Shell 腳本添加或刪除用戶及命令使用方法

Shell 腳本添加或刪除用戶及命令使用方法

shell 腳本 用戶管理shell

Shell 要求:寫一個腳本

一、添加10個用戶user1到user10,密碼同用戶名,,若用戶存在,但要求只有用戶不存在的情況下才能添加,格式為/useradd.sh

解答思路:1、使用for 循環語句添加用戶 user1 到user 10

2、判斷用戶是否存在,若存在,則echo 用戶已存在 ,若不存在,添加用戶 ,並設置密碼與用戶名相同 。

腳本: vim useradd.sh 並賦予+x權限、

#!/bin/bash
#
for I in{1..10};do
     if id user$I >>/dev/null;then
        echo “user user$I   Exits”
     else
        useradd user$I &> /dev/null
        echo "User user$I add sucefull"
        echo user$I | passwd --stdin user$I &>/dev/null
        echo "The user user$I passwd is user$I"
     fi
done

二、刪除戶user1到user10,,若用戶不存在,則echo 用戶不存在,若用戶存在 ,則刪除。格式為/userdel.sh

思路: 1、判斷用戶是否存在 ,若存在,則刪除 ;若不存在,則顯示該用戶不存在

2、使用for 循環語句

腳本: vim userdel.sh,並賦予+x權限

#!/bin/bash
#
for I in{1..10};do
     if id user$I >>/dev/null;then
        userdel -r user$I &> /dev/null
        echo "User user$I Del successful"
     else
        echo "user$I NOT exits."
     fi
done

三、擴展以上腳本,若add則添加用戶user1 到 user10 ,若del 則刪除用戶user1 到user10。格式如 : admin.sh --add |--del

思路: 1、若未輸入任意參數,則輸出格式錯誤並顯示正確的輸入格式,後exit

2、判斷輸入的參數是否為--add ,然後判斷該用戶名是否存在 ,若存在 ,則顯示存在 ;若不存在 ,則添加user1 到user10 10個用戶 ,並配置密碼與用戶名相同 。

3、判斷輸入的參數是否為--del ,然後判斷該用戶名是否存在 ,若存在 ,則刪除操作 ,並echo 顯示刪除成功 ;若不存在 ,則顯示該用戶不存在。

4、判斷輸入的參數為其他 ,則顯示命令錯誤

腳本:admin.sh ,並賦予+x權限

#!/bin/bash
#
if [ $# -lt 1 ];then    #未輸入參數
  echo "Usage : useradd.sh [opention]"
  exit 7
fi
if [ $1 == ‘--add‘ ];then    #輸入的第一個參數為
  for I in {1..10};do
    if id user$I &>/dev/null ;then
       echo "user user$I Exit"
    else
       useradd user$I
       echo user$I |passwd --stdin user$I &>/dev/null
       echo "user user$I add successfull"
     fi
  done
elif [ $1 == ‘--del‘ ];then
  for I in {1..10};do
    if id user$I &>/dev/null ;then
        userdel -r user$I &>/dev/null
       echo "userdel user$I  successful"
    else
      echo "user user$I not Exit"
    fi
 done
else
  echo "Exit"
  exit 10
fi

三、再次擴展以上腳本,通過輸入的參數,來實現用戶的添加與刪除 。格式如: admin2.sh --add|--del|--help wli,jerry,tom,hello,hi

思路: 1、把輸入的第二個參數轉換成列表方式 。

2、若第一個參數為--help ,則顯示幫助命令

3、其他思路依照上個示例

腳本 admin2.sh ,並賦予+x權限

#!/bin/bash
#
if [ $# -lt 1 ];then    
  echo "Usage:adminuser.sh --add|--del|--help [opentions]"
  exit 7
fi
if [ $1 == ‘--add‘ ];then
 for USER in `echo $2|sed ‘s/,/ /g‘`;do
   if id $USER &>/dev/null;then
      echo "$USER exit"
   else
      useradd $USER &>/dev/null
      echo $USER |passwd --stdin $USER &>/dev/null
      echo "Add $USER finished."
   fi
 done
elif [ $1 == ‘--del‘ ];then
  for USER in `echo $2|sed ‘s/,/ /g‘`;do
   if id $USER &>/dev/null;then
      userdel -r $USER &>/dev/null
      echo "Del $USER finished"
   else
      echo "$USER NOT exit"
   fi
   done
elif [ $1 == ‘--help‘ ];then
  echo "Usage :a.sh --add USER1,USER2,…|--del USER1,USER2,…|--help"
else
 echo "UNKnown ATGIN"
fi


命令格式:

1、判斷語句格式 :

單if分支格式:

if判斷條件;then

fi

雙分支結構:

if 判斷條件;then

else

fi

多分支結構:

if 判斷條件;then

elif then

elif then

else

fi

2、循環語句格式

for 變量 in 列表 :do

循環體

done

遍歷 完成後,退出

生成列表:echo $2 |sed ‘s/,/ /g‘

整數列表:

{1..100} 1到100的整數

seq [起始數 [步進長度]] 結束數

3、添加/刪除用戶格式

# useradd 創建用戶

-u UID

-g GID(基本組)

-G GID.... (附加組)

-c “COMMENT” 註釋信息

-d 指定家目錄

-s 指定shell 路徑 /etc/shells :指定了當前系統中可用的安全shell

-m -k 強制為用戶創建家目錄 ,並把shell 文件進行拷貝到家目錄

-M /etc/login.defs ,不為用戶創建家目錄

-r 添加系統用戶

#userdel 刪除用戶

若不加任何選項,默認不刪除用戶的家目錄

-r 刪除 用戶同時 ,刪除家目錄

4、passwd 使用格式

#passwd [USERNAME] 修改用戶密碼

--stdin

示例: echo "redhat" | passwd --stdin user3

-l lock

-u unlock

-d 刪除用戶密碼


本文出自 “Wish_亮” 博客,請務必保留此出處http://wishliang.blog.51cto.com/11439802/1955964

Shell 腳本添加或刪除用戶及命令使用方法