马哥教育网络班21期-第三周课程练习

STOP WISHING

START DOING

                                                                                                             —- WEEKLY PLAN


小僧最近已经学习到bash脚本编程,手痒难耐。就偷懒以脚本形式完成作业吧。近期工作异常繁忙,较多灵异问题难以解决。烦……

BeJing 的同学说好的周末聚聚,居然至今无人响应。你们这群骗子,坏人。


1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
2、取出最后登录到当前系统的用户的相关信息。
3、取出当前系统上被用户当作其默认shell的最多的那个shell。
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
7、显示/var目录下一级子目录或文件的总个数。
8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
   (1)、创建组distro,其GID为2016;
   (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
   (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
   (4)、给用户mageia添加密码,密码为mageedu;
   (5)、删除mandriva,但保留其家目录;
   (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
   (7)、修改slackware的默认shell为/bin/tcsh;
   (8)、为用户slackware新增附加组admins;
   (9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
   (10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;
   (11)、添加系统用户mysql,要求其shell为/sbin/nologin;
   (12)、使用echo命令,非交互式为openstack添加密码。


Script 

#!/bin/bash
# 
# 博客作业:第3周
# 2016-07-16
# 勇爷出品,如有类似,纯属扯蛋
#
while true
echo
read -p " 输入要查看的题目:(1 - 10): " num
echo 
echo -e " 结束快捷键 Ctrl+C "
echo 
do
	if [ -z $num ]; then
		echo "输入数字你不会吗?"
	elif [ $num = 1 ]; then
		echo -n -e "\e[1;31m 当前登录用户:\e[0m"
		echo `who | cut -d" " -f1  | uniq`
	elif [ $num = 2 ]; then
		echo -n -e "\e[1;31m 最后登录用户:\e[0m"
		echo `last | grep -v still | head -n 1 | cut -d" " -f1`
		echo -n -e "\e[1;31m 用户信息:\e[0m"	
		id $(last | grep -v still | head -n 1 | cut -d" " -f1)
	elif [ $num = 3 ]; then
		echo -n -e "\e[1;31m 当前系统默认shell最多的是:\e[0m"
		grep sh$ /etc/passwd | cut -d: -f7 | uniq -c | sort -r | head -1
	elif [ $num = 4 ]; then
		sort -n -t: -k3 /etc/passwd | tail | tr "a-z" "A-Z" >> /tmp/maxusers.txt
		echo -e "\e[1;31m 请看结果:\e[0m"
		cat /tmp/maxusers.txt
	elif [ $num = 5 ]; then
		echo -n -e "\e[1;31m 当前主机IP地址:\e[0m"
		ifconfig | grep -o "\(\<[0-9]\{1,3\}\>[.]\)\{3\}\<[0-9]\{1,3\}" | head -1
	elif [ $num = 6 ]; then
		ls /etc/*.conf | tr "a-z" "A-Z" > /tmp/etc.conf
		echo -n -e "\e[1;31m 请看结果:\e[0m"
		cat /tmp/etc.conf
	elif [ $num = 7 ]; then
		echo -e "\e[1;31m var目录下一级子目录:\e[0m"
		ls -l /var/ | grep ^d 
		echo -n -e "\e[1;31m var目录下文件总个数:\e[0m"
		find /var -type f | wc -l
	elif [ $num = 8 ]; then
		echo -e "\e[1;31m 请看结果:\e[0m"
		cat /etc/group | sort -t: -k3 -n | head | cut -d: -f1
	elif [ $num = 9 ]; then
		cat /etc/{fstab,issue} > /tmp/etc.test
		echo -e "\e[1;31m 请看结果:\e[0m"
		cat /tmp/etc.test
	elif [ $num = 10 ]; then
		groupadd -g 2016 distro
		useradd -u 1005 -g distro mandriva
		useradd -u 1100 -d /home/linux mageia
		echo "mageedu" | passwd --stdin mageia &>/dev/null
		userdel mandiriva
		useradd -u 2002 -g distro -G peguin slackware
		chsh slackware -s /bin/tcsh &>/dev/null
		groupadd admins && usermod -G admins slackware -a slackware
		echo "mageedu" | passwd --stdin slackware && chage -m3 -M180 -W 3 loongson &>/dev/null
		useradd -u 3003 -g clouds -G peguin -G nova openstack
		useradd -s /sbin/nologin mysql
		echo "mageedu" | passwd --stdin openstack &>/dev/null
	fi
done


THE END

.

.

.

原创文章,作者:勇爷,如若转载,请注明出处:http://www.178linux.com/24045

(0)
勇爷勇爷
上一篇 2016-07-16
下一篇 2016-07-16

相关推荐

  • LVM 逻辑卷管理器-快照区复原系统

    LVM 逻辑卷管理器-快照区复原系统 复原的数据量不能够高于快照区所能负载的实际容量。由于原始数据会被搬移到快照区,如果你的快照区不够大,原始资料变动的实际数据量比快照大,那么快照区就容纳不了,这时快照就会失效。 (1)将原本的/dev/vg_1/lv_1内容做些改动,增减一些目录。 [root@centos6 ~]# df -…

    Linux干货 2016-09-18
  • 马哥教育网络班20期+第二周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理有 cp, mv, rm  复制命令:cp [root@ddwhost ~]# cp /etc/magic /tmp/         cp&n…

    Linux干货 2016-06-23
  • N25-第八周

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示; #!/bin/bash ipnet=172.16.250. trap ‘trap_action’ INT trap_action() { break return 1 } for ((i=1…

    Linux干货 2017-05-27
  • 通络通信

    网络详解: 网络的osi层次结构: 物理层: 以太网规定,连入网络的所有设备,都必须具有”网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。 网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。 每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。 前6个十六进制数是厂商编号,后6个是该厂商…

    Linux干货 2016-09-02
  • python– 简单的排序

    冒泡排序, 简单选择排序, 插入排序

    Python笔记 2018-04-15
  • BIND在生产环境中的创建

    一、实验:BIND二级域的搭建(均以yum安装bind),从实验图中可以看出需要五台虚拟机进行测试 一、准备五台虚拟机 二、配置root服务器 1、YUM安装bind的程序 2、配置bind的主配置文件 3、配置区域文件 4、为了实验的方便进行,把防火墙和SElinux关闭,并留意区域文件的属主属组 5、检查named的主配置文件和区域文件是否语法错误,并启…

    Linux干货 2016-10-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-16 22:40

    可以啊,勇爷,写的很好,非常棒,加油