【shell 练习4】编写Shell用户管理脚本(二)
一、创建、删除、查看用户,随机生成八位数密码
#!/bin/bash
#Author:yanglt
#!/bin/bash
#Author:yanglt
#Blog:https://www.cnblogs.com/yangleitao/
#Time:-- ::
#Version:V1. function wait()
{
echo -n '3秒后继续'
for ((i=;i<;i++))
do
echo -n "...";sleep
done
echo
}
in_check(){
expr $num1 + >/dev/null >&
if [ $? -ne ];then
echo "please input number"
exit
fi
}
empty_check(){
if [ ! $name ];then
echo "The input cannot be empty"
continue
fi
}
while true
do
cat<<EOF
#################################
.create user
.delete user
.query user
.exit
################################
EOF
read -p "Please input num:" num
in_check
case "$num" in
)
read -p "please input name:" name
empty_check
grep -w $name /etc/passwd >/dev/null
if [ $? -eq ];then
echo -e "$name already exist"
exit
else
useradd -s /bin/bash $name
echo -n `mkpasswd -l ` |tee -a ${name}Passwd.txt|passwd --stdin $name
echo -e "$name create successful"
fi
;;
)
read -p "please input delete name:" name
empty_check
grep -w $name /etc/passwd >/dev/null
if [ $? -ne ];then
echo -e "$name is not exist"
exit
else
userdel -r $name
rm -rf ${name}Passwd.txt
echo -e "$name delete successful"
fi
;;
)
read -p "please input need query name:" name
empty_check
grep -w $name /etc/passwd >/dev/null
if [ $? -eq ];then
echo `grep -w $name /etc/passwd`
echo -e `awk '{print "Password:",$0}' ${name}Passwd.txt`
else
echo -e "$name is not exist"
continue
fi
;;
*)
exit
;;
esac
wait
done
二、用户管理改进
[root@localhost ~]# cat UserManger03.sh
#!/bin/bash
#Author:yanglt
#!/bin/bash
#Author:yanglt
#Blog:https://www.cnblogs.com/yangleitao/
#Time:-- ::
#Version:V1.
. /etc/init.d/functions #调用内部函数action function wait()
{
echo -n '2秒后继续'
for ((i=;i<;i++))
do
echo -n "...";sleep
done
echo
}
in_check(){
expr $num1 + >/dev/null >&
if [ $? -ne ];then
echo "please input number"
exit
fi
}
empty_check(){
if [ ! $name ];then
echo "The input cannot be empty"
continue
fi
}
makedir(){
dir=/yanglt/
[ ! -n $dir ]&& mkdir $dir
} action_check(){
if [ $? -eq ];then
action "useradd $name successful" /bin/true
else
action "useradd $name " /bin/false
fi
}
while true
do
cat<<EOF
#################################
.create user
.delete user
.query user
.exit
################################
EOF
read -p "Please input num:" num
in_check
case "$num" in
)
read -p "please input name:" name
empty_check
pass=`mkpasswd -l `
grep -w $name /etc/passwd >/dev/null
if [ $? -eq ];then
echo -e "$name already exist"
exit
else
makedir
useradd -s /bin/bash $name &>/dev/null
echo $pass|passwd --stdin $name &>/dev/null
action_check
echo -e "$name\t$pass" >> /yanglt/Passwd.txt
fi
;;
)
read -p "please input delete name:" name
empty_check
grep -w $name /etc/passwd >/dev/null
if [ $? -ne ];then
echo -e "$name is not exist"
exit
else
userdel -r $name
sed -i "/^$name$/d" /yanglt/Passwd.txt #进一步了解精确匹配,和变量匹配
echo -e "$name delete successful"
fi
;;
)
read -p "please input need query name:" name
empty_check
grep -w $name /etc/passwd >/dev/null #-w 精确匹配
if [ $? -eq ];then
grep -w "$name" /etc/passwd
grep -w "$name" /yanglt/Passwd.txt
else
echo -e "$name is not exist"
continue
fi
;;
*)
exit
;;
esac
wait
done
[root@localhost ~]#
【shell 练习4】编写Shell用户管理脚本(二)的更多相关文章
- linux系统用户管理(二)
5.组命令管理**组账户信息保存在/etc/group和/etc/gshadow两个文件中 /etc/group 组账户信息 [root@localhost ~]# head -2 /etc/grou ...
- Identity用户管理入门二(显示用户列表)
在Controllers中新建AccountController,并在构造方法(函数)中注入SignInManager,UserManager UserManager 用户管理(注册,查找,修改, ...
- 【shell 练习3】用户管理脚本(一)
一.创建十个用户,密码为八位 [root@localhost ~]# cat UserManger02.sh #!/bin/bash . /etc/init.d/functions [ $UID -n ...
- PC Server远程管理卡用户管理脚本实现
1.IPMI工作原理图: 2.脚本实现流程图: 3.适配服务器机型: 4.演示效果: 5.实现代码: #!/usr/bin/env bash # Author : JACK ZHAO # Date : ...
- 转自ruby迷: 使用Net::SSH和Net::SCP编写Linux服务器管理脚本
试了一下perl下安装ssh模块,整了半天linux/window上都装不上,各依赖模块的版本总是匹配不上,后改了一下思路,用ruby吧 Net::SSH和Net::SCP是两个Ruby操作SSH的g ...
- linux用户管理(二)
最简单的加入用户useradd 用户名这样的命令不好,因为会新建一个组为这个用户. 这里提到一个问题,为什么普通用户没有/etc/shadow的写权限却能修改自己的密码呢. 因为 /user/bin/ ...
- Linux 用户管理(二)
一.groupadd --create a new group 创建新用户 -g --gid GID 二.groupdel --delete a group 三.passwd --update us ...
- linux下的用户管理(二)
创建帐号: 手工创建-> 1.在/etc/passwd中添加一条记录 2.创建用户主目录 3.在用户的家目录下设置默认的配置文件 4.设置用户初始口令 命令创建-> useradd或add ...
- 编写shell管理脚本(二)
8.1 先测试“/etc/vsftpd”.“/etc/hosts”是否为目录,并通过“$?”变量查看返回状态值,据此判断测试结果.[root@localhost ~]# [ -d /etc/vsft ...
随机推荐
- 5.同步关键字(synchronized)
同步关键字(synchronized): 多线程给我们提供方便的时候,也给整个编程增加了难度,尤其是对临界资源的控制,尤为重要. 一个在操作系统课上,老掉牙的事例,就把这种情况解释的明明白白. 一对夫 ...
- sudo命令: 在其他用户下操作root用户权限
一. 场景: 在某个远程服务器 A 上,用 账户1 登陆, 想要在root用户的目录下创建一个 .sh文件, 如果直接 用 touch test.sh 创建,会提示权限不足 此时可以用sudo命令: ...
- Swift_属性
Swift_属性 点击查看源码 class DataImporter { var fileName = "data.txt" init() { print("初始化&qu ...
- struts2-笔记
文件下载http://struts.apache.org/download.cgi 第一步导入jar 包 在lib中有jar 包,不能把这些都导入到项目中 在apps 目录里面,找到实例程序,程序中直 ...
- DOCTYPE导致MyEclipse无法正常格式化HTML的问题
今天遇到在JSP代码中Ctrl+F无法正常格式化HTML代码,经过排查是DOCTYPE的原因. 之前写的是: <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...
- Linux 学习第四天
Linux学习第四天 一.常用命令 1.tar (压缩.解压) A.添加压缩包 tar czvf 压缩包名称.tar.gz 源文件 B.添加压缩包 tar cjvf 压缩包名称.tar.bz2 ...
- JavaScript的兼容小坑和调试小技巧
JavaScript作为一种弱类型编程语言,入门简单,只要稍微注意一下IE方面的兼容性,就可以很好的使用它. 本文主要是对IE兼容的小坑和调试的小技巧进行举例分析,并给出解决方法. 1.var str ...
- qq空间认证教程:借助企鹅媒体平台认证QQ公众空间
年轻人,最近你是否眼看众多新开的QQ空间认证成功,自己却一筹莫展,而心情极度狂躁焦虑,别急,以下是详细教程,不能保证100%,但老夫已认证成功几个号. 不废话,直接上流程: 方法大致有2种: 1. 通 ...
- php的基础知识(四)
14.数组: 索引数组: 下标就是数字开始的. $arr = ['a','b','c',1,2,3]; 关联数组: $arr = [ 'a' => 'b', 'c' => 'd'; 'e' ...
- 如何用SQL语句处理缓慢变化维(渐变维,拉链表)SCD-2?
假设有一张居民维表,需要记录居民状态的变更历史,根据Kimball建模理论,设计居民维表如下: 另外在ODS中有居民信息的每日快照表(每天都记录一份居民的全量信息):O_USERINFO 如何将ODS ...