Shell 脚本添加或删除用户及命令使用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/1955966

以上是关于Shell 脚本添加或删除用户及命令使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Shell 脚本添加或删除用户及命令使用方法

shell脚本:批量添加用户和删除用户

再读:Linux系统命令及Shell脚本实践指南

linux--shell编程使用脚本选项及组合条件测试

shell脚本用户管理程序

shell脚本简介及常用文本编辑命令