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  删除用户密码

————————————————————   多积累、多总结、多练习

时间: 2024-10-25 04:30:11

Shell 脚本添加或删除用户及命令使用方法的相关文章

Shell脚本——添加和删除用户

写一个脚本admin_user.sh,其用法格式为: admin_user.sh --add USERLIST --del USERLIST -v|--verbose -h|--help 其中, -h|--help 选项,只能单独使用,用于显示帮助信息: -add 选项,用于添加用户,USERLIST为用户列表,用户之间用逗号隔开: -del 选项,用于删除用户,USERLIST为用户列表,用户之间用逗号隔开: 使用 -add 或者 --del 选项时,如果同时使用了-v 选项,显示详细的提示:

shell脚本之批量删除用户

1 #!/bin/bash 2 for i in {1..10};do 3 if id user$i &> /dev/null;then 4 userdel -r user$i &>/dev/null 5 echo "user$i is deleted" 6 else 7 echo "This user isn't exist" 8 fi 9 done 原文地址:https://blog.51cto.com/11342825/242496

Linux系统的rm命令太危险,一不小心就会删除系统文件。写一个shell脚本来替换系统的rm命令,

Linux系统的rm命令太危险,一不小心就会删除系统文件.写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时都要做一个备份,然后再删除. 假设有一个大的分区/data/,每次删除文件或者目录前,都要在/data/下面创建一个隐藏目录,以日期/时间命名,比如/data/.201802021054,然后把所有删除的文件同步到该目录下面,可以使用rsync -R把文件路径一同同步 答案: #!/bin/bash d=`date +%Y%m%d%H%M` read -p "Are y

centos添加和删除用户及 xxx is not in the sudoers file.This incident will be reported.的解决方法

1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy   //修改密码 Changing password for user tommy. New UNIX password:     //在这里输入新密码 Retype new UNIX password:  //再次输入新密码 passwd: all authentication tokens updated successfully.

在Linux中新增与删除用户可以使用命令:Useradd

在Linux中新增与删除用户可以使用命令:Useradd 我们先使用man命令理解一下Useradd的用法 新增与删除用户操作需要先获取高级用户权限 输入命令:sudo -i 确定后输入高级用户密码 使用Useradd新建一个用户Cindy 输入命令:useradd cindy 为用户创建主文件夹 输入命令:test –d /home/cindy 查看一下刚刚创建的用户cindy的信息 输入命令:grep cindy /etc/passwd /etc/shadow /etc/group 在/et

Ansible 从MySQL数据库添加或删除用户

mysql_user - 从MySQL数据库添加或删除用户. 概要 要求(在执行模块的主机上) 选项 例子 笔记 状态 支持 概要 从MySQL数据库添加或删除用户. 要求(在执行模块的主机上) MySQLdb的 选项 参数 需要 默认 选择 注释 append_privs (1.4 加入) no no yes no 将priv定义的权限附加到此用户的现有权限,而不是覆盖现有的权限. check_implicit_admin (1.3 加入) no no yes yes 检查mysql是否允许以

shell脚本汇总 2 删除创建时间超过32天的文件

shell脚本汇总 2 删除创建时间超过32天的文件 #!/bin/bash #date:2017-04-11 #version:clear_ballcloud_back_v1.0 #contents: removing the  /www/web/ballcloud_bakck/* , if the file is created above 32 day # cd /www/web #sum the size of already delete directory dirsize=`du -

批量添加或删除用户

========================================================================================== #!/bin/bash # if [ ! $# -eq 1 ];then echo './user.sh --add|--del' exit 1 fi case "$1" in --add) for i in {1..10} do if id user$i &>/dev/null ;then

shell 脚本实现乘法口诀表的两种方法——shell与C语言

shell 脚本实现乘法口诀表的两种方法--shell与C语言 话不多说直接给出代码: 1 #!/bin/bash 2 if [ $# -eq 0 ] //用于判断输入的参数个数为0 3 then 4 echo "welcome you!" 5 echo "this is a test with 2 methods to output arbitrarily mux table!" 6 else 7 echo "sorry you input invlia