Shell脚本:判断用户和用户组是否已经存在/创建用户和用户组

通常作为一个应用程序的部署脚本,开始的第一项工作是为当前应用创建一个专用(dedicated)的用户和用户组。这个脚本很简单,这里贴一个参考样本:

#!/bin/sh
user=test_user
group=test_group

#create group if not exists
egrep "^$group" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
    groupadd $group
fi

#create user if not exists
egrep "^$user" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
    useradd -g $group $user
fi

对于添加用户来说,我们还可以使用id命令来判断一个用户是否存在,这样建立一个用户的脚本可以这样写:

#create user if not exists
id $user >& /dev/null
if [ $? -ne 0 ]
then
   useradd -g $group $user
fi

但是,使用id命令不能判断一个用户组是否已经存在!至于使用id -g $user只能给出一个已存在的用户所属的用户组是什么,并不能判断一个用户组是否已经存在,所以,为了使用脚本的处理方式统一,我们统一使用从/etc/group和/etc/passwd文件中进行查找的方式来判断一个用户组和用户是否存在!

时间: 2024-08-09 16:13:58

Shell脚本:判断用户和用户组是否已经存在/创建用户和用户组的相关文章

Linux shell脚本判断服务器网络是否可以上网

Linux shell脚本判断网络畅通 介绍 在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态 我们可以通过curl来访问 www.baidu.com,从而判断服务器网络状态是否可以畅通的 网络状态判断 #!/bin/bash #检测网络链接畅通 function network() { #超时时间 local timeout=1 #目标网站 local target=www.baidu.com #获取响应状态码 local

shell脚本编程《linux下kvm虚拟机的创建、开启、显示、停止、重置》

Shell脚本编程--案例一 编程要求: 1.创建vm-ctl脚本,在/bin/下 2.实现功能:创建虚拟机.创建虚拟机快照.开启虚拟机.显示虚拟机.停止虚拟机.重置虚拟机. 脚本实现预期结果: sh vm-ctl create|nodecreate|start|view|stop|reset vmname 实现脚本如下: #!/bin/bash case "$1" in create)            ##创建虚拟机 echo create vm $2 ... virt-ins

Shell脚本:推断用户和用户组是否已经存在/创建用户和用户组

通常作为一个应用程序的部署脚本,開始的第一项工作是为当前应用创建一个专用(dedicated)的用户和用户组.这个脚本非常easy.这里贴一个參考样本: #!/bin/sh user=test_user group=test_group #create group if not exists egrep "^$group" /etc/group >& /dev/null if [ $? -ne 0 ] then groupadd $group fi #create use

Shell脚本判断IP是否合法性

运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP.邮件地址等.那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考. 思路:IP由四位数字组成,以点分割,每个字段不能大于255,必须符合这种格式 方法1: function check_ip() {     IP=$1     VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4

脚本——倒计时,ping,创建用户,作业:ssh并创建用户(未能实现功能)

脚本一 要求:ping同一网段下1到10号机,若ping通,输出up,否则输出down #!/bin/bashfor((i=0;i<=10;i++))doping -c1 -w1 172.25.254.$i &> /dev/null && echo "$i is up" || echo "$i is down"done 脚本二 要求:一分十秒的倒计时 #!/bin/bashMIN=1for ((SEC=10;SEC>=0;S

Oracle 数据库登录、用户解锁、改密码、创建用户授权操作

一.数据库登录1.常用账户: 管理员: sys主要练习操作用户: scott2.测试环境是否配置成功: 1.命令窗口 win+R -> cmd(以管理员身份运行) - > sqlplus ->输入用户名与密码 用户名:sys 口令: 自己设置的密码 as sysdba(as sysdba 是给它管理员权限),(输入密码时看不见的) 2.或找到 下面的文件夹,打开SQL Plus 二.一些基本操作切换用户登陆命令: 重新登录scott用户,并指定登录的数据库名称 conn scott/ 密

Linux shell脚本 判断用户输入的文件类型

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 编写一个脚本,从键盘输入一个文件,判断它是否存在,如果存在就判断它是什么类型的文件:并用对应的颜色输出 脚本如下: #!/bin/bash #function:test file type

shell脚本判断执行用户

在脚本中,判断执行者是否为root. 判断方法1, #!/bin/bash if [ `whoami` != "root" ];then echo " only root can run me" exit 1 fi  判断方法2(但是用sudo执行回报脚本有语法错误,不知为何,有知道的高手请回复我). if [ $UID == 0 ];then echo "you are root" fi

shell脚本判断语句和循环语句

if判断语句 exit跳出判读语句 不加exit的结果 read -n(不换行) 判断是否输入的是数字 read age[[ $age =~ ^[0-9]+$ ]]if [ $? -ne 0 ]; then echo "你输入的不是一个数字" exit 1fi case判断语句 #!/bin/bashcat <<EOF########################################### 欢迎学习shell编程 #######################