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

利用bash脚本函数执行创建用户和组,并设置sudo权限等的更多相关文章

  1. SharePoint Online 创建用户和组

    前言 本文介绍如何在Office 365中创建用户和组,这里所说的用户和组,是指Office 365中的用户和组,我们可以用这里的用户登录Office 365环境,用组的概念来管理用户,而非Share ...

  2. linux下创建用户及组

    linux下创建用户及组: 1.创建组 groupadd  组名 2.创建用户,并将用户添加到组 useradd  用户名  -g  组名 3.更改用户的密码 password  用户名 4.修改目录 ...

  3. linux 用户、组,修改文件权限

    文件权限 -rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc - 10个字符确定不同用户能对文件干什么 - 第一个字符代表文件(-).目录(d),链接(l) - 其余 ...

  4. Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner

    Gitlab权限管理Gitlab用户在组中有五种权限:Guest.Reporter.Developer.Master.Owner Guest:可以创建issue.发表评论,不能读写版本库Reporte ...

  5. Gitlab用户在组中有五种权限

    Gitlab用户在组中有五种权限:Guest.Reporter.Developer.Master.Owner Guest:可以创建issue.发表评论,不能读写版本库 Reporter:可以克隆代码, ...

  6. 用Bash脚本将Linux普通用户添加为系统管理员

    将Linux普通用户添加为系统管理员在Gnome或KDE这样强大与完善的桌面环境下是非常简单的事情,一般来说在用户设置的对话框里就直接有相应选项.不过,出于简洁与高效的风格,自己目前并未使用这些高端但 ...

  7. (1)使用bash脚本实现批量添加用户

    脚本实现内容: 可以指定用户名前缀,指定添加数量的批量添加用户脚本,密码为10为随机小写字母,并把用户名和密码写入文件中. 脚本代码: #!/bin/bashread -p "用户名前缀:& ...

  8. C#利用lambda在函数中创建内部函数

    有使用过JS的朋友,相信都知道function.JS中的function是可以在里面在定义一个作为内部使用的.有时为了控制作用域,或者这种小函数只在这个函数体内会使用,所以就不希望在外部在作额外的定义 ...

  9. ubuntu,day 2 ,退出当前用户,创建用户,查找,su,sudo,管道符,grep,alias,mount,tar解压

    本节内容: 1,文件权限的控制,chmod,chown 2,用户的增删和所属组,useradd,userdel 3,用户组的增删,groupadd,groupdel 4,su,sudo的介绍 5,别名 ...

  10. linux创建用户和组

    linux下创建用户(一) Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系 ...

随机推荐

  1. 这可能是最好的Spring教程!即便无基础也能看懂的入门Spring,仍在持续更新。

    开启这样一个系列的原因 这一段时间都在学spring,但是在学习的过程中一直都很难找到一个通俗易懂,又带了学习体系的文章教程,很多地方都不懂,需要自己去慢慢查询和理解,感觉学起来很耗时,所以我自己就像 ...

  2. element 动态合并表格---进阶版

    错误展示 正确展示 如果使用上次博客写的element 动态合并表格那么会出现上述图片情况,所以对其进行完善实现下图(正确展示)情况 处理函数 mergeTableRow(data, merge) { ...

  3. Mybatis中foreach的使用

    首先我们要明白的是foreach的本质就是把数据库能执行的sql在xml中按照一定语法来进行拼接,所以拼接之前,我们了解一下foreach标签中几个常见元素的作用 1.collection ‌List ...

  4. 做AI运动小程序有哪些解决方案,如何进行选型?

    引言:随着深度学习技术的发展进步,已经不再依赖强大的GPU算力,便可实现AI推理了,让AI技术渗透到了电脑.手机.智能设备等各类设备.体育.健身行业也不例外,阿里体育等IT大厂,推出的乐动力.天天跳绳 ...

  5. nginx配置php-fpm虚拟主机站点

    ubuntu下安装nginx 很简单 sudo apt-get install nginx 然后安装php-fpm 我这本地php7.4所以这么写 sudo apt search php7.4-fpm ...

  6. Python之解析配置文件

    [.env] 1) 使用python-dotenv 安装: pip install python-dotenv 示例配置文件: ADMIN_HOST = https://uat-rm-gwaaa.cn ...

  7. 同步工具之Vector

    官网: https://vector.dev/ 用于构建可观察性管道的轻量级.超快速工具 [安装] curl --proto '=https' --tlsv1.2 -sSf https://sh.ve ...

  8. CSS3 transform转换

    1.先说说css的坐标系: x轴的正方向就是水平向右的方向 y轴的正方向就是垂直向下的方向 z轴的正方向就是屏幕到用户的方向 2.位移 说明:位移是转换属性中的一个值,包含2d与3d 属性值 说明 t ...

  9. influxdb数据库结构小结

    转载请注明出处: InfluxDB 是一个开源的时序型数据库,它的数据主要存储在三个文件夹中:data.meta 和 wal. data 文件夹:这个文件夹存储的是 InfluxDB 的数据文件,也称 ...

  10. 从Delphi到Lazarus——Lazarus编程时可以使用的组件(控件)

    0.前言 使用过可视化编程的人都知道在编程时组件的重要性.可以使用的组件越多,编程越方便快捷. 理论上,Delphi中的所有组件在Lazarus中都可以使用.当然,在Windows编程时多数是可以直接 ...