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

FreeeLinux發表於2017-12-01

建立使用者

#!/bin/sh

#設定變數name接收第一個引數(要建立的使用者名稱),$n表示第n個引數,且=兩邊不能有空格
name=$1
#設定變數pass接收第二個引數(要為其設定的密碼)
pass=$2

#echo語句會輸出到控制檯,${變數}或者 $變數 表示變數代表的字串
echo "you are setting username : ${name}"
echo "you are setting password : $pass for ${name}"

#新增使用者$name,此處sudo需要設定為無密碼,後面將會作出說明
sudo useradd $name

#如果上一個命令正常執行,則輸出成功,否則提示失敗並以非正常狀態退出程式
# $?表示上一個命令的執行狀態,-eq表示等於,[ 也是一個命令
# if fi 是成對使用的,後面是前面的倒置,很多這樣的用法。
if [ $? -eq 0 ];then
   echo "user ${name} is created success!"
else
   echo "user ${name} is created failed!!!"
   exit 1
fi
#sudo passwd $name會要求填入密碼,下面將$pass作為密碼傳入
#echo $pass | sudo passwd $name --stdin  &> /dev/null

#ubuntu系統不支援passwd的stdin引數,所以要使用chpasswd命令
sudo echo "$name:$pass" | chpasswd
if [ $? -eq 0 ];then
   echo "${name}'s password is set success!"
else
   echo "${name}'s password is set failed!!!"
fi

if [ -d /home/$name ]
then
   echo "/home/$name is already exist!"
   exit 1
else
    sudo mkdir /home/$name
    sudo chown -R $name /home/$name
fi

批量建立使用者

#!/bin/bash
i=1
groupadd group1
while [ $i -le 30 ] 
do
if [ $i -le 9 ] ; then
username=user0$i
else
username=user$i
fi
useradd $username
mkdir /home/$username
chown -R $username /home/$username
chgrp -R group1 /home/$username
i=$(($i+1))
done

相關文章