Top

NSD ADMIN DAY07

  1. 案例1:查找并提取文件内容
  2. 案例2:查找并处理文件
  3. 案例1:Linux管理员 综合测试

1 案例1:查找并提取文件内容

1.1 问题

本例要求在文件/usr/share/dict/words中查找到所有包含字符串seismic的行,并满足下列要求:

  1. 将找到的行按原文顺序拷贝到 /root/wordlist 文件中
  2. 文件 /root/wordlist 不要包含空行,并且其中所有行的内容必须是 /usr/share/dict/words 文件中原始行的准确副本

1.2 步骤

实现此案例需要按照如下步骤进行。

1)使用grep命令查找指定的关键词,并通过重定向输出保存到指定的文件:

[root@serverX ~]# grep  'seismic'  /usr/share/dict/words  >  /root/wordlist

2)确认提取结果

[root@server0 ~]# cat /root/wordlist 
anaseismic
antiseismic
aseismic
aseismicity
bradyseismic
.. ..

2 案例2:查找并处理文件

2.1 问题

本例要求采用不少于两种方法完成以下任务:

  1. 找出所有用户 student 拥有的文件
  2. 把它们拷贝到 /root/findfiles/ 文件夹中

2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:确认能找到指定的文件

1)确认新版内核的下载地址

[root@server0 ~]# find  /  -user  student  -type f  
find: ‘/proc/1853/task/1853/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/1853/fdinfo/6’: 没有那个文件或目录
/var/spool/mail/student
/home/student/.bash_logout
/home/student/.bash_profile
/home/student/.bashrc
/home/student/.ssh/authorized_keys
/home/student/.config/gnome-initial-setup-done
/home/student/.config/monitors.xml

对于上述操作中出现的/proc信息忽略即可。

步骤二:处理找到的文件

1)创建目标文件夹

[root@server0 ~]# mkdir  /root/findfiles

2)拷贝找到的文件到目标文件夹

以下两种方法任选一种:

[root@server0 ~]# find  /  -user  student  -type f  -exec  cp  -p  {}  /root/findfiles/  \;
.. ..
或者
[root@server0 ~]# \cp  -p  $(find  /  -user  student  -type f)  /root/findfiles/
.. ..

3)确认拷贝结果

[root@server0 ~]# ls  -lhA  /root/findfiles/
总用量 24K
-rw-------. 1 student student 1.7K 7月  11 2014 authorized_keys
-rw-r--r--. 1 student student   18 1月  29 2014 .bash_logout
-rw-r--r--. 1 student student  193 1月  29 2014 .bash_profile
-rw-r--r--. 1 student student  231 1月  29 2014 .bashrc
-rw-r--r--. 1 student student    4 7月  11 2014 gnome-initial-setup-done
-rw-r--r--. 1 student student 1.5K 7月  11 2014 monitors.xml
-rw-rw----. 1 student mail       0 7月  11 2014 student

3 案例1:Linux管理员 综合测试

3.1 问题

根据本文提供的练习步骤完成所有练习案例。

3.2 方案

开始练习之前,先依次重置虚拟机环境。

[root@room9pc13 ~]# rht-vmctl  reset  classroom
[root@room9pc13 ~]# rht-vmctl  reset  server

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤01:配置一个用户

案例概述:

创建一个名为alex的用户,用户ID是 3456。密码是flectrag

[root@server0 ~]# useradd  -u  3456  alex
[root@server0 ~]# echo  flectrag  |  passwd  --stdin  alex

步骤02:创建用户账号和组

案例概述:

创建下列用户、组以及和组的成员关系:

[root@server0 ~]# groupadd  adminuser  							//添加组

[root@server0 ~]# useradd  -G  adminuser  natasha  				//添加用户
[root@server0 ~]# useradd  -G  adminuser  harry
[root@server0 ~]# useradd  -s  /sbin/nologin  sarah

[root@server0 ~]# echo  flectrag  |  passwd  --stdin  natasha  	//设置密码
[root@server0 ~]# echo  flectrag  |  passwd  --stdin  harry
[root@server0 ~]# echo  flectrag  |  passwd  --stdin  sarah

步骤03:配置文件 /var/tmp/fstab 的权限

案例概述:

拷贝文件/etc/fstab到/var/tmp/fstab,配置文件/var/tmp/fstab的权限:

[root@server0 ~]# cp  /etc/fstab  /var/tmp/fstab  					//复制文件
[root@server0 ~]# setfacl  -m  u:natasha:rw  /var/tmp/fstab 		//添加个别用户权限
[root@server0 ~]# setfacl  -m  u:harry:-  /var/tmp/fstab

步骤04:配置一个 cron 任务

案例概述:

为用户natasha配置一个定时任务,每天在本地时间14:23时执行以下命令:

/bin/echo hiya

解题参考:

[root@server0 ~]# systemctl  restart  crond
[root@server0 ~]# systemctl  enable  crond

[root@server0 ~]# crontab  -e  -u  natasha
23  14  *  *  *   /bin/echo  hiya

步骤05:创建一个共享目录

案例概述:

创建一个共享目录/home/admins ,特性如下:

解题参考:

[root@server0 ~]# mkdir  /home/admins
[root@server0 ~]# chown  :adminuser /home/admins
[root@server0 ~]# chmod  ug+rwx,o-rwx  /home/admins 		//调整权限
[root@server0 ~]# chmod  g+s  /home/admins 					//设置Set UID权限

步骤06:安装内核的升级

案例概述:

新版内核文件从以下地址获取:

http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/

解题参考:

[root@server0 ~]# firefox \
   http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/ 
  								//根据所给地址找到内核文件,复制其下载地址
[root@server0 ~]# wget \
   http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/kernel-3.10.0-123.1.2.el7.x86_64.rpm 
[root@server0 ~]# rpm  -ivh  kernel-3.10*.rpm  			//安装新内核(耐心等...)
[root@server0 ~]# reboot  								//重启以使新内核生效
[root@server0 ~]# uname  -r 
3.10.0-123.1.2.el7.x86_64 								//确认新内核版本

步骤07:绑定到外部验证服务

案例概述:

系统 classroom.example.com 提供了一个 LDAP 验证服务。您的系统需要按照以下要求绑定到这个服务上:

解题参考:

[root@server0 ~]# yum  -y  install  sssd
[root@server0 ~]# authconfig-tui  							//使用简易配置工具

根据提示完成用户和认证方式设置 ——

User Information:[*] Use LDAP

Authentication Method:[*] Use LDAP Authentication

根据提示选中 [*] Use TLS,并设置下列参数 ——

Server:classroom.example.com

Base DN:dc=example,dc=com

提示下载证书到 /etc/openldap/cacerts 目录时,另开一终端执行:

[root@server0 ~]# cd  /etc/openldap/cacerts/  			//进入CA机构证书目录
[root@server0 ~]# wget  http://classroom.example.com/pub/example-ca.crt 

然后回到 authconfig-tui 工具确认,稍等片刻即可。

[root@server0 ~]# systemctl  restart  sssd
[root@server0 ~]# systemctl  enable  sssd
[root@server0 ~]# id  ldapuser0  						//验证LDAP用户可用
uid=1700(ldapuser0) gid=1700(ldapuser0) groups=1700(ldapuser0)

步骤08:家目录漫游

案例概述:

按照下述要求配置手动挂载 LDAP 用户的主目录:

解题参考:

[root@server0 ~]# mkdir  /home/guest/ldapuser0
[root@server0 ~]# mount  classroom.example.com:/home/guests/ldapuser0  /home/guests/ldapuser0  		//挂载LDAP家目录

[root@server0 ~]# su  -  ldapuser0  -c  'pwd'  			//验证结果
/home/guests/ldapuser0

步骤09:配置NTP网络时间客户端

案例概述:

配置您的系统,让其作为一个 classroom.example.com 的 NTP 客户端

解题参考:

[root@server0 ~]# yum  -y  install  chrony
[root@server0 ~]# vim  /etc/chrony.conf
#server 0.rhel.pool.ntp.org iburst  					//注释掉不可用server配置,
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server  classroom.example.com  iburst 					//添加新的配置
.. ..
[root@server0 ~]# systemctl  restart  chronyd
[root@server0 ~]# systemctl  enable  chronyd

步骤10:查找文件

案例概述:

找出所有用户student拥有的文件,并且把它们拷贝到/root/findfiles 目录中

解题参考:

[root@server0 ~]# mkdir  /root/findfiles
[root@server0 ~]# find  /  -user  student  -type f  -exec  cp  -p  {}  /root/findfiles/  \;

步骤11:查找一个字符串

案例概述:

在文件/usr/share/dict/words中查找到所有包含字符串seismic的行:

解题参考:

[root@server0 ~]# grep  'seismic'  /usr/share/dict/words  >  /root/wordlist

步骤12:创建一个归档

案例概述:

创建一个名为 /root/backup.tar.bz2 的归档文件,其中包含 /usr/local 目录中的内容,tar 归档必须使用 bzip2 进行压缩

解题参考:

[root@server0 ~]# tar  -jcPf  /root/backup.tar.bz2  /usr/local/