用户组查询
脚本用途:如果是命令查询那就必须通过 groups 查看当前登录用户的组内成员;groups user1 查看 user1用户所在的组,以及组内成员;whoami 查看当前登录用户名,这些一系列的察看方式进行查询,为了更好管理我们的用户以及用户组,那么我们就开发以这个为需求的小脚本来满足我们的需求。
- 脚本命令
#!/bin/bash
while [ 1 -ne 2 ]
do
read -p "Please enter the user group to query:" gname #输入用户名
groupmod $gname >/dev/null 2>&1 #验证用户组是否存在
if [ $? -ne 0 ] #判断用户组是否存在
then
echo "User group $gname does not exist; please input again!"
exit 1 #报错退出
else #存在继续进行
gid=`cat /etc/group | grep $gname | awk -F ":" '{print $3}'` #寻找用户组UID
echo -n "$gname 主要组成员:"
cat /etc/passwd | awk -F ":" '$4='$gid'{print $1 }' | xargs #通过用户组UID察看主要成员
echo -n "$gname 的附属组是:"
cat /etc/group | grep "$gname" | awk -F ":" '{print $4}' | xargs #查找用户组的附属组
break
fi
done
- 脚本思路
1、输入要查询的用户组,通过 groupmod 判断用户组是否存在
2、不存在就直接推出,重新运行查询
3、用户组纯在进行对用户组UID来寻找察看对应UID组的主要成员和附属组成员
输出 “echo $PATH” 寻找脚本摆放的位置(默认首先第一个)其他路径也是可以的呢
把脚本放到 “/usr/local/sbin” 并且改名 “update-ipname” (名字可以自定),下次输入命令的时候按下“TAb”键补全就可以看到我们自己写的脚本了呢
[root@deng-131 order]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@deng-131 order]# cp sgroup.sh /usr/local/sbin/sgroup
[root@deng-131 order]# sgroup
sg sgroup
借用原有的命令和知识,开发出专属于自己的小工具。一样的应用,不一样的思路,不一般的效果…..