创建一个shell脚本,在linux上创建user101-user120等20个用户;user101和user102添加到manager组,user103添加到sale组,user104添加到dev组。
时间: 2023-03-22 08:01:44 浏览: 68
可以的,你可以使用以下的shell脚本来创建20个用户并将它们添加到相应的用户组:
```bash
#!/bin/bash
# 创建20个用户
for i in {101..120}
do
username="user$i"
password=$(openssl rand -base64 12) # 自动生成12位密码
useradd -m -p $(openssl passwd -crypt $password) $username # 创建用户并设置密码
done
# 将user101和user102添加到manager组
usermod -a -G manager user101
usermod -a -G manager user102
# 将user103添加到sale组
usermod -a -G sale user103
# 将user104添加到dev组
usermod -a -G dev user104
```
请注意,该脚本必须以root用户身份运行,否则可能会因权限问题而无法创建用户和添加到组。另外,由于该脚本会自动生成密码,因此请确保在使用时,你对密码进行了适当的修改和记录。
相关问题
linux下shell脚本如何解析类似如下配置文件,请写出解析其通用脚本。特别指出DB_CONFIG这一项是多行的,由于输入的原因故呈现给您的是单行的。 [MYSQL] DB_HOST=192.168.0.1 DB_PORT=3306 DB_USER=root DB_PASSWD=mysql1234 DB_NAME=system_manager1 DB_CONFIG=./configure --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \
可以使用`awk`命令来解析这个配置文件。下面是一个通用的脚本,可以解析类似的配置文件,其中`DB_CONFIG`项支持多行输入。
```bash
#!/bin/bash
config=$1
awk -v RS='' -v FS='\n|=' -v OFS='=' '
{
if ($1~/\[.*\]/) {
section=substr($1, 2, length($1)-2)
} else {
gsub(/ /, "", $1)
if (NF > 1) {
gsub(/\\/, "", $2)
if ($1 == "DB_CONFIG") {
db_config=$2
while (getline > 0) {
gsub(/\\/, "", $0)
db_config=db_config $0
if ($0 !~ /\\$/) {
break
}
}
print section, $1, db_config
close(FILENAME)
} else {
print section, $1, $2
}
}
}
}
' $config
```
使用方式如下:
```bash
bash parse_config.sh config.txt
```
其中`config.txt`是待解析的配置文件,执行后会输出解析结果。
写一个centos7 自动安装docker的脚本
### 回答1:
#!/bin/bash# 在Centos7上安装Docker
# 更新yum缓存
yum update -y# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2# 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装docker
yum install -y docker-ce# 启动docker服务
systemctl start docker# 设置docker开机启动
systemctl enable docker
### 回答2:
Sure! 下面是一个用Shell脚本编写的CentOS 7自动安装Docker的脚本。
```bash
#!/bin/bash
# 检查是否已经安装了Docker
if ! [ -x "$(command -v docker)" ]; then
echo "开始安装Docker..."
else
echo "Docker已经安装。"
exit 0
fi
# 安装必要的依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置Docker的yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动并设置Docker为开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 添加当前用户到docker用户组,以便无需sudo即可执行docker命令
sudo usermod -aG docker $USER
# 完成安装
echo "Docker安装完成!请重新登录以使用户组更改生效。"
```
将以上脚本保存为一个文件(比如`install_docker.sh`),然后通过以下命令运行脚本:
```bash
$ chmod +x install_docker.sh
$ ./install_docker.sh
```
脚本会检查是否已经安装了Docker,如果已经安装则退出脚本,否则将自动安装Docker并完成相关设置。最后,脚本会提示您重新登录以使用户组更改生效。
注意:请在具备管理员权限的帐户下运行该脚本。
### 回答3:
以下是一个CentOS 7自动安装Docker的脚本示例:
```bash
#!/bin/bash
# 检查是否以root用户身份执行
if [[ $EUID -ne 0 ]]; then
echo "请以root用户身份执行此脚本。"
exit 1
fi
# 安装需要的依赖软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 更新yum缓存
yum makecache fast
# 安装Docker CE
yum install -y docker-ce
# 启动Docker服务
systemctl start docker
# 设置Docker开机自启动
systemctl enable docker
# 验证Docker安装是否成功
docker run hello-world
# 输出Docker版本信息
docker version
echo "Docker安装完成。"