linux基础之admin中

使用教学虚拟机

 每个学员机上有三台预先配置好的虚拟机

– server —— 作为练习用服务器

– desktop —— 作为练习用客户机

– classroom —— 提供网关/DNS/软件素材等资源

  保证 classroom 首先开启系统

真机上操作:控制教学用虚拟机

– 格式:rht-vmctl  控制指令   虚拟机名

– 常用控制指令: reset(还原)

[root@room9pc01 ~]# rht-vmctl reset classroom

[root@room9pc01 ~]# rht-vmctl reset server

[root@room9pc01 ~]# rht-vmctl reset desktop

利用root登陆 server 与 desktop 虚拟机  密码:redhat

  虚拟机Server

          IP地址:172.25.0.11

                  主机名:server0.example.com

                  系统版本:RHEL 7.0

  虚拟机Desktop

          IP地址:172.25.0.10

                  主机名:desktop0.example.com

                  系统版本:RHEL 7.0

##############################################################

真机 远程管理

1.真机 利用ping命令与虚拟机server和desktop通信

[root@room9pc01 ~]# ping  172.25.0.10

[root@room9pc01 ~]# ping  172.25.0.11

2.真机 远程管理

   

   -X(大写):在远程管理时,本地运行对方的图形程序

  Ctrl+Shift+t : 新开一个终端

[root@room9pc01 ~]# ssh   登陆对方的用户名@IP地址

[root@room9pc01 ~]# ssh [email protected]

Last login: Tue Mar 13 10:15:20 2018 from 172.25.0.250

[root@server0 ~]# exit        #退出远程管理

登出

Connection to 172.25.0.11 closed.

[root@room9pc01 ~]# ssh -X  [email protected]

#################################################################

软件包管理

1.关闭虚拟机,图形添加光驱设备

[root@server0 ~]# poweroff

Connection to 172.25.0.11 closed by remote host.

Connection to 172.25.0.11 closed.

[root@room9pc01 ~]#

2.真机远程管理虚拟机server,进行挂载

[root@room9pc01 ~]# ssh -X [email protected]

[root@server0 ~]# mount /dev/cdrom  /dvd

mount: /dev/sr0 写保护,将以只读方式挂载

[root@server0 ~]# ls  /dvd

简单的软件包管理

 RPM Package Manager,RPM包管理器

  1. rpm -q   软件名...-----------查看该软件是否已安装
  2. – rpm -ivh 软件名-版本信息....-----------安装rpm包
  3. – rpm -e   软件名...----卸载rpm包
  4. - rpm -qa----------列出本机所有安装的软件包
  5. -rpm -ql  软件名 -------列出该软件的所有目录文件
  6. -rpm -qc  软件名  -------列出该软件的所有配置文件
  7. --rpm -qi  软件名 ---------列出该软件的详细信息

了解内容:导入红帽光盘包的签名信息

[root@server0 ~]# rpm --import /dvd/RPM-GPG-KEY-redhat-release

依赖关系:

错误:依赖检测失败:

Yum软件包仓库配置及使用,自动解决依赖关系

 服务:为客户端自动解决依赖关系,并且安装软件

 服务端: 虚拟机classroom 搭建完成Web服务 共享光盘所有内容

   验证: 浏览器中 

       http://classroom.example.com/content/rhel7.0/x86_64/dvd/

 客户端:虚拟机server

    修改配置文件 , 指定服务端位置

   /etc/yum.repos.d/*.repo

    正确的文件与错误的文件会相互影响

[root@server0 ~]# rm -rf /etc/yum.repos.d/*

[root@server0 ~]# vim /etc/yum.repos.d/dvd.repo

 [rhel7]                #仓库标识

 name=nsd rhel7         #仓库描述信息

 baseurl=http://classroom.example.com/content/rhel7.0/x86_64/dvd/---------#服务端具体位置路径                                                                                    

 enabled=1              #是否启用该文件

 gpgcheck=0             #是否检测软件包签名信息

[root@server0 ~]# yum repolist  #列出仓库信息

[root@server0 ~]# yum -y install httpd     #安装软件

[root@server0 ~]# yum -y install sssd

[root@server0 ~]# yum -y install system-config-kickstart

[root@server0 ~]# yum  remove  软件名      #卸载软件

[root@server0 ~]# yum clean all        #清缓存

############################################################

配置网络地址

   /etc : 存放系统各种配置文件 

二、配置IP地址

    网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

nmcli连接管理

1.查看nmcli命令识别的网卡名字

[root@A ~]# nmcli connection show

2.配置ip地址

[root@A ~]# nmcli   connection   modify  'System eth0' ipv4.method manual ipv4.addresses   '172.25.0.110/24   172.25.0.254' connection.autoconnect   yes

   nmcli 连接网络配置   '网卡识别的名字'      

   ipv4.method 配置ip地址的方法 ,auto自动获取    manual手工配置 

                                                 

   ipv4.addresses 'ip地址/子网掩码   网关地址'        

   connection.autoconnect yes  每次开机自动启用

3.激活配置

[root@A ~]# nmcli connection up 'System eth0'

[root@A ~]# ifconfig    #查看ip地址

[root@A ~]# route       #查看网关地址   gateway

   successfully : 成功

三、DNS服务器配置

   Domain  Name  Server

     作用: 域名解析为对应IP地址

   DNS服务器: 虚拟机classroom

     

     配置文件: /etc/resolv.conf    解析域名时会先去/etc/hosts下去找

虚拟机Server

[root@A ~]# vim /etc/resolv.conf

nameserver  172.25.254.254

[root@A ~]# nslookup desktop0.example.com

Server: 172.25.254.254

Address: 172.25.254.254#53

Name: desktop0.example.com

Address: 172.25.0.10

##############################################################

查找文本内容

 根据字符串模式提取文本行

– grep [选项] '匹配模式'    文本文件...

常用命令选项

  1. – -v,取反匹配
  2. – -i,忽略大小写

[root@A ~]# grep -i 'ROOT'  /etc/passwd   #忽略大小写

[root@A ~]# grep -v 'root'  /etc/passwd   #不要包含root

[root@A ~]# grep -v 'a'  /etc/passwd      #不要包含a

  1. – ^word  以字符串word开头
  2. – word$  以字符串word结尾

[root@A ~]# grep '^root' /etc/passwd

[root@A ~]# grep 'root$' /etc/passwd

[root@A ~]# grep 'bash$' /etc/passwd

[root@A ~]# grep 'nologin$' /etc/passwd

###############################################################

 重定向输出

   >  : 覆盖重定向      将前面命令的输出,写入文本文件中   自带touch功能

   >>  : 追加重定向 

[root@A ~]# grep 'bash$' /etc/passwd

root:x:0:0:root:/root:/bin/bash

student:x:1000:1000:Student User:/home/student:/bin/bash

[root@A ~]# grep 'bash$' /etc/passwd > /opt/nsd.txt

[root@A ~]# cat /opt/nsd.txt

[root@A ~]# head -3 /etc/passwd

[root@A ~]# head -3 /etc/passwd  >   /opt/1.txt

[root@A ~]# cat /opt/1.txt

[root@A ~]# hostname

[root@A ~]# hostname  >  /opt/1.txt

[root@A ~]# cat  /opt/1.txt

[root@A ~]# hostname  >>  /opt/1.txt

[root@A ~]# cat  /opt/1.txt

[root@A ~]# hostname  >>  /opt/1.txt

[root@A ~]# cat  /opt/1.txt

###################################################################

1 案例1:使用yum软件源

1.1 问题

本例要求为虚拟机 server0指定可用的yum软件源,相关要求如下:

1. YUM软件库源为 http://content.example.com/rhel7.0/x86_64/dvd

2. 将此配置为虚拟机 server0 的默认软件仓库

1.2 步骤

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

步骤一:检查现有yum仓库,去除不可用的设置

1)列出yum库

1. [root@server0 ~]# yum  repolist  

2. 已加载插件:langpacks

3. rhel_dvd                                                    | 4.1 kB  00:00:00     

4. (1/2): rhel_dvd/group_gz                                    | 134 kB  00:00:00     

5. (2/2): rhel_dvd/primary_db                                  | 3.4 MB  00:00:00     

6. 源标识                       源名称                                           状态

7. rhel_dvd                     Remote classroom copy of dvd                     4,305

8. repolist: 4,305

2)移除不可用的yum库配置文件

当执行yum repolist操作报错时,才执行此步骤(否则此步可跳过)。

1. [root@server0 ~]# mkdir  /etc/yum.repos.d/repobak

2. [root@server0 ~]# mv  /etc/yum.repos.d/*.repo  /etc/yum.repos.d/repobak/

步骤二:添加指定的yum仓库配置

1)使用yum-config-manager工具建立新配置文件

1. [root@server0 ~]# yum-config-manager  --add-repo  http://content.example.com/rhel7.0/x86_64/dvd

2. 已加载插件:langpacks

3. adding repo from: http://content.example.com/rhel7.0/x86_64/dvd

5. [content.example.com_rhel7.0_x86_64_dvd]

6. name=added from: http://content.example.com/rhel7.0/x86_64/dvd

7. baseurl=http://content.example.com/rhel7.0/x86_64/dvd

8. enabled=1

2)修改新建的仓库配置,添加gpgcheck=0以禁用GPG签名检查

1. [root@server0 ~]# vim  /etc/yum.repos.d/content.example.com_rhel7.0_x86_64_dvd

2. [content.example.com_rhel7.0_x86_64_dvd]

3. name=added from: http://content.example.com/rhel7.0/x86_64/dvd

4. baseurl=http://content.example.com/rhel7.0/x86_64/dvd

5. enabled=1

6. gpgcheck=0 

步骤三:确认新配置的yum源可用

1. [root@server0 ~]# yum  clean  all                          //清理缓存

2. 已加载插件:langpacks

3. 正在清理软件源: content.example.com_rhel7.0_x86_64_dvd

4. Cleaning up everything

5. [root@server0 ~]# yum  repolist                          //重新列出可用的源

6. 已加载插件:langpacks

7. content.example.com_rhel7.0_x86_64_dvd                      | 4.1 kB  00:00:00     

8. (1/2): content.example.com_rhel7.0_x86_64_dvd/group_gz      | 134 kB  00:00:00     

9. (2/2): content.example.com_rhel7.0_x86_64_dvd/primary_db    | 3.4 MB  00:00:00     

10. 源标识                                 源名称                                 状态

11. content.example.com_rhel7.0_x86_64_dvd added from: http://content.example.com 4,305

12. repolist: 4,305

2 案例2:升级Linux内核

2.1 问题

本例要求为虚拟机 server0安装升级版的新内核:

1. 新版本的内核安装文件可以从以下地址获取:

2. http://classroom/content/rhel7.0/x86_64/errata/Packages/

3. 升级内核,并满足下列要求:当系统重新启动后,升级的新内核应该作为默认内核;原来的内核要被保留,并且仍然可以正常启动

2.2 步骤

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

步骤一:下载新版内核的安装文件

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

如果给定的下载地址中未包含kernel-...rpm文件路径,则打开firefox浏览器,访问指定的网址(如图-5所示)。

图-5

在打开的网页上找到需要的内核文件,右击对应的链接,选择“Copy Link Location”复制下载地址(如图-6所示)。

图-6

2)下载新版内核安装文件

根据前一步获取到的内核下载地址,使用wget命令下载:

1. [root@server0 ~]# wget  http://classroom/content/rhel7.0/x86_64/errata/Packages/kernel-3.10.0-123.1.2.el7.x86_64.rpm

2. --2016-12-23 22:13:47--  http://classroom/content/rhel7.0/x86_64/errata/Packages/kernel-3.10.0-123.1.2.el7.x86_64.rpm

3. 正在解析主机 classroom (classroom)... 172.25.254.254

4. 正在连接 classroom (classroom)|172.25.254.254|:80... 已连接。

5. 已发出 HTTP 请求,正在等待回应... 200 OK

6. 长度:30266784 (29M) [application/x-rpm]

7. 正在保存至: “kernel-3.10.0-123.1.2.el7.x86_64.rpm”

8.

9. 100%[=========================================>] 30,266,784  40.4MB/s 用时 0.7s  

10.

11. 2016-12-23 22:13:47 (40.4 MB/s) - 已保存 “kernel-3.10.0-123.1.2.el7.x86_64.rpm” [30266784/30266784])

12.

13. [root@server0 ~]# ls  -lh  kernel-*.rpm                  //确认下载结果

14. -rw-r--r--. 1 root root 29M 6月  11 2014 kernel-3.10.0-123.1.2.el7.x86_64.rpm

步骤二:安装新版内核

Linux系统支持安装多个不同版本的内核,开机引导时可以选择使用哪个版本。因此只需要正常安装新版内核即可。

1)查看现有内核版本

1. [root@server0 ~]# uname  -r

2. 3.10.0-123.el7.x86_64

2)安装新版本内核

1. [root@server0 ~]# rpm  -ivh  kernel-3.10.0-123.1.2.el7.x86_64.rpm

2. 警告:kernel-3.10.0-123.1.2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

3. 准备中...                          ################################# [100%]

4. 正在升级/安装...

5.    1:kernel-3.10.0-123.1.2.el7        ################################# [100%]

6.                                           //此处需耐心等待,千万别强行终止

7. [root@server0 ~]#

步骤三:确认新内核版本

1)重启系统

1. [root@server0 ~]# reboot

2. .. ..

2)登入系统,确认使用的内核已是新版本

1. [root@server0 ~]# uname  -r

2. 3.10.0-123.1.2.el7.x86_64

3 案例3:配置静态网络地址

3.1 问题

本例要求为虚拟机 server 配置以下静态地址参数:

1. 主机名:server0.example.com

2. IP地址:172.25.0.11

3. 子网掩码:255.255.255.0

4. 默认网关:172.25.0.254

5. DNS服务器:172.25.254.254

3.2 方案

使用nmcli配置网络连接时的基本操作,

查看网络连接、连接详情:

· nmcli con show

· nmcli con show "连接名"

修改网络连接参数:

· nmcli con modify "连接名" ipv4.method auto|manual

· nmcli con modify "连接名" ipv4.addresses "IP地址/掩码长度 [默认网关]" ipv4.dns DNS服务器地址

· nmcli con modify "连接名" connection.autoconnect yes|no

3.3 步骤

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

步骤一:配置固定主机名

1)配置前, 检查是否设置静态主机名

1. [root@server0 ~]# hostnamectl

2.    Static hostname: n/a                         //未设置静态主机名

3. Transient hostname: server0.example.com

2)设置为指定的主机名

1. [root@server0 ~]# vim  /etc/hostname              //建立主机名配置文件

2. server0.example.com

3)配置后,检查结果

1. [root@server0 ~]# hostnamectl

2.    Static hostname: server0.example.com          //已设置静态主机名

3.          Icon name: computer

4. .. ..

步骤二:配置静态IP地址参数

1)查看当前主机的网卡设备、网络连接

1. [root@server0 ~]# nmcli  connection   show

2. 名称                               UUID                                                     类型              设备 

3. System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  eth0

2)修改连接“System eth0”的配置

将配置方式指定为manual,指定IP地址、默认网关、DNS地址,并配置自动连接:

1. [root@server0 ~]# nmcli  connection  modify  "System eth0"  ipv4.method  manual  ipv4.addresses  "172.25.0.11/24  172.25.0.254"  ipv4.dns  172.25.254.254  connection.autoconnect  yes

3)重新激活连接“System eth0”

通过up指令激活连接配置,必要时也可以先down再up:

1. [root@server0 ~]# nmcli  connection  up  "System eth0"          //激活连接

2. Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)

确保系统服务NetworkManager开机自启:

1. [root@server0 ~]# systemctl  restart  NetworkManager

2. [root@server0 ~]# systemctl  enable  NetworkManager

4)检查修改结果,确认无误

检查IP地址:

1. [root@server0 ~]# ifconfig  eth0

2. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

3.         inet 172.25.0.11  netmask 255.255.255.0  broadcast 172.25.0.255

4.         inet6 fe80::5054:ff:fe00:b  prefixlen 64  scopeid 0x20<link>

5.         ether 52:54:00:00:00:0b  txqueuelen 1000  (Ethernet)

6.         RX packets 1394  bytes 138855 (135.6 KiB)

7.         RX errors 0  dropped 0  overruns 0  frame 0

8.         TX packets 944  bytes 98495 (96.1 KiB)

9.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

检查默认网关地址:

1. [root@server0 ~]# route  -n

2. Kernel IP routing table

3. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

4. 0.0.0.0         172.25.0.254    0.0.0.0         UG    1024   0        0 eth0

5. 172.25.0.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0

检查DNS服务器地址:

1. [root@server0 ~]# cat  /etc/resolv.conf

2. # Generated by NetworkManager

3. search example.com

4. nameserver 172.25.254.254

如果在使用nmcli修改网络连接时并未指定ipv4.dns,也可以直接修改DNS客户端配置文件/etc/resolv.conf,确保添加有上述记录即可。

步骤三:验证网络配置结果

通过ssh远程访问server0:

1. [root@room9pc13 ~]# ssh -X root@server0.example.com

2. Warning: Permanently added 'server0.example.com' (ECDSA) to the list of known hosts.

3. Last login: Fri Dec 23 19:00:12 2016 from 172.25.0.250

4. [root@server0 ~]# hostname                             //确认自己的主机名

5. server0.example.com

在虚拟机server0上,可以查询server0、desktop0、content等站点:

1. [root@server0 ~]# host  server0.example.com

2. server0.example.com has address 172.25.0.11

3.

4. [root@server0 ~]# host  desktop0.example.com

5. desktop0.example.com has address 172.25.0.10

6. desktop0.example.com mail is handled by 10 smtp0.example.com.

7.

8. [root@server0 ~]# host  content.example.com

9. content.example.com has address 172.25.254.254

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

4.1 问题

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

1. 找出所有用户 student 拥有的文件

2. 把它们拷贝到 /root/findfiles/ 文件夹中

4.2 步骤

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

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

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

1. [root@server0 ~]# find  /  -user  student  -type f  

2. find: ‘/proc/1853/task/1853/fdinfo/6: 没有那个文件或目录

3. find: ‘/proc/1853/fdinfo/6: 没有那个文件或目录

4. /var/spool/mail/student

5. /home/student/.bash_logout

6. /home/student/.bash_profile

7. /home/student/.bashrc

8. /home/student/.ssh/authorized_keys

9. /home/student/.config/gnome-initial-setup-done

10. /home/student/.config/monitors.xml

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

步骤二:处理找到的文件

1)创建目标文件夹

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

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

以下两种方法任选一种:

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

2. .. ..

3. 或者

4. [root@server0 ~]# \cp  -p  $(find  /  -user  student  -type f)  /root/findfiles/

5. .. ..

3)确认拷贝结果

1. [root@server0 ~]# ls  -lhA  /root/findfiles/

2. 总用量 24K

3. -rw-------. 1 student student 1.7K 7月  11 2014 authorized_keys

4. -rw-r--r--. 1 student student   18 1月  29 2014 .bash_logout

5. -rw-r--r--. 1 student student  193 1月  29 2014 .bash_profile

6. -rw-r--r--. 1 student student  231 1月  29 2014 .bashrc

7. -rw-r--r--. 1 student student    4 7月  11 2014 gnome-initial-setup-done

8. -rw-r--r--. 1 student student 1.5K 7月  11 2014 monitors.xml

9. -rw-rw----. 1 student mail       0 7月  11 2014 student

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

5.1 问题

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

1. 将找到的行按原文顺序拷贝到 /root/wordlist 文件中

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

5.2 步骤

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

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

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

2)确认提取结果

1. [root@server0 ~]# cat /root/wordlist

2. anaseismic

3. antiseismic

4. aseismic

5. aseismicity

6. bradyseismic

7. .. ..

教学环境介绍

##############################################################

虚拟机Server

[root@server0 ~]# echo 123456 > /opt/1.txt

[root@server0 ~]# cat /opt/1.txt

 # echo server0.example.com >  /etc/hostname

 # cat /etc/hostname

 # echo nameserver 172.25.254.254 > /etc/resolv.conf

 # cat /etc/resolv.conf

##################################################################

管理用户和组      用户:/etc/passwd  组: /etc/group

    用户:1.可以登陆操作系统  2.可以实现访问控制(不同的用户具备不同权限)

    组  : 方便对用户管理(将用户加入组

    唯一标识: UID 编号   GID 编号

    管理员用户root:  UID 0

    普通用户UID: 从UID 1000

    组  : 基本组(私有组)     附加组(从属组  公共组)  

     

    一个用户至少属于一个组

#############################################################

添加用户

   用户基本信息存放在 /etc/passwd 文件

  [root@server0 ~]# head -1 /etc/passwd

  root:x:0:0:root:/root:/bin/bash

  用户名:密码占位符:UID:基本GID:用户描述信息:家目录:解释器程序(shell)

 使用 useradd   命令

– useradd [选项]..  用户名

 常用命令选项

 – -u 用户id、-d 家目录路径、-s 登录Shell解释器 、-G 附加组

[root@server0 ~]# useradd -d /mnt/abc nsd06     #指定家目录创建用户

[root@server0 ~]# grep 'nsd' /etc/passwd

[root@server0 ~]# useradd  nsd01

[root@server0 ~]# grep 'nsd' /etc/passwd

[root@server0 ~]# useradd -u 1100 nsd02         #指定UID创建用户

[root@server0 ~]# grep 'nsd' /etc/passwd

[root@server0 ~]# useradd nsd03

[root@server0 ~]# grep 'nsd' /etc/passwd

[root@server0 ~]# id nsd03

   用户名:密码占位符:UID:基本GID:用户描述信息:家目录:解释器程序(shell)

 /sbin/nologin : 禁止用户登陆操作系统

[root@server0 ~]# useradd -s /sbin/nologin nsd07

[root@server0 ~]# grep  'nsd07'   /etc/passwd

  -G 附加组

[root@server0 ~]# groupadd tarena              #创建tarena组

[root@server0 ~]# useradd -G tarena nsd08    #指定组创建用户

[root@server0 ~]# id nsd08

[root@server0 ~]# useradd -G tarena nsd09

[root@server0 ~]# id nsd09

##################################################################

Linux计算器  bc

[root@server0 ~]# bc

1+1       #家法

2

2+2

4

2*3       #乘法

6

10/3     #除法

3

10%3    #取余数运算, 余数一定小于被除数

1

  管道操作:  |

     作用:将前面命令的输出结果,交由后面命令处理,最后输出最后命令的结果

   [root@server0 ~]# head -12 /etc/passwd    |  tail -5

   [root@server0 ~]# cat -n /etc/passwd |  head -12  | tail -5

   [root@server0 ~]# echo 1+1

   [root@server0 ~]# echo 1+1  |  bc

   [root@server0 ~]# ifconfig | less

   [root@server0 ~]# ifconfig | head -2

   [root@server0 ~]#  grep 'root'  /etc/passwd  |  grep 'bash'

###############################################################

 passwd 命令

[root@server0 ~]# useradd harry

[root@server0 ~]# passwd harry

更改用户 harry 的密码 。

新的 密码:

无效的密码: 密码是一个回文

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[root@server0 ~]# su - harry            #临时切换用户身份

[harry@server0 ~]$ passwd

Changing password for user harry.

Changing password for harry.

(current) UNIX password:             #请输入旧密码

New password:                        #请输入新的密码

Retype new password:                 #请重新输入与上面一致的,新的密码

passwd: all authentication tokens updated successfully.

[harry@server0 ~]$ exit              #退出

logout

[root@server0 ~]# echo 123 | passwd --stdin harry   #非交互式设置密码

######################## ########################################

非交互式设置密码     echo 密码    |     passwd --stdin 用户名

用户密码信息存放在 /etc/shadow 文件

#########################################################

使用 usermod 命令

– usermod [选项]... 用户名

 常用命令选项

– -u 用户id、-d 家目录路径、-s 登录Shell解释器、-G 附加组

[root@server0 ~]# useradd natasha

[root@server0 ~]# grep 'natasha' /etc/passwd

natasha:x:1001:1001::/home/natasha:/bin/bash

# usermod -u 1300 -d /opt/abc -s /sbin/nologin -G root natasha

[root@server0 ~]# grep 'natasha' /etc/passwd

natasha:x:1300:1001::/opt/abc:/sbin/nologin

[root@server0 ~]# id natasha

补充: 可以vim修改/etc/passwd 文件内容

删除用户

使用 userdel 命令

– userdel [-r]  用户名   

         -r:连同用户家目录一并删除

[root@server0 ~]# userdel -r nsd01

[root@server0 ~]# id nsd01

id: nsd01: no such user

[root@server0 ~]# userdel  nsd02

[root@server0 ~]# id nsd02

id: nsd02: no such user

###############################################################

管理组账号   /etc/group

组基本信息存放在 /etc/group 文件

[root@server0 ~]# groupadd stugrp

[root@server0 ~]# tail -1 /etc/group

stugrp:x:1002:

组名:组的密码占位符:本组的GID编号:本组成员的列表

[root@server0 ~]# useradd kenji

使用 gpasswd 命令

– gpasswd -a 用户名 组名     #用户加入组

– gpasswd -d 用户名 组名     #从组中删除用户

[root@server0 ~]# gpasswd -a kenji stugrp

[root@server0 ~]# grep 'stugrp' /etc/group

[root@server0 ~]# gpasswd -a tom stugrp

[root@server0 ~]# grep 'stugrp' /etc/group

[root@server0 ~]# gpasswd -a jack stugrp

[root@server0 ~]# grep 'stugrp' /etc/group

[root@server0 ~]# gpasswd -d kenji stugrp

[root@server0 ~]# grep 'stugrp' /etc/group

[root@server0 ~]# gpasswd -a kaka stugrp

[root@server0 ~]# grep 'stugrp' /etc/group

删除组

? 使用 groupdel 命令

– groupdel 组名

###############################################################

tar备份与恢复

? 归档的含义

– 将许多零散的文件整理为一个文件

– 文件总的大小基本不变

? 压缩的含义

– 按某种算法减小文件所占用空间的大小

– 恢复时按对应的逆向算法解压

  Linux独有的压缩工具:

              gzip  ------》 *.gz

bzip2 ------》 *.bz2

   

xz    ------》 *.xz

[root@server0 /]# rm -rf /opt/*

[root@server0 /]# cp /etc/passwd /opt/

[root@server0 /]# cp /etc/shadow /opt/

[root@server0 /]# cp /etc/group /opt/

[root@server0 /]# cd /opt/

[root@server0 opt]# ls

[root@server0 opt]# gzip /opt/group

[root@server0 opt]# ls

[root@server0 opt]# bzip2 /opt/passwd

[root@server0 opt]# xz /opt/shadow

[root@server0 opt]# ls

 tar 集成备份工具

    tar    选项         tar包名字       被归档的文件

[root@server0 /]# rm -rf /opt/*

[root@server0 /]# tar -cPf test01.tar  /home/  /mnt/

[root@server0 /]# ls

[root@server0 /]# tar -cPf /opt/file01.tar  /home/  /mnt/

[root@server0 /]# ls /opt/

[root@server0 /]# mkdir /nsd

[root@server0 /]# ls /opt/file01.tar

[root@server0 /]# tar -xf /opt/file01.tar -C /nsd/

tar: 从成员名中删除开头的“/”

[root@server0 /]# ls /nsd/

[root@server0 /]# ls /nsd/home/

    -c : 创建归档       -P:保持路径不变进行归档      -f:指定归档包的名字

    -x: 释放归档        -C:指定释放位置         -t : 查看tar包内容

– -z、-j、-J : 调用 .gz、.bz2、.xz 格式的工具进行处理

[root@server0 /]# rm -rf /opt/*

[root@server0 /]# echo AAAA > /opt/1.txt

[root@server0 /]# cat /opt/1.txt

AAAA

[root@server0 /]# tar -cPf /root/test.tar /opt/1.txt

[root@server0 /]# tar -tf /root/test.tar            

1 案例1:配置用户和组账号

1.1 问题

本例要求创建下列用户、组以及组的成员关系:

1. 新建用户 alex,其用户ID为3456,密码是flectrag

2. 创建一个名为 adminuser 的组

3. 创建一个名为 natasha 的用户,其属于 adminuser 组,这个组是该用户的从属组

4. 创建一个名为 harry 的用户,其属于 adminuser 组,这个组是该用户的从属组

5. 创建一个名为 sarah 的用户,其在系统中没有可交互的 Shell,并且不是 adminuser 组的成员

6. natasha 、harry、sarah 的密码都要设置为 flectrag

1.2 步骤

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

步骤一:创建组账号

1. [root@server0 ~]# groupadd  adminuser

步骤二:按照要求的属性创建用户账号

1. [root@server0 ~]# useradd  -u  3456  alex

2.

3. [root@server0 ~]# useradd  -G  adminuser  natasha

4. [root@server0 ~]# useradd  -G  adminuser  harry

5. [root@server0 ~]# useradd  -s  /sbin/nologin  sarah

步骤三:为用户设置登录密码

1. [root@server0 ~]# echo  flectrag  |  passwd  --stdin  alex

2. 更改用户 alex 的密码 。

3. passwd:所有的身份验证令牌已经成功更新。

4.

5. [root@server0 ~]# echo  flectrag  |  passwd  --stdin  natasha

6. 更改用户 natasha 的密码 。

7. passwd:所有的身份验证令牌已经成功更新。

8. [root@server0 ~]# echo  flectrag  |  passwd  --stdin  harry

9. 更改用户 harry 的密码 。

10. passwd:所有的身份验证令牌已经成功更新。

11. [root@server0 ~]# echo  flectrag  |  passwd  --stdin  sarah

12. 更改用户 sarah 的密码 。

13. passwd:所有的身份验证令牌已经成功更新。

2 案例2:创建一个备份包

2.1 问题

本例要求使用 tar 工具完成以下备份任务:

1. 创建一个名为 /root/backup.tar.bz2 的归档文件

2. 其中包含 /usr/local 目录中的内容

3. tar 归档必须使用 bzip2 进行压缩

2.2 方案

制作归档压缩包:

· tar -zPcf 备份文件.tar.gz 文档....

· tar -jPcf 备份文件.tar.bz2 文档....

· tar -JPcf 备份文件.tar.xz 文档....

查看归档压缩包:

· tar -tf 备份文件

释放归档压缩包:

· tar -xf 备份文件 [-C 目标目录]

2.3 步骤

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

步骤一:创建备份文件

使用tar命令制作归档备份,结合-j选项调用bzip2压缩工具,保留绝对路径:

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

步骤二:确认结果

1. [root@server0 ~]# ls  -lh  /root/backup.tar.bz2          //确认文件

2. -rw-r--r--. 1 root root 1.9K 12月 23 23:22 /root/backup.tar.bz2

3.

4. [root@server0 ~]# tar  tPf  /root/backup.tar.bz2         //确认内容

5. /usr/local/

6. /usr/local/bin/

7. /usr/local/bin/lab

8. /usr/local/etc/

9. /usr/local/games/

3 案例3:配置NTP网络时间客户端

3.1 问题

本例要求配置虚拟机 server0,能够自动校对系统时间。相关信息如下:

1. NTP服务器位于 classroom.example.com

2. 此客户机的系统时间应当与NTP服务器的时间保持同步

3.2 方案

NTP服务端可以为客户端提供标准的日期时间。

在RHEL7主机中可以配置软件包chrony来使用NTP时间同步。

3.3 步骤

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

步骤一:确认已安装NTP客户端软件包chrony

通常系统会默认安装此软件包:

1. [root@server0 ~]# rpm  -q  chrony

2. chrony-1.29.1-1.el7.x86_64

如果检查发现此软件包没有安装,请通过yum命令安装:

1. [root@server0 ~]# yum  -y  install  chrony

2. .. ..

如果发现此软件包已经安装,但配置文件/etc/chrony.conf损坏或信息丢失,可删除此文件后重新安装chrony软件包:

1. [root@server0 ~]# rm  -rf  /etc/chrony.conf

2. [root@server0 ~]# yum  -y  reinstall  chrony

3. 已加载插件:langpacks

4. 正在解决依赖关系

5. --> 正在检查事务

6. ---> 软件包 chrony.x86_64.0.1.29.1-1.el7 将被 重新安装

7. --> 解决依赖关系完成

8. .. ..

步骤二:调整NTP客户端配置

1)修改/etc/chrony.conf文件内的server配置

移除不可用的NTP服务器记录,正确添加可用的记录:

1. [root@server0 ~]# vim  /etc/chrony.conf

2. .. ..

3. #server 0.rhel.pool.ntp.org iburst          //注释掉默认的server配置,

4. #server 1.rhel.pool.ntp.org iburst

5. #server 2.rhel.pool.ntp.org iburst

6. #server 3.rhel.pool.ntp.org iburst

7. server  classroom.example.com  iburst          //添加新的配置

8. .. .. 

2)开启NTP时间同步

1. [root@server0 ~]# timedatectl                 //查看现有状态

2. .. ..

3.      NTP enabled: no                        //NTP可能尚未启用

4. NTP synchronized: no                          //尚未完成过一次NTP同步

5. .. ..

6. [root@server0 ~]# timedatectl  set-ntp  yes          //启用NTP同步

7. [root@server0 ~]# timedatectl              //查看启用后的状态

8. .. ..

9.      NTP enabled: yes                        //NTP已经启用

10. NTP synchronized: no                          //尚未完成过一次NTP同步

11. .. ..

步骤三:测试NTP时间同步

1)先设置一个错误的系统日期时间

1. [root@server0 ~]# date  -s  '2001-09-11 11:30:00'              //调整日期时间

2. 2001年 09月 11日 星期二 11:30:00 CST

3. [root@server0 ~]# date                                      //确认调整结果

4. 2001年 09月 11日 星期二 11:30:01 CST

2)启动系统服务chronyd,并设为开机自启

1. [root@server0 ~]# systemctl  restart  chronyd

2. [root@server0 ~]# systemctl  enable  chronyd

3)重新查看当前的系统时间

重启chronyd服务后稍等片刻,当前系统的日期时间应该恢复正常(与NTP服务器保持一致):

1. [root@server0 ~]# date

2. 2016年 12月 23日 星期五 23:44:53 CST

再次执行timedatectl查看,会发现NTP synchronized的值已经变成yes:

1. [root@server0 ~]# timedatectl  

2. .. ..

3.      NTP enabled: yes                        //NTP已经启用

4. NTP synchronized: no                          //已经完成过一次NTP同步

5. .. ..

4 案例4:配置一个cron任务

4.1 问题

本例要求为用户 natasha 配置一个定时任务,具体要求如下:

1. 每天在本地时间 14:23 执行

2. 需要完成的任务操作为 /bin/echo hiya

4.2 方案

配置格式可参考 /etc/crontab 文件:

1. 分  时  日  月  周      任务命令行(绝对路径)

在表示各段的时间点时,除了明确的数值以外,还可以参考以下形式:

· *:匹配范围内任意时间

· ,:分隔多个不连续的时间点

· -:指定连续时间范围

· /n:指定时间频率,每n ...

4.3 步骤

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

步骤一:配置crontab任务记录

1)确保系统服务crond可用

1. [root@server0 ~]# systemctl  restart  crond

2. [root@server0 ~]# systemctl  enable  crond

2)为用户natasha添加计划任务

1. [root@server0 ~]# crontab  -e  -u  natasha

2. 23  14  *  *  *  /bin/echo hiya

步骤二:检查任务是否执行

1)将系统日期时间临时调整到任务时间点前10秒左右

1. [root@server0 ~]# date  -s  '14:22:50'              //设置

2. Sat Nov 26 14:22:50 CST 2016

3. [root@server0 ~]# date                              //确认日期时间

4. Sat Nov 26 14:22:55 CST 2016

2)等待10秒后查看/var/log/cron日志,应该会有执行记录

1. [root@server0 ~]# tail  /var/log/cron

2. .. ..

3. Nov 26 14:23:02 localhost CROND[3818]: (natasha) CMD (/bin/echo hiya)

3)恢复系统日期时间

1. [root@server0 ~]# hwclock  -s                      //重设为系统时钟

2. [root@server0 ~]# date                             //确认日期时间

3. Sat Nov 26 05:05:23 CST 2016

 

 

使用 crontab 命令

– 编辑:crontab -e [-u 用户名]

   每分钟记录    当前系统的时间, 写入到/opt/time.txt

虚拟机Server

[root@server0 ~]# date

2018年 03月 15日 星期四 10:10:27 CST

[root@server0 ~]# date > /opt/time.txt

[root@server0 ~]# cat /opt/time.txt

[root@server0 ~]# date >> /opt/time.txt

[root@server0 ~]# cat /opt/time.txt

[root@server0 ~]# crontab -e -u root

*/1  *  *  *  *    date >> /opt/time.txt

[root@server0 ~]# cat /opt/time.txt

猜你喜欢

转载自blog.csdn.net/Perfect11_1/article/details/81266456