用戶文件html
/etc/passwd 是linux的用戶管理文件,每建立一個用戶就會在這個文件中增長一行,每一行就表示一個用戶。linux
用戶文件中每一行構分爲七段,用":"分割。如下是每一段說明:shell
段 | 說明 |
---|---|
第一段 | 用戶名,新建一個用戶就會產生一行。 |
第二段 | 密碼的佔位符,密碼沒有存在這個文件 |
第三段 | 用戶uid |
第四段 | gid,用戶所屬組的id |
第五段 | 對用戶的描述信息 |
第六段 | 用戶的家目錄 |
第七段 | 用戶的登陸shell |
id命令:centos
用於查看用戶(uid)、用戶組id(gid)和附加組gid安全
不加參數就是查看當前用戶 ssh
id user 指定用戶查看工具
其它參數:-u 只查看uid -g只查看gid -G 只顯示附加組gidui
密碼配置文件加密
用戶密碼管理的文件是/etc/shadow ,這個文件內容和passwd文件內容一一對應,它是專門用來管理用戶密碼的。centos7
這個文件也是每一行表明一個用戶,用":"分爲了九段。如下是每一段的說明
|第一段|用戶名|
|第二段|通過加密的用戶密碼。詳細說明:1.若是爲空,則對應用戶沒有口令,登陸時不須要口令。2.*號表明賬號被鎖定。3.!!表示這個密碼已通過期了。4.$6$開頭的,代表是用SHA-512加密。 5.$1$代表是用MD5加密。 6.$2$ 是用Blowfish加密。 7.$5$是用 SHA-256加密|
|第三段|表示最近一次修改密碼距離1970年1月1日多少天|
|第四段|表示要過多少天才能更改密碼,默認的是零,也就是沒有限制|
|第五段|表示密碼多少天后會過時,即在多少天內必需要更改密碼|
|第六段|密碼到期警告,會提醒用戶密碼在多少天內會過時|
|第七段|表示是帳戶的失效期限|
|第八段|表示帳號的生命週期|
|第九段|保留字段,沒有意義|
密碼生產工具
mkpasswd命令能夠隨機生成密碼,須要安裝expect
yum -y install expect
經常使用參數:
-l 指定 長度
-d 指定 數字的個數
-c 指定 小寫字符個數
-C 指定大寫字符個數
-s 指定特殊字符個數
su命令
su切換用戶命令
經常使用參數: - 完全切換,包括家目錄、環境變量
- 參數表示完全切換用戶,以下圖不加-和加-的區別
useradd命令
此命令是用來添加用戶
命令格式:useradd 參數 用戶名
經常使用參數:
-u : 指定uid。centos7的uid是從1000開始
-g : 指定gid(用戶組id),此id必須是存在的
-d :指定用戶家目錄
示例:
1.添加一個用戶
2.添加一個用戶並指定uid
3.添加一個用戶並指定家目錄
userdel命令
userdel命令是刪除一個用戶
用法:userdel 參數 用戶名
不加參數,直接userdel username 會把這個用戶刪除,但用戶的家目錄不會刪除。
經常使用參數:
-r : 刪除用戶,並刪除用戶家目錄
usermode命令
usermode用來修改用戶屬性,使用usermode最少須要一個參數
用法:usermode 參數 用戶名
經常使用參數:
-u : 變動用戶uid
-g : 改變用戶gid
-d : 修改用戶家目錄
若是修改的目錄不存,則會出現問題,這時候須要把原來的目錄重命名爲新的家目錄,或者複製一份系統家目錄模板到新的目錄下
-s : 修改用戶的shell,如:把test01這個用戶修改成sbin/nologin這個shell,它就沒法登錄
-G : 擴展用戶組,能夠給用戶增長多個組
-L : 鎖定用戶,鎖定後root能夠su過去,可是普通用戶沒法直接登陸。
能夠查看密碼文件,能夠看到該用戶前面加了!號,說明已經被鎖了。
-U :解鎖用戶。
passwd命令
passwd命令是用來修改用戶密碼
用法:passwd 用戶名
經常使用參數:
-l : 鎖定用戶,和usermode -L 相似
-u : 解鎖用戶,和usermode -U 相似
用戶組文件
/etc/group是用戶組的配置文件
主要分爲四段:
第一段:用戶組名
第二段:用戶組密碼,實際保存在/etc/shadow中
第三段:用戶組的gid
第四段:用戶組成員
新增用戶組
groupadd是新增用戶組命令
命令格式:grouadd 用戶組名
經常使用參數:
-g :指定用戶組gid
刪除用戶組
groupdel是刪除用戶組
用法:groupdel 用戶組名
什麼是sudo命令?
sudo命令以他人身份執行命令,默認爲root,可在文件/etc/sudoers中配置。
visudo命令:用來配置/etc/sudoers文件,報錯時能夠自動校驗
通常用戶權限
配置文件中最重要的一行(下圖):表示root在任何地方均可以運行全部的命令
仿照這一行添加一個:
表示wxy這個用戶被賦予root權限,能夠以root身份執行ls,mv,cat命令
爲何要限制?
在平常工做中生產環境中root權限過大,爲了安全應該限制root用戶登陸。
若是限制?
只容許登陸普通用戶,登陸後使用su切換到root用戶。
爲了root用戶密碼不泄露,配置sudo文件 使普通用戶使用su 到root時不用輸入密碼。配置以下: 使用visudo命令編輯配置文件,新建一個alias組 須要賦予權限的用戶,以下圖:
繼續配置,這樣就可使指定的用戶切換root時再也不輸入密碼
配置不容許root登陸
修改配置文件/etc/ssh/sshd_config,修改內容以下(把註釋去掉,並把yes改成no
重啓ssh服務
systemctl restart sshd.service
習題
如何把用戶鎖在本身的家目錄
2.創建僞shell
- sudo的高級用法 瞭解sudo的高級用法,通常不經常使用做爲了解 [sudo高級用發](https://www.jianshu.com/p/51338e41abb7)