shell脚本案例:创建用户和组

使用场景

在部署程序时,往往首要任务是创建用户和组。有的程序可能用到的组、用户比较多;且不知道服务器环境是否已经有了所需的组和用户。所以针对这个情况,根据Oracle RAC部署时的实际情况写了个脚本。

Linux版本

脚本代码

bash 复制代码
#!/bin/bash
#组
echo -e  "\e[32m************************ \e[0m"
echo -e  "\e[32m组信息\e[0m"
echo -e  "\e[32m************************ \e[0m"

group=(oinstall dba oper asmadmin asmdba asmoper)
for i in "${group[@]}"
do
grep "^$i" /etc/group >& /dev/null
  if [ $? != 0 ];
         then
                 if [ $i = "oinstall" ];
                        then  groupadd -g 5001 oinstall; echo "oinstal组已添加"
                 elif [ $i = "dba" ];
                        then groupadd -g 5002 dba; echo "dba组已添加"
                 elif [ $i = "oper" ];
                        then groupadd -g 5003 oper; echo "oper组已添加"
                 elif [ $i = "asmadmin" ];
                        then groupadd -g 5004 asmadmin; echo "asmadmin组已添加"
                 elif [ $i = "asmoper" ];
                        then groupadd -g 5005 asmoper; echo "asmoper组已添加"
                 elif [ $i = "asmdba" ];
                        then groupadd -g 5006 asmdba; echo "asmdba组已添加"
                 fi
          else
              echo "$i组已存在"
        fi
done


echo -e  "\e[32m************************ \e[0m"
echo -e  "\e[32m用户信息\e[0m"
echo -e  "\e[32m************************ \e[0m"


user=(grid oracle)
for i in "${user[@]}"
do
  grep "^$i" /etc/passwd >& /dev/null
  if [ $? != 0 ];
    then
            if [ $i = grid ]
                  then useradd -u 6002 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid ;  echo grid | passwd --stdin grid ; echo "grid用户已添加"
                elif  [ $i = oracle ]
                  then useradd -u 6001 -g oinstall -G dba,asmdba,oper oracle; echo oracle | passwd --stdin oracle; echo "oracle用户已添加"
                fi
        else
                echo "$i用户已存在"
  fi
done

执行效果

相关推荐
Do_GH2 小时前
【Linux】07.Ubuntu开发环境部署
linux·运维·ubuntu
CHH32133 小时前
在 Mac/linux 的 VSCode 中使用Remote-SSH远程连接 Windows
linux·windows·vscode·macos
tryCbest3 小时前
Linux使用Docker部署项目后期更新
linux·运维·docker
-雷阵雨-3 小时前
MySQL——桥梁JDBC
数据库·mysql·oracle
亿坊电商3 小时前
在PHP框架里如何进行数据库连接?
数据库·oracle·php
孤独得猿3 小时前
聊天室项目开发——etcd的安装和使用
linux·服务器·c++·etcd
siriuuus3 小时前
Linux Tomcat 简单使用及 Nginx 反向代理
linux·nginx·tomcat
呱呱巨基4 小时前
vim编辑器
linux·笔记·学习·编辑器·vim
竹等寒4 小时前
Linux-网络安全私房菜(二)
linux·服务器·web安全
YuCaiH4 小时前
Linux文件处理
linux·笔记·嵌入式