创建新用户并且赋予sudo权限shell脚本
话不多说直接看代码:
交互式脚本($1=用户名 $2=密码) sh user_system.sh zhangsan 123123
#!/bin/bash
#创建用户并设置密码
name=$1
pass=$2
#echo "you are setting username : ${name}"
#echo "you are setting password : $pass for ${name}"
#调用name变量创建用户
useradd $name
if [ $? -eq 0 ];then
echo -e "\033[32m用户${name}:创建成功\033[0m"
else
echo -e "\033[31m用户${name}:创建失败\033[0m"
exit 1
fi
echo $pass | passwd $name --stdin &>/dev/null
if [ $? -eq 0 ];then
echo -e "\033[32m用户${name}:密码设置成功!!!"
else
echo -e "\033[31m用户${name}:密码密码设置失败\033[0m"
fi
#追加用户至sudoers设置sudo免密调用
sed -i '/^root.*ALL=(ALL).*ALL/a\'$name'\tALL=(ALL) \tNOPASSWD:ALL' /etc/sudoers
names=`cat /etc/sudoers | grep -w $name| wc -l`
if [ $names -eq 0 ];then
echo -e "\033[31m用户$name:sudoers修改失败,请检验\033[0m"
else
echo -e "\033[32m用户$name:sudoers修改成功\033[0m"
fi
#使用root用户修改创建好的用户的.bashrc文件,并且提前创建用户工作目录"workspace"!
#export PS1='[\[\e[36;40m\]\u@\h \w]$ '
cd /root
data=`date +%Y年%m月%d日%k点%M分%S秒`
LANG=`cat .bashrc | egrep -w export | grep -w PS1 | wc -c `
if [ $LANG -eq 97 ];then
echo "$data" >>/tmp/user_system.log
else
cat << EOF >> .bashrc
# User specific environment
export PS1='\[\e[31;1m\][\[\e[33;1m\]\u\[\e[31;1m\]@\h \[\e[31;40m\]\w\[\e[31;40m\]]\$\[\e[0m\]\] 'EOF
fi
cd /home && cd $name
mkdir workspace
cat << EOF > .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
# Basic envs
export LANG="en_US.UTF-8"
export PS1='\[\e[31;1m\][\[\e[33;1m\]\u\[\e[31;1m\]@\h \[\e[31;40m\]\w\[\e[31;40m\]]\$\[\e[0m\]\] '
export WORKSPACE="workspace"
export PATH=$name/bin:$PATH
# Default entry folder
cd ~
cd \$WORKSPACE
EOF
cd /root
echo -e "\033[33m所创建账号为:$1 \033[0m"
echo -e "\033[33m所创建账号密码为:$2 \033[0m"
bash