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
#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@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/
#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
============================================================
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是普通用户
[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
- shell 脚本 判断用户是管理员还是系统用户还是普通用户脚本
- 获取当前系统用户是管理员权限还是普通用户权限
- 获取当前系统用户是管理员权限还是普通用户权限
- 判断php脚本是通过shell访问还是web访问
- android 判断应用程序是系统程序还是用户程序
- Javascript判断用户使用的是ios还是android系统
- 判断应用是系统程序还是用户程序?
- 判断用户的是iPhone还是iPad
- 【Shell脚本练习】判断当前用户
- 判断来访问网站的用户是手机用户还是Web浏览器的用户【即判定用户当前使用的系统】
- 使用shell脚本删除系统用户
- 【shell脚本练习】判断用户存在和用户类型
- shell 脚本切换用户
- c++中如何判断该进程是系统进程,还是用户进程
- 判断当前脚本运行环境,是浏览器还是node
- 如何判断用户对文件是剪切还是复制?
- 判断一个类是JAVA类型还是用户定义类型
- 判断用户设备是iPad还是iPhone的代码
- 假设检验
- 代码审查工具SonarQube
- c语言求解一元二次方程
- 素数表的获取(常规方法与埃氏筛法)
- Java对XML文档进行解析(SAX、StAX解析)
- shell 脚本 判断用户是管理员还是系统用户还是普通用户脚本
- php 实现读取目录下所有文件
- 做数模的那些天——2017.9.19
- hdu 1226 超级密码
- Atitit 建立新组织集团模型的框架基本制度与一些原则
- 剑指offer-剑指offer——栈的压入弹出顺序 (两种不错的的解法)
- (三)OpenFlow协议
- 吐槽小程序开发踩过的坑,以及一些解决方法
- [基础笔记]使用虚拟机搭建Ubuntu Linux开发环境