shell腳本編寫用戶管理系統


 

 作業要求:

輸出如圖所示的圖形,編寫代碼可以實現所有的要求

 

#! /bin/bash

#這是創建用戶管理系統的腳本

#Date:2019年9月3號

#filename:user.sh

#用到了判斷、循環,思路很清晰,中等難度

 

#自己寫一個這樣的框

echo "
//===========================\\
|                      用戶管理系統                              |
---------------------------------------------------
|                      1、創建用戶                               |
|                      2、刪除用戶                               |
|                      3、鎖定用戶                               |
|                      4、解鎖用戶                               |
|                      5、查看用戶                               |
|                      6、退出腳本                               |
---------------------------------------------------
"

#寫一個循環

while :
do

#執行操作,輸入你要操作的序號(1、2、3、4、5、6)

read -p "請輸入你的操作選擇:" user

#創建用戶,user輸入1時,寫一個if條件語句

if [ $user -eq 1 ]
then
read -p "請輸入你的用戶名:" name

#判斷輸入的用戶名是否存在,若存在可以查看用戶id,該命令能夠執行,返回值1,說明用戶已存在不能創建了;若用戶不存在,就無法執行該命令,返回值為0,就可以創建用戶
id $name &> /dev/null
if [ $? -eq 0 ]
then
echo "******用戶已存在!******"
else
read -p "請輸入密碼:" mi
useradd $name && echo "$mi" | passwd --stdin $name &> /dev/null
echo "******用戶創建成功!******"
fi
fi

#刪除用戶,先查看用戶存不存在,還是查看用戶id看命令執行后的返回值,若返回值為0說明用戶存在,執行刪除操作;若返回值為1說明用戶不存在

if [ $user -eq 2 ]
then
read -p "請輸入你的用戶名:" name
id $name &> /dev/null
if [ $? -eq 0 ]
then
userdel -r $name
echo "******刪除用戶成功!******"
else
echo "******用戶不存在!******"
fi
fi

#鎖定用戶
if [ $user -eq 3 ]
then
read -p "請輸入你的用戶名:" name

#從/etc/passwd文件中過濾你要操作的用戶名,從找出的用戶中過濾出‘!’,若該命令過濾出‘!’了,說明該用戶已被鎖定
grep $name /etc/shadow | grep '!' &> /dev/null

if [ $? -ne 0 ]
then
passwd -l $name &> /dev/null
echo "******已成功鎖定用戶!******"
else
echo "******鎖定用戶不成功!******"
fi
fi

#解鎖用戶
if [ $user -eq 4 ]
then
read -p "請輸入你的用戶名:" name
grep $name /etc/shadow | grep '!' &> /dev/null

if [ $? -eq 0 ]
then
passwd -u -f $name &> /dev/null
echo "******解鎖用戶成功!******"
else
echo "******鎖定用戶不成功!******"
fi
fi

#查看用戶,先查看用戶存不存在,再根據命令的返回值查看用戶
if [ $user -eq 5 ]
then
read -p "請輸入你的用戶名:" name
grep $name /etc/passwd &> /dev/null

if [ $? -eq 0 ]
then
finger $name
echo "******查看用戶成功!******"
else
echo "******用戶不存在!******"
fi
fi

#退出腳本
if [ $user -eq 6 ]
then

exit
fi

done


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM