利用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脚本中的函数