当前位置: 首页 > article >正文

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

使用场景

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

Linux版本

脚本代码

#!/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

执行效果


http://www.kler.cn/a/379324.html

相关文章:

  • 真·香!深度体验 zCloud 数据库云管平台 -- DBA日常管理篇
  • 【网络安全】开发中存在的重定向与Referer问题
  • 批量修改图片大小+删除空白页+手写签名
  • pycharm调用方法时显示为灰色
  • 机器学习:我们能用机器学习来建立投资模型吗
  • Php实现钉钉OA一级审批,二级审批
  • SpringBoot抗疫物资管理系统:技术架构解析
  • 使用 async/await 时未捕获异常的问题及解决方案
  • spark集群模式-standalone的配置和使用
  • EJEAS S2滑雪对讲机全球发布会圆满举办,为滑雪市场注入新活力
  • 在Ubuntu上安装TensorFlow与Keras
  • Golang | Leetcode Golang题解之523题连续的子数组和
  • WPF中如何简单的使用MvvmLight创建一个项目并进行 增删改查
  • 【屏幕驱动移植记录】
  • C#如何封装将函数封装为接口dll?
  • 集成学习(2)
  • 前端学习-盒子模型(十八)
  • TensorRT-LLM笔记
  • 数据结构:总览
  • 九,数据类型存储
  • Kubernetes——part9-2 kubernetes集群java项目上云部署
  • 大模型微调
  • ubuntu离线部署ollama
  • Java毕业设计-基于微信小程序的校园二手物品交易系统的实现(V2.0)
  • docker build cache 占用磁盘空间很高
  • SQL,力扣题目1747,应该被禁止的 Leetflex 账户