利用bash脚本函数执行创建用户和组,并设置sudo权限等

示例:利用bash脚本函数执行创建用户和组,并设置sudo权限等:
Linux服务器设置历史命令记录,及命令执行的时间:
sudo echo 'HISTTIMEFORMAT="%F %T whoami: " ' >>/etc/bashrc
sudo echo 'HISTTIMEFORMAT="%F %T whoami: " ' >>/etc/profile
source /etc/bashrc
source /etc/profile
当前用户所有输入的命令都被记录在 ~/.bash_history 文件中,为了防止敏感信息泄露,可以执行 history -c && history -w 或 history -c && > ~/.bash_history 命令清除这些历史记录。

#! /bin/bash
## author:xiongzaiqiqren

## 设置历史命令记录
function setHisttimeFormat(){
  echo "setHisttimeFormat Start."

  if [ `grep -ciE "HISTTIMEFORMAT=" /etc/bashrc` -ne '0' ];then
    echo "/etc/bashrc The file checked, skipped."
  else
    sudo echo 'HISTTIMEFORMAT="%F %T `whoami`: " ' >>/etc/bashrc
    source /etc/bashrc
  fi

  if [ `grep -ciE "HISTTIMEFORMAT=" /etc/profile` -ne '0' ];then
    echo "/etc/profile The file checked, skipped."
  else
    sudo echo 'HISTTIMEFORMAT="%F %T `whoami`: " ' >>/etc/profile
    source /etc/profile
  fi

  echo "setHisttimeFormat Completed."
}
# setHisttimeFormat

## 创建用户(用户名,密码)
function CreateUser(){
  name=$1
  nameGroup=$2
  echo "CreateUser Start: ${name} ${nameGroup}"

  #设置允许新增或修改用户相关设置
  sudo chattr -i /etc/gshadow /etc/group /etc/shadow /etc/passwd
  #创建用户组
  sudo groupadd ${nameGroup}
  #创建用户并指定用户组、家目录
  sudo useradd -g ${nameGroup} -d /home/${name} -m ${name} 
  #设置密码
  sudo passwd ${name}

  #设置sudo权限
  sudo chmod +w /etc/sudoers
  echo ${name}'     ALL=(ALL)       NOPASSWD: ALL' >> /etc/sudoers
  sudo chmod -w /etc/sudoers

  echo -e "CreateUser Completed: \033[5;47;31m ${name} ${nameGroup} 请您必需记住密码!!!Please remember the password !!! \033[0m"
}
# CreateUser Xxh_2023 xxhG

## 因为在外部传入脚本的参数不能直接传到function函数定义的脚本里面,只能先传到脚本里,在通过定义每个function函数的参数队列去重新传入参数到function函数的脚本中(与function里面的参数定义不同的是直接在脚本里面定义的$1指要调用的方法名称,下面这个$2,$3对应每个function里面的$1,$2)

$1 $2 $3
## 调用示例:sh ./myInit.sh CreateUser Xxh_2022 test2022G 

注意:调用shell脚本或函数是可以输入参数的,传递到内部是 $1$2$3 …… 依次往后接收。

     因为在外部传入脚本的参数不能直接传到function函数定义的脚本里面,只能先传到脚本里,在通过定义每个function函数的参数队列去重新传入参数到function函数的脚本中(与function里面的参数定义不同的是直接在脚本里面定义的 \$1 指要调用的方法名称,下面这个\$2,\$3对应每个function里面的\$1,$2)。
可以简单理解是:如果shell脚本里面有多个函数,\$1是需要调用哪个函数,\$2,\$3是给该函数传递的参数。

将以上内容保存在Linux服务器/tmp/myInit.sh 脚本文件,并赋予可执行权限 sudo chmod +x /tmp/myInit.sh,然后就可以直接调用了。
调用示例(脚本内部):CreateUser myname mygroup
调用示例(脚本外部):sh ./myInit.sh CreateUser myname mygroup
调用示例(脚本外部):sh ./myInit.sh setHisttimeFormat

执行效果:

参考:shell脚本中的函数

posted @ 2022-11-15 15:40  熊仔其人  阅读(282)  评论(0编辑  收藏  举报