linux常見操作指令2
##使用者的管理
1:系統中為什麼要有使用者?
答:使用者是系統最底層安全機制,用來限制權力,組是為方便管理,更重要的是用來共享權力的,組有兩個資訊:附加組(合法)/初始組(不能更改)所有使用者都有初始組,附加組就不一定,是由超級使用者附加給使用者的,
2:使用者和組在系統中以什麼形態存在?
答:文字形式存放在表中或表格所對應的若干系統檔案中
ls ##顯示檔案資訊
ls -l filename ##長列表顯示檔案資訊
下圖事先建立了一個名為test的資料夾,並在資料夾內部建立了三個分別名為testfile1 testfile2 testfile3的檔案,現進行如下操作:
ls -a filename ##顯示所有檔案包括以“.”開頭的(以“.”開頭的檔案一般都是隱藏檔案,用-a可檢視隱藏檔案)
ls -s filename ##顯示檔案大小(如下圖所示,不僅顯示資料夾大小,內包含檔案大小都會顯示)
ls -d filename ##顯示目錄(如下圖顯示檔案所在資料夾)
ls -R filename ## 遞迴顯示
##萬用字元
* ##匹配0到任意字元(如下圖所示,建立file檔案和 ,file 檔案,因為“.file”檔案是隱藏檔案,因此在使用ls顯示檔案資訊時,隱藏檔案並不顯示,故用用“-a”顯示隱藏檔案,用“.*”顯示所有帶“.”檔案如兩個帶“.”檔案)
? ##匹配單個字元(如下圖所示,建立不同位元組長度的檔名,用“?”的個數來匹配要刪除的檔案,下圖中分別建立4個長度、3個長度、5個長度的檔名,用4個“?”來刪除檔名為4個位元組的檔案)
[[:alpha:]] ##單個字母(如下圖所示:分別建立名為“file” “fiAle” “fiale” “fi3le” “fi*le” “fi le”這六個檔案,用[[:alpha:]] 來匹配file中間存在字元的檔案,並且刪除,結果如下)
[[:upper:]] ##匹配單個大寫字母(如下圖所示,用"fi[[:upper:]]le"來匹配檔案中間字元為單個大寫字母的檔案並且刪除 )
[[:lower:]] ##匹配單個小寫字母(如下圖所示,用"fi[[:lower:]]le"來匹配檔案中間字元為單個小寫字母的檔案並且刪除)
[[:digit:]] ##匹配單個數字(如下圖所示,用"fi[[:digit:]]le"來匹配檔案中間字元為單個數字的檔案並且刪除)
[[:alnum:]] ##單個數字或字母(如下圖所示,用"fi[[:alnum:]]le"來匹配檔案中間字元為單個數字或字母的檔案並且刪除)
[[:space:]] ##匹配單個空格(如下圖所示,用"fi[[:space:]]le"來匹配檔案中間字元為單個空格的檔案並且刪除)
[[:punct:]] ##匹配單個符號(如下圖所示,用"fi[[:punct:]]le"來匹配檔案中間字元為單個符號的檔案並且刪除)
(如下圖所示左右兩邊的“*”表示匹配0到任意字元,[[:punct:]] ##匹配單個符號,“!”表示取反)
(如下入所示:最後一條語句表示刪除file中間非單個字元和數字的檔案)
{} ##精確匹配字元名稱
{1..3} ##輸入此命令會精確匹配到檔案1 檔案2 檔案3
{a..c} ##與上相同 a b c
[] ##模糊匹配字元名稱
[1..3] ##輸入此命令輸出檔案1或檔案2或檔案3
[ac] ##a或c
[^ac] ##除了ac
[!ac] ##除了ac
3:使用者配置檔案
vim /etc/passwd 使用者資訊檔案(如下入所示,使用者資訊檔案都包含7個欄位)
使用者名稱稱:使用者密碼:使用者id:組id:使用者說明(使用者家目錄):使用者預設所使用的事(和系統互動所用軟體)
例如:text:X:666:666::/home/test:/bin/bash
vim /etc/group ##顯示使用者組資訊(組名稱:組密碼:組id:附加成員)
vim /home/username ##使用者家目錄
/etc/skel.* ##使用者的骨檔案(使用者環境配置,使用者建立時自動複製到使用者家目錄)
#4.使用者的檢視
whoami ##檢視當前使用者名稱稱
id username ##檢視使用者id資訊
id -u username ##檢視使用者的uid
id -g username ##檢視使用者的gid
id -G username ##檢視使用者所在的組id
id -n username
(注:man useradd 檢視系統所有組,用/u查詢-u的命令 用鍵盤n向下)
5:使用者的建立及刪除
watch -n 1 ‘tain -n 4 /etc/passwd /etc/group;ls -1 /home' ##此命令檢視使用者資訊
(注: kill -9 ##截至當前的工作)
/etc/login.defs ##此檔案中可以設定建立使用者的預設資訊
groupadd mmdemo ##建立一個名為mmdemo的組
useradd username ##使用預設規則建立使用者(規則參看/etc/login.defs)
userdel username ##刪除使用者身份
userdel -r username ##刪除使用者身份及使用者的系統配置檔案
useradd -u username ##指定使用者的uid
useradd -g username ##指定使用者的初始組id(如下圖指定使用者初始組的ID為1003)
useradd -G username ##指定使用者的附加組ID(下圖指定使用者的附加組ID為1005)
useradd -c username ##指定使用者的說明文字(對比上下兩張圖片可發現此語句指定使用者的說明文字為“測試”)
useradd -d username ##指定使用者的家目錄(對比上下兩張圖可發現此語句將使用者家目錄/home/ymtext更改為/mnt/ymtext下)
useradd -s username ##指定使用者的shell(系統可以用shell在etc/login.defs中指定)(對比上下兩張圖可看出:將使用者的shell從/bin/bash改為/bin/tcsh)
groupadd groupname ##建立組(如下圖所示:建立了一個名為mmtext的組)
groupadd -g groupname ##建立組並指定組ID
groupdel groupname ##刪除組(如下圖刪除組名為mmtext的組)
6:使用者的管理
usermod username
usermod -l username ##修改使用者名稱稱 (如下圖將使用者組名稱ymtext更改為linux)
usermod -u username ##更改使用者id(對比上下兩圖,下圖語句將使用者組ID從1004改為50)
usermod -g username ##初始組id (對比上下兩圖,可知下語句將初始組ID從1006更改為30)
usermod -G username ##更改附加組(如下圖所示,將Linux與附加組hello繫結)
usermod -aG username ##增加附加組(下圖語句為Linux在原附加組為hello時增加了一個為test的附加組)
usermod -c username ##更改使用者說明(如下圖所示,將使用者說明更改為"我喜歡")
usermod -d username ##更改使用者家目錄指向(對比上下兩幅圖所示將使用者家目錄/home/ademo更改為/home/lee)
usermod -md username ##更改使用者家目錄指向並重命名家目錄
usermod -s username ##更改使用者的shell
#7.使用者的切換
su - username ##切換使用者,高階使用者切換到低階使用者不需要密碼(由下圖可看出,此命令由高階命令root切換到低階使用者ademo)
##低階使用者切換到高階使用者或者切換到平級使用者需要後者的密碼
注意:
1:使用者切換後及時退出再切換到下一個使用者
2:su - 表示切換使用者身份及使用者環境
8:使用者的認證資訊
/etc/shadow ##顯示使用者的認證資訊(如下圖所示head -n 1表示顯示開頭前一行資訊)
(上圖中的“tail -n 1 ”表示顯示末尾最後一行資訊)
可用語句watch -n 1 ‘tail -n 1 /etc/shadow 來進行實時監控(出現如下監控介面)
使用者的認證資訊包括9段(如上圖可看出使用者資訊被“:”分隔成9段):
使用者名稱稱(即上圖第一部分root):
使用者密碼:
md5 sha512 對稱加密(加密解密用同一串字元 指紋識別)
passwd username ##只有超級使用者在執行(如下圖是在超級使用者root時使用此語句修改的密碼)
usermod -L ##凍結賬戶(如下圖所示root後出現“!”即說明帳號被鎖住)
usermod -U ##解鎖(如下圖所示,輸入此命令時root後凍結符號“!”去除)
passwe ## 普通使用者修改自己的密碼 (與上類似,不再贅述)
passwd -L ##凍結帳號
passwd -U ##解鎖
passwd -d ##清空密碼
密碼最後被修改時間:
當此位數字為0時,使用者登陸系統會被強制改密碼
chage -d 0 westos(如下圖所示,對比上下圖密碼被最後修改的時間從17754被重新設定為0,使用者登陸時必須先修改密碼,只在第一次重新登陸時修改)
passwd -e westos
密碼最短有效期:
chage -m 1 westos
passwd -n 3 westos
密碼最長有效期:
chage -M 30 westos
passwd -x 40 westos
密碼過期警告:
chage -W 2 westos
passwd -w 3 westos
密碼非活躍期:
chage -I 2 westos
passwd -i 0 westos
帳號到期日:
chage -E “2018-11-11” filename ##(如下圖所示17846減去0為現在到2018-11-11的時間)
未設定使用者自定義(為最後一個“:”後面的內容)
#9:使用者權力下放
1:配置檔案時
/etc/sudoers ##使用vim /etc/sudoers開啟配置檔案如下圖所示
2:配置命令
visudo ##此命令提供語法檢測(如下圖所示當有異常時會報錯)
使用者名稱稱 主機名稱=(執行程式身份) 命令 ##當前執行需要使用者驗證
例句1:linux11 dns-server.example.com=(root) /usr/sbin/useradd
例句2:如下圖黑色部分所示,使linux11能夠執行增加使用者功能並且不需要密碼
使用者名稱稱 主機名稱=(執行程式身份) NOPASSWD:命令1,命令2 ##當前執行不需要使用者驗證
例句:linux11 dns-server.example.com=(root) /usr/sbin/useradd, /usr/sbin/userdel ##下放增加使用者和刪除使用者的權力給linux11
測試
su - linux11
sudo useradd hellodemo ##如下兩圖所示,可以通過linux11可以新增新的使用者,並進行刪除使用者組操作
(如下圖使用者組中的hellodemo已經被刪除)