ADMIN05 - 管理使用者和組、tar備份和恢復、NTP時間同步

李俊的部落格發表於2018-03-14
• 每個學員機上有三臺預先配置好的虛擬機器
• 真機上操作:控制教學用虛擬機器
– 格式: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備份與恢復

• 歸檔的含義
– 將許多零散的檔案整理為一個檔案

– 檔案總的大小基本不變

• 壓縮的含義
– 按某種演算法減小檔案所佔用空間的大小
– 恢復時按對應的逆向演算法解壓

  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

相關文章