shell 脚本 判断用户是管理员还是系统用户还是普通用户脚本

来源:互联网 发布:北仑博菱电器工资算法 编辑:程序博客网 时间:2024/05/18 20:08
将/etc/passwd里的用户名分类,分为管理员用户,系统用户,普通用户
vim /sh/for6.sh
===================================================================
#!/bin/bash
#name:for6.sh
#path:/sh/
#思路说明:因为判断一个用户是否为普通用户和系统用户或者管理员,最好的办法就是通>过uid去判断。1先将用户名截取出来保存到一个变量里面;2再定义两个变量分别用来保存>用户名和uid;3再根据uid去判断并输入到相应的文件夹里面。
for i in `cat /etc/passwd |cut -d: -f1,3`
        do
        name=`echo $i |cut -d: -f1`
        uid=`echo $i |cut -d : -f2`
        [ $uid -eq 0 ] && echo $name >>/tmp/管理员.txt
        [ $uid -gt 0 -a $uid -lt 1000 -o $uid -eq 65534 ] && echo $name >>/tmp/>系统用户.txt
        [ $uid -ge 1000 -a $uid -ne 65534 ] && echo $name >>/tmp/普通用户.txt
done
===================================================================
测试结果:
[root@cc sh]# bash  for6.sh
[root@cc sh]# ls /tmp/
普通用户.txt  管理员.txt  系统用户.txt
[root@cc sh]# tail -2 /tmp/普通用户.txt
roo
[root@cc sh]# id roo
uid=1000(roo) gid=1000(roo) groups=1000(roo),10(wheel)
[root@cc sh]# tail -2 /tmp/系统用户.txt
sshd
tcpdump
[root@cc sh]# id sshd
uid=74(sshd) gid=74(sshd) groups=74(sshd)
[root@cc sh]# tail /tmp/管理员.txt
root
[root@cc sh]# id root
uid=0(root) gid=0(root) groups=0(root)
===================================================================
===================================================================
输入一个用户判断是普通用户还是系统用户还是管理员root用户
vim /sh/for7.sh
============================================================
#/bin/bash
#name:for7.sh
#path:/sh/
#思路说明:同上面脚本一样,判断一个用户属于什么用户还是通过uid去判断。
read -p "请输入用户名字:" name
cc=$(id $name |cut -d"=" -f 2 |cut -d "(" -f 1)
if [ $cc -eq 0 ];then
         echo $name是管理员
elif [ $cc -gt 0 -a $cc -lt 1000 -o $cc -eq 65534 ];then
         echo $name是系统用户
elif [ $cc -ge 1000 -a $cc -ne 65534 ];then
         echo $name是普通用户
else
        echo $name用户不存在
fi
============================================================
测试结果:
[root@cc sh]# bash  for7.sh
请输入用户名字:root
root是管理员
[root@cc sh]# bash  for7.sh
请输入用户名字:roo
roo是普通用户
[root@cc sh]# bash  for7.sh
请输入用户名字:nfsnobody
nfsnobody是系统用户
[root@cc sh]# bash  for7.sh
请输入用户名字:zhangsan
id: zhangsan: no such user
for7.sh: line 4: [: -eq: unary operator expected
for7.sh: line 6: [: too many arguments
for7.sh: line 8: [: too many arguments
zhangsan用户不存在
[root@cc sh]# bash  for7.sh
请输入用户名字:li
id: li: no such user
for7.sh: line 4: [: -eq: unary operator expected
for7.sh: line 6: [: too many arguments
for7.sh: line 8: [: too many arguments
li用户不存在
[root@cc sh]# useradd wanger
[root@cc sh]# bash  for7.sh
请输入用户名字:wanger
wanger是普通用户
============================================================

阅读全文
0 0