马哥教育网络班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 22:28
下一篇 2016-07-16 22:29

相关推荐

  • N25 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; 3、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行; 4、添加用户bash, testbash, basher, nol…

    Linux干货 2017-01-08
  • kickstart及引导镜像制作

    环境:CentOS 6.7 kickstart 制作    1、centos系统安装完成后,anaconda会根据本次系统安装的配置,生成一个与本次安装设置相同的kickstart文件,文件位于/root/anaconda-ks.cfg,可以使用vim对这个文件进行修改来使用。     vim anaconda-ks.…

    Linux干货 2015-12-15
  • 如何理解云计算中IaaS、PaaS和SaaS?很简单,就像吃货想吃披萨了…

                                                      &nbsp…

    2015-04-17
  • 实验:配置静态路由1

    实验:配置静态路由1 IP地址规划如下: 注意,环境准备: 1、MAC地址不要有冲突,如果是复制的虚拟机,对于centos6需删除网卡定义文件rm -f /etc/udev/rules.d/70-persistent-net.rules 2、清空防火墙iptables -F(查看:iptables -vnL) 3、启用IP转发功能:echo 1 > /…

    2017-03-26
  • 文本处理三剑客之一的sed

    处理文本的工具sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Se…

    Linux干货 2017-04-27
  • 8.3_Linux文件系统权限和特殊权限浅析

    什么是Linux文件系统权限? 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。 Linux文件系统权限的分类 Linux中的权限分为:read(读)、write(写)、execut(执行)三种权限 文件和目录表示的权限也各有不同 权限对于文件的意义: r: 可使用文件查看类工具获取其内容 w: 可修改内…

    Linux干货 2016-08-05

评论列表(1条)

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

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