一、linux使用者
1、什麼是使用者
使用者是用來執行某一些程式、擁有某一些檔案或目錄。
在Linux裡面,使用者分成三大類:root使用者、系統使用者、普通使用者。
使用者是用UID來唯一標識身份的,且root使用者UID為0,系統使用者UID範圍為1-999,普通使用者UID從1000開始預設依次往後累加。
什麼是系統使用者?
一般執行的程式屬於系統核心程式,那麼執行這些程式的使用者都是系統使用者,通常不會到系統前臺,也就是命令直譯器shell裡面去登入。
2、使用者有關的命令
useradd命令——建立使用者,通常建立完使用者後要設定一個密碼
[root@localhost ~]# useradd wzg
[root@localhost ~]# passwd wzg
usermod命令——修改使用者屬性
-g -> 為使用者指定主要組
-G -> 為使用者指定從屬組
-c -> 為使用者新增一個註釋欄位
-u -> 為使用者指定一個UID
-L -> 鎖定使用者,使使用者密碼不可用,例如連續輸錯密碼
-U -> 解鎖使用者,使使用者密碼恢復可用
userdel命令——刪除使用者
userdel 使用者名稱 -> 非徹底刪除,宿主目錄被保留
userdel -r 使用者名稱 -> 徹底刪除,宿主目錄被刪除
附:
sudo 命令 -> 以root身份執行命令(root使用者具有系統全部許可權的使用者,如果要執行安裝或刪除軟體以及管理系統檔案等任務,必須將特權升級到root使用者)
id命令 -> 檢視當前已登入使用者的資訊,也可以檢視其他使用者的基本資訊。
ps -au -> 檢視當前終端下執行的所有程式並顯示與之相關聯的使用者。
ls -l -> 檢視某一檔案或目錄的使用者所有權。或檢視三類使用者對某個檔案的訪問許可權
[root@localhost /]# ls -l
total 28
lrwxrwxrwx. 1 root root 7 Sep 21 12:53 bin -> usr/bin
dr-xr-xr-x. 3 root root 4096 Sep 21 12:58 boot
drwxr-xr-x. 20 root root 3260 Nov 16 19:51 dev
drwxr-xr-x. 141 root root 8192 Nov 16 19:53 etc
drwxr-xr-x. 6 root root 62 Oct 31 11:09 home
...
第一列第1位:
- l -> link 代表:連結檔案
- d -> directory 代表:資料夾
- 橫槓 - 代表:普通檔案
第一列後9位:(r可讀,w可寫,x可執行)
- 第一組代表所屬使用者對檔案的訪問許可權
- 第二組代表所屬組對檔案的訪問許可權
- 第三組代表其他使用者對檔案的訪問許可權(除了所屬使用者和組以外的其他使用者)
第三列root代表:檔案所屬使用者是root
第四列root代表:檔案所屬組是root組
3、本地使用者的資訊
路徑:/etc/passwd
格式 -> 使用者名稱:密碼:UID:GID:註釋:宿主目錄:命令環境
- 密碼:用X代替儲存在影子檔案中
- GID:新建使用者後系統預設一個同名組
- 註釋:可空
- 宿主目錄:/root或者/home/dir
- 命令環境:/bin/bash或者/sbin/nologin
/bin/bash -> 解鎖賬戶,使用者可以使用shell登陸系統
/sbin/nologin -> 鎖定賬戶,使用者不能登陸系統,但可以執行某個程式,如果哪個使用者屬於不安全使用者,就可以將該使用者設定為nologin
# 練習
# 建立一個名為luna的使用者,在系統中沒有可登陸的shell
[root@localhost ~]# useradd luna
[root@localhost ~]# passwd luna
[root@localhost ~]# vim /etc/passwd
找到luna使用者,把/bin/bash 改為:/sbin/nologin
4、使用者密碼的資訊
/etc/shadow -> 存放本地使用者的密碼
格式 -> 使用者名稱:密碼:最後更改密碼日期:密碼最短使用期限:密碼最多使用期限:密碼到期警告期:密碼到期後還可使用時間:密碼到期日:預留空白欄位
- 密碼: * -> 代表沒有密碼,是空的,!-> 代表該使用者被禁用
- 密碼最短使用期限:0 -> 表示無限期使用
chage -使用者名稱 命令——設定賬戶到期時間
-d -> 設定最後一次修改使用者密碼的時間,以距離1970年1月1日開始算起
-E -> 設定賬戶到期日期
-I -> 設定賬戶到期後能繼續登陸系統的時間
-m -> 設定賬戶可以修改密碼的最少天數
-M -> 設定賬戶必須更改密碼前的最多天數
-W -> 設定密碼即將到期的警告天數
二、Linux組
1、什麼是組
主要組的概念:
當系統建立一個使用者的時候,會單獨給這個使用者分配一個組。
在/etc/passwd檔案中的第四個欄位GID定義。
- 特點:預設情況下,組名與使用者名稱同名,GID與UID同號,該組裡面只有該成員本身一人
- 特點:每個使用者有且僅有一個主要組,是1:1的數量關係。
從屬組(附加組)的概念:
某個使用者被人為新增到某個額外的組,獲取了這個組的許可權,那麼這個組就叫做從屬組,或者附加組,它是非主要組。
在/etc/group檔案中的最後一個欄位定義。
- 特點:每個使用者的從屬組可以有多個,是1:n的數量關係。
- 特點:反過來,一個組可以有多個使用者成員,即可以是多個使用者的從屬組。
2、組有關的命令
groupadd命令——建立組
-g -> 給新建的組分配一個GID
groupmod命令——修改現有的組 -modify
-g -> 指定新的GID(主組)
-G -> 指定附加組
-n -> 指定新的groupname
groupdel命令——刪除組 (不能刪除屬於其他使用者的主組)
# 練習
# 建立一個名為groupone的組
# 建立一個名為harry的使用者,設定使用者ID為2021,其屬於staff組,且這個組是該使用者的附加組
[root@localhost ~]# groupadd groupone
[root@localhost ~]# useradd -u 2021 -G groupone harry
3、本地組資訊
/etc/group -> 存放本地組資訊
格式 -> 組名稱:組密碼:GID:從屬組使用者
- 組密碼:用X代替,密碼存放在/etc/gshadow檔案中
- 從屬組使用者:即有哪些使用者從屬於這個組
三、Linux軟體包管理器
1、什麼是rpm包和yum源
紅帽有兩款軟體包管理器,分別是rpm和yum。
1、什麼是rpm包?
rpm包,類似於Windows裡面的exe檔案,只不過在Linux裡面,一個軟體通常需要由多個rpm才能安裝好,而rpm包之間存在著安裝順序,這種安裝順序就叫做依賴性關係。
2、什麼是yum源?
自動化解析rpm包之間的依賴性關係,實現了安裝包的批量安裝。在Linux裡面,要使用yum,就需要提前配置一個yum源,用來解決rpm包之間的依賴性關係。
2、如何配置本地yum源:
要使用yum軟體包管理器,首先得需要一個yum倉庫,也就是一個yum源,這個是需要我們自己來配置的。
而這個yum倉庫可以使用本地倉庫(file),也可以使用遠端連結倉庫(http或ftp)。
具體操作步驟:
(1)先在VMware裡面把系統映象檔案連線到虛擬機器的光碟機上;
(2)掛載光碟機裡的映象:
[root@localhost ~]# mount /dev/cdrom /media
(3)修改yum源配置檔案local.repo(注意,檔案字尾為.repo,檔名可以自定義):
[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[rhel]
name=rhel
baseurl=file:///media
enabled=1 #代表開啟此yum倉庫,0為關閉此倉庫
gpgcheck=0 #代表驗證倉庫軟體包的完整性(安全性),0為不驗證
(4)清空yum源快取資訊:
[root@localhost ~]# yum clean all
(5)檢索當前yum源資訊:
[root@localhost ~]# yum repolist
3、軟體包管理器命令
rpm命令用法:
-i -> install -> 安裝某個package dependencies (依賴包)
-e -> erase -> 解除安裝(刪除)某個package
-v -> 顯示整個安裝過程中的詳細資訊
-h -> 以#號顯示安裝進度
-q -> query -> 查詢
-f -> filename -> 檔名
-l -> list -> 羅列檔案
常見用法:
[root@localhost ~]# rpm -ivh yum-utils-1.1.31-40.el7.noarch.rpm #安裝某個軟體包並顯示詳細安裝過程,以#號顯示安裝進度
[root@localhost ~]# rpm –qf /etc/chrony.conf #查詢某檔案(chrony.conf)是由哪個軟體包安裝的
[root@localhost ~]# rpm -aq httpd #查詢對應的服務所要用到的rpm包
[root@localhost ~]# rpm -ql httpd #查詢對應的服務所涉及到的所有檔案,包括資料檔案和配置檔案
yum命令用法:
[root@localhost ~]# yum clean all #清空yum 快取
[root@localhost ~]# yum repolist #列表檢視本作業系統所有的yum源
[root@localhost ~]# yum list #顯示已安裝和可用的軟體包
[root@localhost ~]# yum provides + 路徑 #查詢某個檔案安裝的rpm包
[root@localhost ~]# yum -y install + 軟體名 #安裝某個軟體
[root@localhost ~]# yum -y remove + 軟體名 #解除安裝某個軟體
[root@localhost ~]# yum -y update + 軟體名 #更新某個軟體
[root@localhost ~]# yum info #提供與軟體包相關的詳細資訊,包括安裝所需的磁碟空間
[root@localhost ~]# yum history #查詢yum軟體管理記錄
[root@localhost ~]# yum -y upgrade #升級系統核心
四、Linux的網路配置與管理
1、網路基礎命令
1、ifconfig 命令 <=> ip addr show 命令——檢視本地所有網路卡配置資訊
其中,ens32:代表本地乙太網網路卡,lo:代表本地迴環網路卡,virbr0:代表虛擬網路卡
2、ping 命令——測試網路連通性(使用ctrl+c來結束測試)
3、ip route 命令——檢視本地路由
4、tracepath 命令——檢視到目標ip地址所經的路由器地址
5、netstat 命令——檢視網路連線狀態
netstat -pant -> 檢視帶有PID程式資訊的tcp協議網路埠連線狀態
6、ss 命令——獲取系統套接字(sockets)統計資訊
ss -lt -> 與netstat -pant 功能類似,也可用來檢視網路連線狀態
2、編輯網路配置檔案
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet #網路卡型別是乙太網
BOOTPROTO=none #ip地址獲取方式有三種:dhcp動態獲取ip,none或static手動設定固定ip地址
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32 #網路卡連線名
UUID=2c22b930-96b9-4ef4-abfb-ff9fbc85ff23 #網路卡的系統裝置ID號
DEVICE=ens32 #裝置名
ONBOOT=yes #是否開機自啟
IPADDR=192.168.100.20 #IPv4地址
PREFIX=24 #子網掩碼,相當於NETMASK=255.255.255.0
GATEWAY=192.168.100.1 #閘道器
DNS1=192.168.100.254 #DNS地址,一張網路卡可以繫結多個DNS
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
3、通過nmcli命令來配置
# 檢視所有網路卡連線資訊
[root@localhost ~]# nmcli connection show
# 刪除已有的網路卡連線名ens32
[root@localhost ~]# nmcli connection delete ens32
# 給網路卡ens32新增一個新的網路卡連線eth0,設定為:乙太網型別、開機自啟
[root@localhost ~]# nmcli connection add con-name eth0 ifname ens32 type ethernet autoconnect yes
# 將網路卡連線eth0修改為:手動新增IPv4地址,IP地址是:192.168.100.20/24,閘道器地址:192.168.100.2,對應的dns伺服器地址是:119.29.29.29
[root@localhost ~]# nmcli connection modify eth0 ipv4.method man ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.2 ipv4.dns 119.29.29.29
# 開啟網路卡連線eth0
[root@localhost ~]# nmcli connection up eth0
#如果網路卡連線起不來,可以先關閉該連線,然後再開啟
[root@localhost ~]#nmcli connection down eth0
# 重新載入所有的網路卡連線配置
[root@localhost ~]# nmcli connection reload
# 因為修改了網路卡配置,所以需要再重啟一下系統的網路服務
[root@localhost ~]# systemctl restart network
# 檢查網路是否配好
[root@localhost ~]# ifconfig
# 或者檢視配置檔案是否正確
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# 測試新配置好的本地網路是否ping得通
[root@localhost ~]# ping 192.168.100.20