1. 用戶的創建、刪除以及監控
/etc/passwd
用戶信息文件
例如:root : x : 0 : 0 : root : /root : /bin/bash
用戶名稱(root):密碼(x):用戶id(0):組id(0):用戶說明信息(root):用戶家目錄(/root):用戶默認使用的shell(/bin/bash)
上面的密碼(x)只是一個佔位符號,密碼存在別的地方/etc/group
-用戶組信息
如main:x:12:postfix
組名稱:組密碼:組id:附加組成員
/etc/skel
-用戶的骨信息(用戶環境配置模板,在用戶建立時會自動被複制到家目錄)
1)創建用戶
/etc/login.defs
此文件中包含創建用戶時的默認信息
指令 | 作用 |
---|---|
useradd username | 用默認配置創建用戶 |
useradd -u UID username | 指定uid創建用戶 |
useradd -g UID username | 指定初始組id創建用戶,這個初始組必須是存在的 |
useradd -G Gid username | 指定附加組id創建用戶,這個附加組必須存在 |
useradd -c “Stirng” username | 指定說明文字創建用戶 |
useradd -d /mnt/username username | 指定家目錄創建用戶 |
useradd -s /bin/tcsh username | 指定shell創建用戶 |
在創建用戶的時候可以根據以上列表中的指令去制定用戶的信息
2)用戶查看
指令 | 參數 | 使用對象 | 作用 |
---|---|---|---|
whoaml | 查看當前的名稱 | ||
id | username | 查看用戶的id信息 | |
id | -u | username | 查看用戶的uid |
id | -g | username | 查看用戶的gid |
id | -G | username | 查看用戶所在的所有組的id |
id | -n | username | 以名稱顯示信息 |
因爲以上創建用戶時未自定義用戶的信息,所以用戶數據按照系統默認來處理
3)監控命令
watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home/'
該指令是進入監控用戶畫面,其中的watch指令是:每隔2秒執行引號內的指令;”-n 1”:是指每隔1秒執行引號內的指令;”echo ====”:是指用====將用戶信息分割開
ls -l /home/:這裏是將系統中的用戶數據以長列表的形式展現出來
4)刪除用戶
userdel username:刪除了用戶身份
當你以上述方法刪除用戶的時候,系統不會報錯,但是你只是刪除了用戶的身份,並沒有刪除該用戶其中的配置文件,相當於沒有刪除乾淨
在監控的時候,依舊還有已經刪除掉的linux用戶的相關文件,所以我們還需要刪除它的那些相關配置
這樣就可以徹底刪除linux用戶以及它的相關文件
提示:
當你刪除用戶的殘留文件的時候,rm -fr /home/linux這裏的/home/linux是指你的用戶所在的目錄路徑,這裏不能寫錯,不然又可能會刪錯其他文件
userdel -r username:刪除用戶身份及用戶涉及的配置文件
當你用這個方法時就可以直接徹底的刪除用戶了,所以我們在刪除用戶的時候,記得不要忘記中間的 “-r”
5) 系統中的shell
查看系統中安裝的shell,指定shell創建用戶只能從系統中已有的shell選擇
cat /etc/shells
/sbin/nologin
/usr/sbin/nologin
這兩個shell沒有交互界面,用這兩個shell創建的用戶不能操作系統
6)創建組
指令 | 用戶 | 作用 |
---|---|---|
groupadd | groupname | 建立組 |
groupadd | -g GID groupname | 建立組指定id |
groupdel | groupname | 刪除組 |
這裏的創建組只是在 用戶組/etc/group該目錄下多創建了一個組,當我們vim 進入該目錄時就會看見你新創建的組
2.用戶的修改
指令 | 作用 |
---|---|
userdom -l newusername username | 修改用戶的名字 |
usermod -u UID username | 修改uid |
usermod -g GID username | 修改用戶的初始組id,初始組必須時已存在 |
usermod -G Gid username | 修改附加組,但是會清空原來的附加組 |
usermod -aG Gid username | 追加附加組,並會保留之前的附加組 |
usermod -G “” username | 清空附加組 |
usermod -c “String” username | 修改說明文字,爲空代表清楚說明文字 |
usermod -d /home/lee username | 修改家目錄指向,這個只是修改只是修改了配置文件的目錄地址,但是並沒有修改目錄本身 |
usermod -md /home/lee username | 修改家目錄並修改目錄本身的名字 |
usermod -s /bin/tcsh username | 修改shell |
- 修改用戶的名字:
可以從下圖看出我們的用戶姓名從linux改爲hello
我把上面的修改過的用戶姓名又修改過來成linux,當我們修改用戶的初始組以及附加組
由下圖可以看出我們將初始組已經修改成72,附加組修改成21,但是無論是初始組還是附加組都必須在已存在的用戶組中挑選一個id去執行
usermod -aG 1001 linux
由上圖可以看出linux用戶在id爲21和1001的用戶組中,但是當我們用-G去添加的時候就會把附加組改爲1001,之前的id爲21的附加組就會被替換,而-aG就是可以使一個用戶同時在多個用戶組中,這就是二者的區別
- 修改文字說明:
usermod -c "hello" westos
只需要我們在引號中寫入說明文字就可以了
- 修改家目錄
usermod -d /home/amazing linux
usermod -md /home/amazing linux
接下來讓我們看看二者的區別:
由上圖可以看出家目錄已經被修改成amazing,但是當我們去查詢這個目錄的時候卻被告知該目錄不存在:
這個就是隻是更改了用戶所在的家目錄地址,但是並沒有修改目錄本身
舉個例子:當一個學生使用-d與廚師互換了身份,這個學生只是變成了廚師的樣子,但是他卻不會做飯只是改變了樣子而已,但是使用-md互換後,這個學生不但變成了廚師的樣子,而且還會做飯,這就是二者的區別
3.用戶的切換
前面我們學習了創建用戶,修改用戶,接下來我們看看用戶的切換,當我們進入linux系統,打開shell既可以操作切換用戶了
su - username
提示:
- 但我們從高級用戶切換到低級用戶時不需要密碼
- 但是從低級用戶切換到高級用戶時或者切換到平級用戶,就需要密碼了
- 再進行用戶的切換時,切換完後需要退出(exit)然後再去切換下一個用戶,否則一直重複切換會出現錯誤
- 當我們進行用戶切換的時候,會發現su - username和su username都可以進行切換,但是二者的且別與上面的學生廚師互換有點相似,su username只是切換了用戶的姓名但是該有的權限卻沒有切換過來,而su - username就代表互換了用戶身份跟用戶權限,所以我們在進行用戶的切換時一定要注意。
4.用戶的認證信息
tail -n 1 /etc/shadow
這條指令是查看用戶的認證信息
由上圖的用戶認證信息由8個”:”可以分爲9部分:
指令 | 含義 |
---|---|
linux | 代表的是用戶 |
!! | 這裏是你的密碼,因爲我沒有設置密碼所以會出現!! |
17753 | 這裏代表的是密碼最後被修改的時間 |
0 | 密碼的最短有效期 |
99999 | 密碼的最長有效期 |
7 | 密碼的過期警告 |
倒數第三個空白 | 密碼非活躍期(就是當你的密碼到期後但還沒有修改會再給你幾天時間等你去修改,這幾天就是非活躍期) |
倒數第二個空白 | 帳號到期時間(到達該時間就會凍結帳號無法使用) |
最後一個空白 | 這裏沒有設定,用戶可以自定義填寫 |
1)密碼的修改
指令 | 含義 |
---|---|
passwd username | 設置密碼(只有是超級用戶纔可以隨意修改密碼) |
passwd | 普通用戶修改密碼,修改時會要求密碼有一定的強度 |
passwd -d username | 清空密碼 |
passwd -l username | 高強度凍結密碼 |
passwd -U username | 解鎖密碼 |
usermod -L username | 凍結密碼 |
- 設置密碼:
當你創建一個用戶時需要設置密碼:
- 凍結密碼的兩種方式區別:
由上圖可以看出passwd方法凍結密碼在密碼部分前面有倆個!,而usermod方法只有一個!,代表的凍結強度不同(usermod方法中間的字母是大寫字母)
2)修改密碼最後被修改的時間
chage -d 4 username
這裏可以修改爲其他數字
passwd -e username
這裏不能添加數字,上述指令是指定修改時間爲0
提示:
當我們將密碼的最後修改時間修改爲0的時候,就會在用戶登陸時會被強制修改密碼
3)修改最短有效期
chage -m 3 username
passwd -n 4 username
watch tail -n 1 /etc/shadow
輸入以上指令就可以在有效期部分看見修改後的數字了
4)修改最長有效期
chage -M 30 username
passwd -x 40 username
5)修改非活躍天數
chage -I 2 username
passwd -i 3 username
6)修改過期集警告:
chage -W 2 username
passwd -w 3 username
7)修改帳號到期時間
chage -E 2018-11-11 username
提示:
這裏的日期要以data形式去寫,系統會自動換算成天數去增加
5.用戶權力的下放
前面我們瞭解如何進行用戶切換,我們知道超級用戶可以創建新的用戶,可以作好多普通用戶做不了的事情,那麼當我們切換到普通用戶的時候怎麼才能創建用戶和做一些超級用戶可以去完成的事情呢?
這就要需要我們去更改用戶的權力了
1)首先我們先查看當前的主機名
2)然後進行配置命令
visodu進入代碼頁面
上面界面中##代表的是註釋,然後我們選擇在100行左右添加我們需要讓執行的權力
3)執行的命令:用戶名稱 主機名=(執行程序的身份)命令
- 給普通用戶添加創建新用戶的方法:
linux localhost=(root) /usr/sbin/useradd
上述方法完成後創建新用戶時是需要進行密碼登陸的
4)用戶名稱 主機名稱=(執行者身份) NOPASSWD:命令1, 命令2
- 給普通用戶執行創建和刪除新用戶,並不用密碼登陸
linux localhost=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel
像上圖一樣輸入黑條代碼完成指令
5)切換普通用戶
- 在切換成功後記住得在普通用戶前面添加sudo纔可以創建新用戶,當我們不寫sudo去執行命令時就會出現以下情況:
提示:
以上操作我們只是添加了普通用戶添加新用戶和刪除用戶的指令,如果想讓我們的普通用戶做更多的事情,就需要去步驟2中去添加更多的指令