更新時間:2020-03-14 來源:傳智播客 瀏覽量:
學習目標
1、了解用戶和用戶組的概念
2、可以添加useradd和刪除userdel用戶,修改用戶密碼passwd
3、可以添加groupadd和刪除groupdel用戶組
4、了解管道符|的作用
5、會使用ifconfig查看IP地址
6、了解網卡配置文件的位置和常見配置項
7、知道常用的SSH客戶端連接工具
8、會使用mobaxterm連接到linux
文章目錄
一、用戶與用戶組的概念
用戶和用戶組管理,就是添加用戶和用戶組,針對每個用戶設置不同的密碼。
問題:大家平時的筆記本電腦,會設置多個賬戶嗎?為什么?
服務器要添加多賬戶的作用
·針對不同用戶分配不同的權限,不同權限可以限制用戶可以訪問到的系統資源
·提高系統的安全性
·幫助系統管理員對使用系統的用戶進行跟蹤
Linux 系統是一個多用戶多任務的操作系統,所謂多用戶多任務,是指支持多個用戶在同一時間內登陸,不同用戶可以執行不同的任務,并且互不影響。
例如:
小明所在的運維團隊一共有四個人,分別有大毛,二毛,三毛,大毛負責網站,他的賬戶叫wangzhan, 二毛負責數據庫,他的賬戶叫shujuku。
在同一時間,大毛和二毛都可以登錄這臺服務器,大毛可以查詢網站的日志,二毛可以處理數據庫的問題,他們之間互不影響。
由于我們設置了權限,大毛只能訪問網站的日志,無法訪問數據庫;二毛可以處理數據庫問題,但是不能訪問網站的日志。這就實現了我們的多用戶多任務的運行機制。
任何一個運維人員想要登錄服務器,都必須先申請一個賬號,然后以這個賬號的身份進入系統,就像我們前面說的wangzhan這個賬號。每個賬號都擁有一個唯一的用戶名和各自的密碼,用戶在登錄時輸入正確的用戶名和密碼后,就能夠進入系統,默認會進入到這個用戶自己的主目錄
用戶組是具有相同特征用戶的邏輯集合,簡單來說,就是具有相同權限的用戶的集合。
例如:
人事部有20名員工,他們都需要訪問一個文件夾,如果我們給這20個用戶的賬號分別設置權限,這樣太麻煩了,所以我們會建立一個用戶組叫HR,對這個組設置權限,將這20個用戶加入這個組就可以了。
A 一個用戶可以屬于一個用戶組,具有此用戶組的權限。
HR組可以訪問/hrfile的文件夾,當user01屬于HR組,那么user01就可以訪問/hrfile這個文件夾
B 一個用戶可以屬于多個用戶組,此時具有多個組的共同權限
HR可以訪問/hrfile的文件夾,運維可以訪問/yunweifile的文件夾,當user01同時屬于HR組和運維組,那么user01可以訪問 /hrfile和/yunweifile
C 多個用戶可以屬于一個用戶組,多個用戶都具有此用戶組的權限。
主組:指用戶創建時默認所屬的組,每個用戶的主組只能有一個。創建用戶時會同時創建一個和用戶名相同的組。
例如:添加用戶xiaoming,在建立用戶 xiaoming 的同時,就會建立 xiaoming 組作為 xiaoming 用戶的初始組。
附加組:每個用戶只能有一個主組,除主組外,用戶再加入其他的用戶組,這些用戶組就是這個用戶的附加組。每個用戶的附加組可以有多個,而且用戶可以有這些附加組的權限。
通常用戶和用戶組的管理,包含以下工作:
☆ 用戶組的管理
☆ 用戶賬號的添加、刪除、修改以及用戶密碼的管理
注意三個文件:
/etc/passwd 用戶配置文件,存儲用戶的基本信息
/etc/group 存儲用戶組的信息
/etc/shadow 存儲用戶的密碼信息
用戶組的管理包括用戶組的添加、刪除和修改。
為什么要建立用戶組
前面我們說過,人事部有20名員工,我們要建立一個組,叫hr,這樣就不用分別給20個員工設置權限了。
命令:groupadd
作用:添加組
語法:# groupadd [參數選項 選項值] 用戶組名
選項:-g:設置用戶組ID 數字,如果不指定,則默認從1000 之后遞增
用法一:groupadd 組名
示例代碼:
#groupadd hr
含義:新建一個組叫做hr
提示:linux下我們執行完命令,有時候會沒有任何提示,直接回到#提示符,這種狀態表明,命令執行成功,沒有報錯。“沒有消息就是最好的消息”。
存儲用戶組信息的文件:/etc/group
使用cat命令,查看/etc/group文件,我們可以看到如下圖所示:
/etc/group文件結構:
wheel : x : 10 : itheima
用戶組名 : 密碼(占位符) : 用戶組ID : 這個組包含的用戶(附屬組)
特別說明:
1) 密碼位x代表占位符,用戶組可以設置密碼,但是大部分情況下不需要設置
2)組內用戶名:表示附加組是該組的用戶名稱。
例如:
wheel組(組ID10),是itheima賬戶的附加組,所以itheima這個賬戶,就顯示在這里。
itheima組(組ID1000),是itheima賬戶的主組, 所以itheima這個賬戶就不顯示在最后。
3)wheel組
只有在wheel組中的普通用戶,才可以通過su命令切換到root賬戶,默認所有普通用戶都能切換到root,只要知道root密碼,換句話說,默認此配置不生效。
命令:groupmod
語法:# groupmod [選項 選項值] 用戶組名
選項:
-g :gid縮寫,設置一個自定義的用戶組ID 數字
-n :name縮寫,設置新的用戶組的名稱
示例代碼:修改hr用戶組,將組ID改成1100,將名稱改為bjhr
用法一:groupmod -g 新的組ID -n 新的組ID 原有組ID
示例代碼:
#groupmod -g 1100 -n bjhr hr
含義:將hr組的組ID改成1100,組名改成bjhr
命令:groupdel
語法:# groupdel 用戶組名
案例:刪除bjhr組
用法一:groupdel 組名
示例代碼:
groupdel bjhr
含義:將bjhr組刪除
用戶的管理涉及用戶的添加、刪除和修改。
與用戶相關的文件:/etc/passwd
命令:useradd
作用:添加用戶
語法:# useradd [選項 選項的值] … 用戶名
選項:
-g:表示指定用戶的用戶主(主要)組,選項值可以是用戶組ID,也可以是組名
-G:表示指定用戶的用戶附加(額外)組,選項值可以是用戶組ID,也可以是組名
-u :uid,用戶的id(用戶的標識符),系統默認會從500 /或1000之后按順序分配uid,如果不想使用系統分配的,可以通過該選項自定義【類似于騰訊QQ 的自選靚號情況】
-c:comment,添加注釋(選擇是否添加)
-s:指定用戶登入后所使用的shell 解釋器,默認/bin/bash【專門的接待員】,如果不想讓其登錄,則可以設置為/sbin/nologin (重要)
-d:指定用戶登入時的啟始目錄(家目錄位置)
-n:取消建立以用戶名稱為名的群組(了解)
當我新建一個賬戶叫user01, 同時,系統會自動建立一個組也叫user01
用法一:useradd 用戶名
示例代碼:
#useradd zhangsan
含義:創建用戶zhangsan,不帶任何選項。
注意:不用任何參數,創建用戶,系統會默認執行以下操作:
1)在 /etc/passwd 文件中創建一行關于zhangsan用戶的數據
2)在 /etc/shadow 文件中新增了一行關于zhangsan 密碼的數據
3)在 /etc/group 文件中創建一行與用戶名相同的組,例如zhangsan
4)在 /etc/gshadow 文件中新增一行與新增群組相關的密碼信息,例如zhangsan
5)自動創建用戶的家目錄,默認在/home下,與用戶名同名
驗證是否成功:
1)使用tail文件查看/etc/passwd文件
2)使用tail文件查看/etc/group文件
3)驗證是否存在家目錄(在Centos 下創建好用戶之后隨之產生一個同名家目錄)
使用vim命令打開/etc/passwd文件,如下圖所示:
root : x : 0 : 0 : root : /root : /bin/bash
用戶名 : 密碼 : 用戶ID : 用戶組ID : 注釋 : 家目錄 : 解釋器shell
用戶名:登錄linux時使用的用戶名
密碼:此密碼位置一般情況都是"x",表示密碼的占位,真實密碼存儲在/etc/shadow
用戶ID:用戶的識別符,每個用戶都有唯一的UID【-u】
用戶組ID:該用戶所屬的主組ID;【-g】
注釋:解釋該用戶是做什么用的;【-c】
目錄:用戶登錄進入系統之后默認的位置;【-d】
解釋器shell:等待用戶進入系統之后,用戶輸入指令之后,該解釋器會收集用戶輸入的指令,轉換成機器語言,傳遞給內核處理;如果解釋器是/bin/bash 表示用戶可以登錄到系統,/sbin/nologin表示該用戶不能登錄到系統【-s】
下面我們來看一下對于useradd參數的使用
企業場景1:
公司新員工lisi,屬于gzhr部門,用戶ID1200,不允許登錄系統
創建用戶lisi,默認lisi屬于自己同名的主組,讓lisi 屬于附加組gzhr,用戶ID 1200,注釋為"hruser lisi",解釋器為/sbin/nologin
用法二:useradd -G 附加組名 -u 用戶ID -s /sbin/nologin -c "shuser lisi" 用戶名
示例代碼:
#useradd -G gzhr -u 1200 -s /sbin/nologin -c "gzuser lisi" lisi
含義:創建用戶lisi,不帶任何選項。
gzhr行的含義:在gzhr的組里(組id 是1002)有一個組內用戶lisi(lisi 的附加組就是1002,附加組的名字是gzhr)。 如果需要為一個用戶指定多個附加組,只需要將多個附加組的id 通過英文逗號“,”分割即可。 例如-G 500,501,502
① 主組只能有1 個(類似于親生父母只有一對),附加組可以多個,也可以沒有附加組(類似于認干爹干媽,可以有也可以沒有,也可以有多個)
② 主組必須有
③ 后期將權限管理的時候,關于文檔的屬組指的是主組(了解)
命令:id
作用:查看一個用戶的一些基本信息(包含用戶id,用戶組id,附加組id…),該指令如果不指定用戶則默認當前用戶。
語法1:# id 默認顯示當前執行該命令的用戶的基本信息
語法2:# id 用戶名, 顯示指定用戶的基本信息
如何驗證以上信息是否正確?
答:驗證用戶信息:通過文件/etc/passwd,驗證用戶組信息:通過文件/etc/group
命令:usermod(user modify)
語法:# usermod [選項 選項的值] … 用戶名
作用:修改用戶的各種屬性
選項:
-g:表示指定用戶的用戶主組,選項的值可以是用戶組的ID,也可以是組名
-G:表示指定用戶的用戶附加組,選項的值可以是用戶組的ID,也可以是組名
-u:uid,用戶的id(用戶的標識符),系統默認會從500 之后按順序分配uid,如果不想使用系統分配的,可以通過該選項自定義【類似于騰訊QQ 的自選靚號情況】
-L:鎖定用戶,鎖定后用戶無法登陸系統lock
-U:解鎖用戶unlock
-c<備注>:修改用戶帳號的備注文字
-d<登入目錄>:修改用戶登入時的目錄
-s:修改用戶登入后所使用的shell
企業場景2:
公司員工wangwu,屬于shhr部門,現在要休產假,產假期間,暫時停止她登陸電腦的權限,同時原來屬于gzhr部門的員工lisi,負責wangwu的工作,所以,需要把lisi加入到shhr的組,同時,修改lisi的賬戶注釋為“gzhr shhr user”
對于wangwu用戶,我們要執行鎖定和解鎖操作
對于lisi用戶,我們要將lisi加入到shhr的附加組,同時修改lisi賬戶的注釋
用法一:usermod -L 王五賬戶名
示例代碼:
#usermod -L wangwu
含義:將王五賬戶暫時鎖定
用法二:usermod -U 王五賬戶名
示例代碼:
#usermod -U wangwu
含義:將王五賬戶解鎖
用法三:usermod -G 組名 -c “注釋內容” 李四用戶賬號
示例代碼:
#usermod -G shhr -c "shhr user" lisi
含義:將李四的賬戶加入shhr組,并修改注釋內容為shhr user
Linux 不允許沒有密碼的用戶登錄到系統,因此前面創建的用戶目前都處于鎖定狀態,需要設置密碼之后才能登錄計算機。
命令:passwd
語法:# passwd 用戶名 【如果不指定用戶名則修改自己的密碼】
作用:修改用戶密碼
企業場景3:
王五產假休完回到公司上班,需要將王五的賬戶解鎖,在使用usermod -U解鎖時,我們看到一個錯誤信息如下:
usermod: unlocking the user's password would result in a passwordless account.
解鎖這個賬戶,將導致一個沒有密碼的賬戶,因為之前王五的賬戶沒有密碼。這時候,我們就需要使用passwd命令,給王五的賬戶設置一個密碼。
用法一:passwd 賬戶名
示例代碼:
#passwd wangwu
含義:為wangwu賬戶設置密碼
注意:
當密碼過于簡單時,系統會提示這是一個不好的密碼,因為它太簡單了,但是我們仍然可以堅持使用這個密碼。
在我們輸入密碼時,屏幕不會有任何顯示。
密碼需要輸入兩次,請確保兩次輸入的密碼是一樣的。
示例代碼:設置wangwu的用戶密碼
由于 /etc/passwd文件允許所有用戶讀取,易導致用戶密碼泄露,因此 Linux 系統將用戶的密碼信息從 /etc/passwd 文件中分離出來,并單獨放到了shadow文件中。
/etc/shadow 文件只有 root 用戶擁有讀權限,其他用戶沒有任何權限,這樣就保證了用戶密碼的安全性。
與用戶密碼相關的文件:/etc/shadow
為用戶設置密碼之后,會自動在/etc/shadow文件中進行體現,使用vim編輯器打開:
第一列為用戶名,例如zhangsan
后面是加密后的密碼,就是$開頭的字符串。
如果顯示為!!則表示這個用戶沒有設置密碼。
由以上截圖所知,zhangsan,lisi是沒有設置密碼的。wangwu我們剛剛設置了密碼,所以顯示為一個加密的字符創。
任務:
新建一個賬戶叫ityunwei
新建第二個賬戶叫shichang
給ityunwei賬戶設置一個密碼
進入shadow文件,觀察兩個賬戶的區別
在設置用戶密碼之后就可以使用此賬號進行登錄系統了,如果系統處于已登錄狀態,則可以使用su命令進行切換用戶。
為了系統安全,企業中通常不會允許root用戶直接登錄計算機,但是工作需要,我們又需要使用root權限,這時候,我們就可以先使用一個普通用戶登錄計算機,再通過su命令切換到root權限。
命令:su
語法:# su [-] 賬號
作用:切換用戶
用法一:su 用戶名
示例代碼:
#su root
含義:切換到root權限
注意:
a. 從root 往普通用戶切換不需要密碼,但是反之則需要root 密碼;
b. 切換用戶之后前后的工作路徑是不變的,添加了選項[-]會自動切換到用戶的家;
c. 普通用戶沒有辦法訪問root 用戶家目錄,但是反之則可以;
啟用wheel組設置(了解)
步驟1:使用vim編輯器 打開/etc/pam.d/su文件
步驟2:編輯文件,去掉auth required pamwheel.so useuid這一行前面的#,使這一行配置生效
步驟3:下面是去掉#后的狀態
步驟4:保存退出 :wq
這時,只有在wheel組內的用戶才可以su到root
命令:userdel
語法:# userdel 選項 用戶名
作用:刪除賬戶及其對應家目錄
選項:-r:表示刪除用戶的同時,刪除其家目錄/home下的對應文件夾。
注意:已經登錄的wangwu用戶刪除的時候提示刪除失敗,但是沒有登錄的lisi 用戶可以正常刪除,那這個時候想刪除wangwu怎么辦呢?
解決辦法:簡單粗暴,kill 對應用戶的全部進程
提示:所有跟用戶操作的命令(除passwd 外,只能修改自己的密碼,即不指定用戶名)只有root 超級管理員有權限執行。
備注:也可以在登錄需要刪除的用戶之后,按下快捷鍵“ctrl+d”進行對當前用戶的注銷,隨后退回到上一個用戶(root)此時就可以對需要刪除的用戶進行刪除操作。
刪除賬號=>刪除家=>刪除所屬組(主組)
管道符:|
作用:管道是一種通信機制,通常用于進程間的通信。它表現出來的形式將前面每一個進程的輸出(stdout)直接作為下一個進程的輸入(stdin)。
#ls / | grep “y”
grep 指令用于“過濾”
grep 語法:grep 選項 文件路徑/內容
針對上面這個命令說明:
① 以管道作為分界線,前面的命令有個輸出,后面需要先輸入(缺少查找范圍),然后再過濾,最后再輸出,通俗的講就是管道前面的輸出就是后面指令的輸入。
為了便于理解,上述的指令變相實現可以如下:
#ls / > xxx.txt 將ls /的結果保存到xxx.txt文件中
#grep “y” xxx.txt 使用grep指令搜索xxx.txt中的包含y的行
② grep 指令:主要用于過濾
語法:# grep [選項] “搜索關鍵詞” 搜索范圍
示例代碼:獲取/根目錄下包含關鍵字"y"的文件信息
#ll/ |grep y
通過管道的操作方法來實現less 的等價效果(了解)
例如:源指令是"less xxx.txt"使用管道的話則可以寫成:cat xxx.txt | less
之前可以通過less命令查看一個文件,可以# less 路徑
現在通過管道還可以:#cat 路徑 | less
示例代碼:
問題:請使用學過的命令,來統計某個目錄下的文檔的總個數?
示例代碼:使用Linux命令統計“/”下的文檔的個數
示例代碼:用戶在計算機中有一個配置文件(/etc/passwd),一般情況下,一個用戶會占用一行配置,請你使用現學的管道統計當前計算機中一共有多少個用戶個信息
問題:為什么需要xargs命令?
答:之所以能用到這個命令,關鍵是由于很多命令不支持|管道來傳遞參數,而日常工作中有有這個必要,所以就有了 xargs 命令。
powershell find /etc -name "*.conf" | ls -l (錯誤)
find /etc -name "*.conf" | xargs ls -l (正確)
xargs特別說明:
xargs 可以將管道或標準輸入(stdin)數據轉換成命令行參數,也能夠從文件的輸出中讀取數據。 xargs 也可以將單行或多行文本輸入轉換為其他格式,例如多行變單行,單行變多行。
xargs 默認的命令是 echo,這意味著通過管道傳遞給 xargs 的輸入將會包含換行和空白,不過通過 xargs 的處理,換行和空白將被空格取代。 xargs 是一個強有力的命令,它能夠捕獲一個命令的輸出,然后傳遞給另外一個命令。
示例代碼:多行輸入單行輸出
示例代碼:-n 選項多行輸出
命令:ifconfig
作用:獲取網卡的相關信息
語法:# ifconfig
用法一:ifconfig
示例代碼:
#ifconfig
含義:查看網絡信息
注意,我們發現當前ens33看不到IP地址信息,那是因為網卡默認不啟動。
手動啟動網卡連接,我們暫時使用圖形化的方式,點擊屏幕右上角電源按鈕,在彈出菜單選擇Connect。
點擊connect之后,我們會看到顯示已連(Connected)
再次使用ifconfig命令,查看網絡信息
192.168.81.130
ens33 :是默認的網卡
lo(loop,循環):表示回環網卡
virbr0:虛擬網絡接口,因為咱們使用vmware虛擬機安裝Centos
Linux的網卡配置文件,存放在/etc/sysconfig/network-scripts目錄下,文件名格式為ifcfg-網卡名稱
我們可以看到,ifconfig命令中顯示我們的網卡叫做ens33,對應的,這里就有一個ifcfg-ens33的文件
使用cat命令,查看ifcfg-ens33文件
命令:systemctl
語法:# systemctl status network
用法一:systemctl status network
示例代碼:
systemctl status network
含義:查看網絡狀態,active表示啟用的,活動的。
命令:systemctl
語法:# systemctl start/stop/restart network
參數:start啟動,restart重啟,stop停止
用法一:systemctl start/stop/restart network
示例代碼:
#systemctl stop network
含義:停止網卡服務
#systemctl start network
含義:開啟網卡服務
#systemctl restart network
含義:重啟網卡服務
簡單說,SSH是一種網絡協議,用于計算機之間的加密登錄。
SecureCRT
官網:www.vandyke.com
SecureCRT是一款支持SSH(SSH1和SSH2)的終端仿真程序,簡單地說是Windows下登錄UNIX或Linux服務器主機的軟件。
XShell
官網:www.netsarang.com
Xshell是一個強大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平臺的TELNET 協議。Xshell 通過互聯網到遠程主機的安全連接以及它創新性的設計和特色幫助用戶在復雜的網絡環境中享受他們的工作。
Putty
官網:www.putty.org
PuTTY為一開放源代碼軟件,主要由Simon Tatham維護,使用MIT licence授權。
MobaXterm
官網:https://mobaxterm.mobatek.net/
步驟1:打開軟件,點擊session
步驟2:在彈出窗口中選擇ssh,在 remote host對話框輸入要連接的服務器IP地址
步驟3:輸入用戶名和密碼,注意輸入密碼的時候,屏幕是沒有反應的。
步驟4:輸入用戶密碼后回車,看到如下界面,表示已經成功連接
推薦了解:
linux云計算+運維開發課程