Linux是一個可以實現多用戶登錄的操作系統,允許多個用戶同時登陸到系統上使用資源。系統根據賬戶來區分每個用戶的文件、進程、任務、給每個用戶提供特定的工作環境。
一、用戶組的基本概念
系統在解析用戶的時候,並不能直接的去解析用戶名 ,但是它你讓那個夠識別解析ID號,UID,GID
1、UID
管理員:0
普通用戶:1-65535
系統用戶:1-499(centos6) ,1-999(centos7)
登錄用戶:500-60000(centos6),1000-60000(centos7)
名稱解析:username<------>UID
根據名稱解析庫: /etc/passwd
2、GID
管理員組:0
普通用戶組:1-65535
系統用戶組:1-499(centos6),1-999(centos7)
登錄用戶組:500-60000)(centos6),1000-60000(centos7)
名稱解析:groupname<------>gid
名稱解析庫:/etc/group
組類別:用戶基本組、用戶附加組
3、密碼策略
1、使用隨機密碼
2、最短長度不少於8位
3、應該使用大小寫字母、數字、標點符號中至少三類
4、定期更換
4、加密算法
對稱加密:加密和解密使用的是同一個密文
非對稱加密,密鑰對,
算法:MD5,sha128,sha256
二、用戶和組的管理
安全上下文:進程以其發起者的身份運行;進程對文件的訪問權限,取決於發起此進程的用戶的權限
groupadd:添加組
用法:groupadd [選項] group
選項
-g GID | 指定GID,默認創建時無法創建系統用戶組 |
---|---|
-r | 創建系統組 |
groupmod:修改組
選項
-g GID | 修改GID |
---|---|
-n newgroupname | 修改組名 |
groupdel:刪除組
goupdel groupname
useradd:添加用戶
選項
-u UID | 指定UID |
---|---|
-g GID | 指定基本組ID,此組得事先存在 |
-G | 指明附加組 |
-c | 添加註釋信息 |
-d | 指定家目錄,複製/etc/skel並重命名實現 |
-s | 指定默認shell |
-r | 創建系統用戶 |
-D | 顯示創建用戶的默認配置 |
舉例
# useradd -u 5000 -g 500 -G jerry -c "hello world" -s /bin/sh tom
usermod:修改用戶屬性
選項
-u UID | 指定UID |
---|---|
-g GID | 指定基本組ID,此組得事先存在 |
-G | 指明附加組 |
-a | 追加新的附加組 |
-c | 添加註釋信息 |
-d | 指定家目錄,複製/etc/skel並重命名實現 |
-m | 與-d一起使用,把原來的家目錄移動爲新的家目錄 |
-l | 修改用戶名 |
-s | 指定默認shell |
-L | 鎖定用戶 |
-U | 解鎖用戶 |
舉例
修改gentoo用戶的家目錄爲/var/tmp/gentoo;要求其原有文件仍能被用戶訪問
# usermod -m -d /var/tmp/gentoo gentoo
userdel:刪除用戶
-r | 和家目錄一併刪除 |
---|
passwd:創建或者修改用戶密碼
- passwd:修改自己的密碼
- passwd username:修改指定用戶密碼,只有root有權限
選項
-l | 鎖定用戶 |
---|---|
-u | 解鎖用戶 |
-d | 清除密碼串, |
-e date | 過期期限 |
-n days | 最短使用期限 |
-x days | 最長使用期限 |
-w days | 告警時間 |
- -stdin | 非交互式創建密碼 |
例如
echo "password" | passwd --stdin username
gpasswd:創建或修改組密碼
gpasswd groupname
選項
-a username | 向組中添加用戶 |
---|---|
-d username | 從組中刪除用戶 |
id:顯示用戶的ID號
-u | 顯示UID |
---|---|
-g | 顯示GID |
-G | 顯示所屬組ID |
-n | 需要和-u -g -G 配合使用顯示名字而非ID |
chage:更改用戶密碼過期信息
用法
chage options 登錄名
選項
-d date | 指定密碼最後修改時間 |
---|---|
-E date | 密碼到期日期,過了時間後帳號不可用 |
-w days | 告警時間 |
-m days | 密碼可以更改的最小天數 |
-M days | 密碼有效的最大天數 |
解析庫文件
/etc/passwd 7個字段
root:x:0:0:root:/root:/bin/bash片
以 :爲分隔符
1、用戶名,長度不要超過8個字符,數字字母組成
2、口令:passwd ,shawod ,使用x佔位符
3、用戶的標識符UID
4、用戶組的標識符GID
5、註釋信息
6、用戶的家目錄
7、登錄shell
密碼信息
/etc/shadow
root:$6$rxtW5qBw$yNHpzQxqF61aBP.4EgWwdZG32DiaRg537VnUFV0x947zXHs3VLgEiToxwCQB1YsdqgTBlaQuP.gYirQQABoYB.:18312:0:99999:7:::
1、登錄名
2、用戶的加密口令,*,被鎖定,!!代表過期,加密算法,加密因子
3、口令最後一次修改時間
4、兩次修改口令最小的時間間隔
5、口令有效的最大天數
6、告警時間
組信息
/etc/group
root:x:0:
1、組名
2、口令
3、GID
4、以他爲附加組的組內用戶
練習
1、創建用戶gentoo,UID爲4001,基本組爲gentoo,附加組爲distro(GID爲5000)和peguin(GID爲5001);
# groupadd -g 5000 distro
# groupadd -g 5001 peguin
# useradd -u 4001 -G distro,peguin gentoo
2、創建用戶fedora,其註釋信息爲"Fedora Core",默認shell爲/bin/tcsh;
# useradd -c "Fedora Core" -s /bin/tcsh fedora
3、修改gentoo用戶的家目錄爲/var/tmp/gentoo;要求其原有文件仍能被用戶訪問;
# usermod -m -d /var/tmp/gentoo gentoo
4、爲gentoo新增附加組netadmin;
# groupadd netadmin
# usermod -aG netadmin gentoo