您的位置:首页 > 编程语言 > PHP开发

ADMIN05 - 管理用户和组、tar备份和恢复、NTP时间同步

2018-03-14 22:04 477 查看
• 每个学员机上有三台预先配置好的虚拟机
• 真机上操作:控制教学用虚拟机
– 格式:rht-vmctl  控制指令   虚拟机名
– 常用控制指令: reset(还原)
[root@room9pc01 ~]# rht-vmctl reset classroom
[root@room9pc01 ~]# rht-vmctl reset server
[root@room9pc01 ~]# rht-vmctl reset desktop

  虚拟机Server
          IP地址:172.25.0.11
                  主机名:server0.example.com
                  系统版本:RHEL 7.0

  虚拟机Desktop
          IP地址:172.25.0.10
                  主机名:desktop0.example.com
                  系统版本:RHEL 7.0

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

虚拟机Server
[root@server0 ~]# echo hello
[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     #DNS服务器配置文件

##################################################################
管理用户和组
    用户: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

 /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*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 文件

[root@server0 ~]# groupadd stugrp
[root@server0 ~]# tail -1 /etc/group
stugrp:x:1002:



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

[root@server0 ~]# useradd kenji
[root@server0 ~]# useradd jack
[root@server0 ~]# useradd tom
[root@server0 ~]# useradd kaka

使用 gpasswd 命令
– gpasswd -a 用户名 组名     #用户加入组                (****记住****)
– gpasswd -d 用户名 组名     #从组中删除用户

[root@server0 ~]# gpasswd -a kenji 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备份与恢复

• 归档的含义
– 将许
4000
多零散的文件整理为一个文件
– 文件总的大小基本不变
• 压缩的含义
– 按某种算法减小文件所占用空间的大小
– 恢复时按对应的逆向算法解压

  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包内容

[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             #查看tar包里面内容

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

[root@server0 /]# tar -xPf /root/test.tar    #绝对路径释放
[root@server0 /]# cat /opt/1.txt
AAAA
[root@server0 /]# 

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

[root@server0 ~]# rm -rf /opt/*
[root@server0 ~]# tar -zcPf /opt/nsd.tar.gz  /home/
[root@server0 ~]# ls /opt/

[root@server0 ~]# rm -rf /mnt/*
[root@server0 ~]# tar -xf /opt/nsd.tar.gz -C /mnt/   (不要忘记了 -C)

[root@server0 ~]# ls /mnt/
[root@server0 ~]# tar -jcPf /opt/abc.tar.bz2  /home/
[root@server0 ~]# ls /opt/

[root@server0 ~]# tar -JcPf /opt/home.tar.xz  /home/
[root@server0 ~]# ls /opt/
###############################################################
查看日期时间
[root@server0 ~]# date
2018年 03月 14日 星期三 17:21:38 CST
[root@server0 ~]# date +%F         #显示年-月-日
2018-03-14
[root@server0 ~]# date +%Y         #显示年
2018
[root@server0 ~]# date +%m         #显示月
03
[root@server0 ~]# date +%d   #显示当天是多少号
14
[root@server0 ~]# date +%H         #显示时
17
[root@server0 ~]# date +%M         #显示分
修改时间
[root@server0 ~]# date  -s   "年-月-日   时:分:秒"
##########################################################
NTP时间同步
NTP网络时间协议
• Network Time Protocol
– NTP服务器为客户机提供标准时间
– NTP客户机需要与NTP服务器保持沟通
  
  服务端:服务端软件,classroom.example.com  NTP服务器
  客户端:客户端软件.虚拟机server

  1.安装客户端同步时间的软件chrony
 [root@server0 ~]# yum -y install chrony
 [root@server0 ~]# rpm -q chrony

  2.修改配置文件指定服务端位置
 [root@server0 ~]# vim /etc/chrony.conf
  以 # 开头的行,是注释
#server 0.rhel.pool.ntp.org iburst          #前面加上#注释
#server 1.rhel.pool.ntp.org iburst          #前面加上#注释
#server 2.rhel.pool.ntp.org iburst          #前面加上#注释
server classroom.example.com iburst

  3.重起服务
 [root@server0 ~]# systemctl restart chronyd   #重起服务
 [root@server0 ~]# systemctl enable chronyd    #随机自启动

  4.验证:
 [root@server0 ~]# date -s "2008-10-3"  #修改系统时间
  2008年 10月 03日 星期五 00:00:00 CST
 [root@server0 ~]# date
 [root@server0 ~]# systemctl restart chronyd
 [root@server0 ~]# date
 [root@server0 ~]# date
---------------------------------------------------------------------------------------------------------------------------------
案例练习,准备:
            rht-vmctl  reset  classroom
            rht-vmctl  reset  server
       rht-vmctl  reset  desktop
######################################################
案例1:为虚拟机 server 配置以下静态地址参数
– 主机名:server0.example.com
[root@server0 ~]# vim /etc/hostname
– IP地址:172.25.0.120
– 子网掩码:255.255.255.0
– 默认网关:172.25.0.254
[root@server0 ~]# nmcli connection modify 'System eth0' ipv4.method manual ipv4.addresses '172.25.0.120/24 172.25.0.254' connection.autoconnect yes
– DNS服务器:172.25.254.254
[root@server0 ~]# vim /etc/resolv.conf

nameserver 172.25.254.254

案例2:指定yum软件源
为 server0 指定可用的 yum 软件源
– YUM软件库的地址为 http://classroom.example.com/content/rhel7.0/x86_64/dvd [root@server0 yum.repos.d]# vim dvd.repo 
#服务端具体路径
baseurl=http://classroom.example.com/content/rhel7.0/x86_64/dvd
– 将此配置为虚拟机 server0 的默认软件仓库
– 确认可用的仓库列表
[root@server0 ~]# yum repolist 
– 利用yum仓库安装system-config-kickstart 
[root@server0 yum.repos.d]# yum install system-config-kickstart.noarch 

案例4:tar制作/释放归档压缩包(zcf、ztf、zxf、jcf、jtf、jxf、cf、tf)
    1)备份/boot、/home这两个文件夹,保存为boothome.tar.gz文件
[root@server0 tmp]# tar zcf /tmp/boothome.tar.gz /boot/ /home/
    2)查看boothome.tar.gz文件内包含哪些内容 
[root@server0 tmp]# tar -tf boothome.tar.gz 

    3)将boothome.tar.gz释放到文件夹/root/boothome/下
[root@server0 boothome]# tar -xf /tmp/boothome.tar.gz -C /root/boothome/

    4)备份/usr/sbin目录,保存为usrsbin.tar.bz2文件
[root@server0 tmp]# tar -jcf /tmp/usrsbin.tar.bz2 /usr/sbin/

    5)查看usrsbin.tar.bz2文件内包含哪些内容
[root@server0 tmp]# tar -tf /tmp/usrsbin.tar.bz2 

    6)将usrsbin.tar.bz2释放到/root/usrsbin/文件夹下
[root@server0 tmp]# tar -xf /tmp/usrsbin.tar.bz2 -C /root/usrbin

案例5:添加并测试用户账号
    1)创建一个名为stu01的用户账号
[root@server0 usrbin]# useradd stu01

    2)检查/etc/passwd、/etc/shadow文件的最后一行
[root@server0 ~]# tail -1 /etc/passwd
stu01:x:1001:1001::/home/stu01:/bin/bash
[root@server0 ~]# tail -1 /etc/shadow
stu01:!!:17604:0:99999:7:::

    3)检查/home/新增加的宿主目录(家目录)
[root@server0 home]# ls
stu01  student

    4)为用户stu01设置一个密码(123456)
[root@server0 home]# echo 123456 |passwd --stdin stu01 

案例6:添加账号时设置不同属性
    1)新建用户nsd01,宿主目录位于/opt/nsd01
[root@server0 home]# useradd -d /opt/nsd01 nsd01

    2)新建系统账号sys01,将UID设为1234,登录Shell设为/sbin/nologin
[root@server0 home]# useradd -u 1234 -s /sbin/nologin sys01

    3)为用户sys01设置密码,并测试是否能够登录
[root@server0 home]# echo 123456 | passwd --stdin sys01

    4)新建用户admin,将其基本组设为users,附加组设为adm、root
[root@server0 home]# useradd -g users -G adm,root admin
    [root@server0 home]# id admin
uid=1235(admin) gid=100(users) 组=100(users),0(root),4(adm)
[root@server0 home]# 

案例7:passwd设置密码
    1)给用户nsd01设置密码123456
[root@server0 home]# passwd nsd01 

    2)采用--stdin方式将用户nsd01的密码设为654321
[root@server0 home]# echo 654321 |passwd --stdin nsd01

案例8:usermod修改用户
    1)新建一个用户nsd03,将宿主目录设为/opt/home03,并设置密码
[root@server0 home]# useradd -d /opt/home03 nsd03

    2)设置nsd03密码为redhat
[root@server0 home]# passwd nsd03

    3)将用户nsd03的宿主目录改为/home/nsd03
        usermod -d /home/nsd03 nsd03

[root@server0 home]# grep 'nsd03' /etc/passwd

    4)将用户sys01的登录Shell改为/bin/bash
        usermod -s /bin/bash sys01

[root@server0 home]# grep 'sys01' /etc/passwd

案例9:组账号基本管理
    1)新建组账号stugrp
[root@server0 home]# groupadd stugrp

    2)为stugrp组添加三个成员用户(user01、root、zhangsan)
[root@server0 home]# gpasswd -a user01 stugrp
正在将用户“user01”加入到“stugrp”组中
[root@server0 home]# gpasswd -a root stugrp
正在将用户“root”加入到“stugrp”组中
[root@server0 home]# gpasswd -a zhangsan stugrp
正在将用户“zhangsan”加入到“stugrp”组中

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

    3)从stugrp组删除一个成员(user01)
[root@server0 home]# gpasswd -d user01 stugrp
正在将用户“user01”从“stugrp”组中删除

案例10:配置NTP网络时间客户端
配置虚拟机 server0,自动校对系统时间
[root@server0 home]# yum -y install chrony
NTP服务器位于 classroom.example.com 
[root@server0 home]# vim /etc/chrony.conf 

此客户机的时间与NTP服务器的时间保持同步
[root@server0 home]# systemctl restart chronyd.service 
[root@server0 home]# systemctl enabled chronyd
验证:
[root@server0 ~]# date -s "2008-10-3"
 2008年 10月 03日 星期五 00:00:00 CST
[root@server0 ~]# date
[root@server0 ~]# systemctl restart chronyd
[root@server0 ~]# date
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: