#####用戶管理######
1在Linux中,有三種用戶:
1 root : 也成為超級用戶,對系統有控制權限,超級用戶可以不受限制的運行任何命令,root 用戶可以看作是系統的管理員。
2 系統用戶: 系統用戶通常為系統功能所必須的,是Linux運行某些程序所必須的用戶。
3 普通用戶: 一般用戶都是普通用戶,這些用戶對系統文件的訪問受限。
2.用戶的查看
查看當前用戶
whoami ##查看當前用戶
系統中用戶的查看
id ##查看指定用戶id信息
id
-u | 查看用戶的uid |
---|---|
-g | 查看用戶的gid |
-G | 查看用戶所在的所有組的id |
-n | 顯示名字而不顯示id數字 |
-nG | 查看用戶的所有組的名字 |
示例:
3用戶切換
gome-session-quit --force ##注銷當前用戶
在用其他用戶登陸
su - 用戶名稱
su - 中 “-” 標示在用戶身份切換時同時切換當前用戶的環境
su - 執行時高級用戶切換到低級用戶不需要密碼,低級用戶切換到高級需要,平級用戶切換切換也需要
注意:每次su切換到其他用戶操作之后必須退出,然后再次切換到其他用戶
4 用戶在系統中的存儲方式
/etc/passwd 用戶信息文件
用戶名稱:密碼:uid:gid:說明:家目錄:默認shell
/etc/group 用戶組信息文件
組的名字:組密碼:組id:組成員
/etc/shadows 認證信息文件
/etc/skel/.* 默認開啟shell的配置,用戶的骨文件
/home/username 用戶的家目錄
示例:
5 用戶管理命令
1) userdel 用戶的刪除
userdel student 刪除用戶但不刪除用戶的配置文件userdel -r student 刪除用戶并刪除用戶的配置文件
2)用戶建立
用戶信息監控命令
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;ls -l /home’
useradd ##建立用戶的,建立用戶時,讀取/etc/login.defs 文件內容確定規則
useradd -u 8888 westos ##指定用戶uid
useradd -g 21 westos ##指定用戶初始組id,“21用戶組必須是存在的”
useradd -G 21 westos ##指定用戶的附加組id “21用戶組必須存在”
useradd -c “hello” westos ##指定用戶的說明
useradd -d /home/lee westos ##指定用戶的家目錄
useradd -s /bin/sh westos ##指定用戶的默認shell
groupadd ##建立用戶組
groupadd -g 888 westos ##建立用戶組并指定用戶組的id
groupdel ##刪除用戶組
6更改用戶信息
usermod
-l ##更改用戶名
-u ##更改uid
-g ##更改gid
-G ##更改附加組
-G 21,27,… ##添加多個附加組
-G “” ##清空附加組
-aG ##在原有的附加組上添加
-c “…” ##更改說明
-c ‘’ ##清空說明
-d /home/me ##更改家目錄的指向,不改變原家目錄名稱
-md /home/me ##更改家目錄,更改家目錄文件名稱
-s /bin/sh ##更改用戶的shell ,
-L ##凍結用戶,在此之前應先給用戶設置密碼
-U ##解鎖用戶
示例:
7 用戶認證信息
/etc/shadows ##記錄用戶認證信息
redhat:!!:17895:0:99999: 7: : :
[1] [2] [3] [4] [5] [6] [7] [8] [9]
此文件一共有九列:
1.用戶名 | 用戶名稱 |
---|---|
2.密碼 | 用戶的加密字符串,默認用的加密方式為sha512對稱加密,如果加密字符串前出現"!"那么用戶被凍結 |
3.用戶密碼最后一次被更改的時間 | 此時間計算是從1970-1-1開始計算的累計天數 |
4.用戶密碼最短有效期 | 如果此位有設定數字,那么在此數字范圍內的天數內是不能修改用戶密碼的 |
5.用戶密碼最長有效期 | 用戶必須在此有效期內更新密碼,如果超時會被凍結 |
6.密碼警告期限 | 在過期前制定天數內會發送警告信息給用戶 |
7.用戶非活躍天數 | 此位默認為空,如果設定數值,那么在密碼最長有效期過后仍然可以使用的天數 |
8.用戶到期日 | 默認為空,表示帳號一定會被凍結的時間點 |
9.用戶自定義列 | 用戶自定義列,目前沒有啟用 |
passwd -S westos ##查看westos用戶密碼信息
passwd westos ##更改westos密碼passwd -l westos ##在用戶密碼前加入“!!” passwd -u westos ##消除用戶密碼前的“!”usermod -L westos ##在用戶密碼前加入“!”usermod -U westos ##在密碼不為空時使用passwd -d westos ##清空westos密碼passwd -S westos ##查看用戶密碼信息
注意: 普通用戶改密碼時
1.必須知道當前用戶原始密碼
2.密碼不能和帳號名稱相似
3.密碼不能是純數字或純字母
4.密碼不能是有序的字母和數字的組合
#用戶密碼最后一次被更改的時間#
passwd -e westos | 會改變用戶最后一次更改密碼時間為0. |
---|---|
chage -d 0 westos | 會改變用戶最后一次更改密碼時間為0 |
注: ##用戶在登陸時會被強制更改密碼##兩個命令功能類似
#用戶密碼最短有效期#
passwd -n 1 westos | westos用戶在1天之內不能修改密碼 |
---|---|
chage -m 1 westos | westos用戶在1天之內不能修改密碼 |
#用戶密碼最長有效期#
passwd -x 30 westos | 設定westos在30天內必須改密碼 |
---|---|
chage -M 30 westos | 設定westos在30天內必須改密碼 |
#密碼警告期限#
passwd -w 2 westos | 密碼過期前兩天有警告輸出 |
---|---|
chage -W 2 westos | 密碼過期前兩天有警告輸出 |
#用戶非活躍天數#
passwd -i 1 westos | 密碼過期后仍可登陸系統的天數 |
---|---|
chage -I 1 | 密碼過期后仍可登陸系統的天數 |
#用戶到期日#
chage -E 2018-11-11 westos ##westos用戶在2018-11-11日會被凍結
#用戶自定義列,目前沒有啟用#
8用戶授權
1.權力下放文件為/etc/sudoers
此文件可以用vim直接編輯,但是不提供語法檢測
也可以使用visudo編輯此文件,visudo命令是提供語法檢測的
2.下放方式
- visudo
100行左右
用戶 主機名稱=(得到的用戶身份) 命令
tom localhost=(root) /usr/sbin/useradd ##tom用戶可以在localhost主機以
root用戶身份執行useradd命令
tom localhost=(root) NOPASSWD: /usr/sbin/useradd ##tom用戶可以在localhost主機以 root用戶身份免密執行useradd
3.測試
su - tom
sudo useradd hello
示例: