新建一個用戶

我們知道在LINUX中 用戶的配置文件 主要有 /etc/group  /etc/passwd /etc/shadow

其中/etc/group

NUID=$[`cut -d: -f3 /etc/passwd | grep -v "65534" | sort -n | tail -1`+1]
NGID=$[`cut -d: -f3 /etc/group | grep -v "65534" | sort -n | tail -1`+1]
TODAY=$[`date +"%s"`/86400]

usage() {
  echo -e "\033[31mUsage:\003[0m `basename $0` [-u UID] username"
}

while getopts ":u:" SWITCH ; do
  case $SWITCH in
    u)
    NEWUID=$OPTARG
    cut -d: -f3 /etc/passwd | grep "^$NEWUID" &> /dev/null  && echo "UID exists." && exit 1
    ;;
   \?)
    usage
    exit 1
    ;;
  esac
done

shift $[$OPTIND-1]

if ! cut -d: -f1 /etc/group | grep "^$1" &> /dev/null; then
  echo "$1:x:$NGID:" >> /etc/group
else
  echo "The GROUP $1 exists."
  exit 1
fi

if ! cut -d: -f1 /etc/passwd | grep "^$1" &> /dev/null ; then
  echo "$1:x:${NEWUID:=$NUID}:$NGID::/home/$1:/bin/bash" >> /etc/passwd
  echo "$1:!!:$TODAY:0:99999:7:::" >> /etc/shadow
else
  echo "The user $1 exists."
  exit 1
fi

# home directory
cp -r /etc/skel /home/$1
chown -R $1:$1 /home/$1
chmod -R go=--- /home/$1

#echo '123456' | passwd --stdin $1 &> /dev/null

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章