一、实战案例(练习)内容
假如你学习完Linux,想找一份儿Linux相关的运维工作,某天你接到一家公司给出的邀请,你来到该公司面试,面试前,运维主管给你出了一些简单的笔试题,题目如下:
1、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至单独数据/data目录;
a.添加一块硬盘
#fdisk /dev/sdb
b.格式化并创建文件系统类型
#mkfs.ext4 /dev/sdb1
#blkid /dev/sdb1
c.配置/etc/fstab实现/dev/sdb1开机自动挂载到/data下
#mkdir /data
#vim /etc/fstab
添加下面的内容
/dev/sdb1 /data ext4 defaults 0 0
#mount -a 实现不重启即可生效
d.重启测试是否自动挂载
#shotdown -r now
#mount (查看是否挂载成功)
2、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行;
a.#netstat -tan | egrep "LISTEN[[:sapce:]]{0,}$"|wc-l
3、添加用户nginx、zabbix、tomcat、nologin以及hadoop用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行;
a.#useradd nginx;useradd zabbix;useradd tomcat;useradd hadoop;useradd -s /sbin/nologin nologin
b.#grep "^\([[:alnum:]]\+\>\).*\1$" /etc/passwd
4、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行;
a.#grep -o "[_[:alpha:]]\+()" /etc/rc.d/init.d/functions
5、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名(注意是目录名,而非目录路径);
a.#echo "/etc/rc.d/init.d/functions" | egrep -o "\<[[:alnum:]]+\>$"
b.#echo "/etc/rc.d/init.d/functions" | egrep -o "^[/].*[/]"
6、查找/usr目录下不属于root、bin或hadoop的所有文件;
a.#find /usr -not -user root -a -not -user bin -a -not -user hadoop
7、某天系统被入侵了,黑客在你系统下留下木马文件:
现需要查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;
另外,需要查找/etc目录下大于20k且类型为普通文件的所有文件;
a.#find / -nouser -a -nogroup -atime -7 -ls
b.#find /etc -type f -size +20k -exec du -sh {} \;
8、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件。
a.#mkdir -pv /test/data
#groupadd IT;useradd liu;useradd wei;
#chown :IT /test/data;chmod g+ws /test/data;chmod o+t /test/data
#echo "123456" | passwd --stdin liu
#echo "123456" | passwd --stdin wei
#su - liu
#cd /test/data;mkdir liu;ls -l
#su - wei
#cd /test/data;mkdir wei;ls -l;rm -rf liu
#su - liu
#cd /test/data;mkdir liu;ls -l;rm -rf wei //验证成功