linux中用shell脚本在nis环境中自动添加group并判断是否复制原有group里的成员
时间: 2024-03-27 11:37:45 浏览: 75
linux 增加用户到组
可以使用以下的Shell脚本来实现在NIS环境中自动添加group并判断是否复制原有group里的成员:
```bash
#!/bin/bash
# 输入新的组名
echo "请输入新的组名:"
read group_name
# 检查组名是否已经存在
existing_group=$(ypcat group | cut -d: -f1 | grep -x "$group_name")
if [ -n "$existing_group" ]; then
echo "组名已存在,请重新输入!"
exit 1
fi
# 输入是否复制原有组里的成员
echo "是否复制原有组里的成员?(y/n)"
read copy_members
# 添加新的组
echo "$group_name:x:$(ypcat group | awk -F: '{print $3}' | sort -n | tail -1)+1:" | ypmatch group - | yppush group -
# 复制原有组里的成员
if [ "$copy_members" = "y" ]; then
existing_members=$(ypcat group | grep "^$group_name:" | cut -d: -f4)
for member in $existing_members; do
echo "$group_name:x:$(ypcat passwd | grep "^$member:" | cut -d: -f3,4):" | ypmatch group - | yppush group -
done
fi
echo "新的组已添加成功!"
```
这个脚本首先会要求用户输入新的组名,然后检查该组名是否已经存在于NIS中。如果组名已存在,则脚本会退出并提示用户重新输入。接下来,脚本会要求用户输入是否要复制原有组里的成员。如果用户选择复制,则脚本会查找原有组的成员,并将它们添加到新的组中。最后,脚本会在NIS中添加新的组,并提示用户添加成功。
阅读全文