用戶、組的基本概念:
用戶和組:
系統上每一個進程都是由一個特定的用戶發起。
系統上的文件都是由特定的用戶擁有。
用戶對系統上的文件訪問時 ,受到權限控制
與運行中的進程相關聯的用戶確定該進程可訪問的文件和目錄
用戶:
用戶的標識符,密碼
用戶的分類:
管理員,
普通用戶
組:
也稱用戶組、用戶容器
1. 用戶和組的標識符:
UID:屬主的標識符
0 - 65535(一共可以創建65535個用戶)
管理員用戶:root:0
普通用戶:1-65535
系統用戶:CentOS6:1-499
CentOS7:1-999
登錄用戶:CentOS6:500-65535
CentOS7:1000-65535
名稱解析:名稱轉換
用戶名--------UID
根據名稱解析庫 : /etc/passwd
GID:屬組的標識符
0-65535(劃分與UID一致)
管理員組:root:0
普通用戶組:1-65535
系統用戶:CentOS6:1-499
CentOS7:1-999
登錄用戶:CentOS6:500-65535
CentOS7:1000-65535
名稱解析:
用戶組名--------GID
名稱解析庫 : /etc/group
組類別:
用戶的基本組
用戶的附加組
組類別:
私有組:組名和用戶名一樣,且只包含一個用戶
公共組:組內包含多個用戶
用戶組group:就是具有相同特徵的用戶的集合
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
//uid和gid就是標識符
認證信息:密碼 (用戶密碼保存在/etc/shadow 中 /etc/gshadow保存組密碼)
密碼策略:
1、使用隨機密碼
2、最短長度不低於8位
3、應該使用小寫字母,大寫字母,數字,標點符號四類中的至少三類
4、定期更換
加密算法:
對稱加密:加密與解密使用同一密碼
非對稱加密:加密與解密使用同一對兒密匙
2、用戶、組管理:
安全上下文:進程是以其發起者的身份運行,進程對文件的訪問權限,取決於發起此進程的用戶的權限。
groupadd:添加用戶組:
結構: groupadd [options] group
選項:-g GID:指定組ID,默認情況下是上一個組ID+1
-r:創建一個系統組
groupmod:修改組屬性
結構: groupadd [options] group
-g:修改組ID
-n:修改組名(重命名)
groupdel:刪除組
結構:groupdel [options] GROUP
groupdel nebula
[root@localhost ~]# groupadd -g 1000 jerry
[root@localhost ~]# tail -1 /etc/group
jerry:x:1000:
[root@localhost ~]# tail -1 /etc/group
tom:x:1000:
useradd :創建用戶
結構:useradd [options] LOGIN
-u:指定UID
-g:指定基本組ID
-G:指定用戶的附加組,附加組事先要存在
-c:添加註釋信息
-d:指定用戶的家目錄,通過複製/etc/skel目錄,並改名
-s:指定用戶的默認shell
-r:創建系統用戶
useradd -D:顯示創建用戶的配置
useradd -D [options] :修改默認配置
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
//修改後的內容存儲的路徑
userdel:用戶刪除
userdel 登錄名
-r:刪除用戶時一併刪除家目錄
usermod:修改用戶屬性
-u:修改用戶ID
-g:修改用戶的基本組
-G:修改用戶的附加組
-c:修改註釋信息
-d:修改家目錄
-m:與-d選項一起使用,用於將原來家目錄的文件移動到新的家目錄
-a:與-G一起使用,追加用戶的附加組
-l:修改用戶名
-s:修改默認shell
-e:修改用戶密碼過期時間
-L:鎖定用戶密碼
-U:解鎖用戶密碼
[root@localhost ~]# usermod -u 1001 -c "modify user" -s /bin/bash -aG user2 -md /mnt/user3 -l user4 user3
[root@localhost ~]# usermod -e "Aug 16,2019" john
//將John用戶密碼過期時間
[root@localhost ~]# chage -l John
最近一次密碼修改時間 :8月 14, 2019
密碼過期時間 :從不
密碼失效時間 :從不
帳戶過期時間 :8月 16, 2019
兩次改變密碼之間相距的最小天數 :0
兩次改變密碼之間相距的最大天數 :99999
在密碼過期之前警告的天數 :7
/etc/passwd:存儲用戶的基本信息
root: x:0:0:root:/root:/bin/bash
用戶名:密碼(x是佔位符):用戶標識符:組標識符:註釋信息:主目錄(也稱家目錄):登錄shell
passwd:用戶密碼
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays]
[-w warndays] [-i inactivedays] [-S] [--stdin] [username]
1、passwd:直接修改自己的密碼
2、passwd username:修改指定用戶的密碼,僅root用戶有此權限
-l:鎖定用戶
-d:清楚密碼串
-e DATE:過期日期
-i DAYS:非活動期限(指該用戶可以多久不使用,但依舊存在)
-n DAYS:密碼最短使用期限
-x DAYS:密碼最長使用期限
-w DAYS:告警期限(告訴你該密碼還有多久過期)
–stdin :非交互式創建密碼
echo “PASSWORD” |passwd --stdin username
gpassed:組密碼(保存在/etc/gshadow中)
-a username:向組內添加用戶
-d username:從組內刪除用戶
newgrp:用來做臨時切換指定的組爲基本組
chage:更改密碼過期信息
-d:指定密碼最後修改日期
-E:密碼到期日期,
-w:密碼過期前的警告天數
-m:密碼可以更改的最小天數
-M:密碼保持有效的最大天數
[root@localhost ~]# chage -l John
最近一次密碼修改時間 :8月 14, 2019
密碼過期時間 :從不
密碼失效時間 :從不
帳戶過期時間 :8月 16, 2019
兩次改變密碼之間相距的最小天數 :0
兩次改變密碼之間相距的最大天數 :99999
在密碼過期之前警告的天數 :7
id:顯示用戶的真和有效ID
-u:顯示 UID
-g:顯示GID
-G:顯示用戶的所有組
-n:顯示名字
/etc/shadow:存儲用戶密碼信息
root:$6$cPLjOIAuIwObXHI.$Ev6aLd95N98DVK7KNZ6zl5IfUOvy3F3YS3uwjUyplboCL/idy90DxZnS0sOAVa/f5Yr2Nz9zof3EkZx.IizgA.::0:99999:7:::
登錄名:加密口令:最後一次修改時間:最小時間間隔(0):最大時間間隔(99999):警告時間(7):不活動時間:失效時間:(預留)標誌
最後一次修改時間:表示從某一個時間點開始,到用戶最後一次修改口令的時間天數,一般情況下從1970.1.1開始
最小時間間隔:兩次修改口令之間所需的最小天數
最大時間間隔:口令保持有效的最大天數
警告時間:從系統開始警告用戶到用戶密碼正式失效之間的天數
不活動時間:指用戶沒有登錄活動單賬號仍然保持有效的最大天數
失效時間:該用戶使用權有一期限,到時間沒有使用權
加密口令:cPLjOIAuIwObXHI.$:加密因子
小練習:
1、創建用戶gentoo.UID 爲4001,基本組爲gentoo,附加組爲jerry(jerry的GID爲5000)
[root@localhost ~]# groupadd -g 10003 jerry
[root@localhost ~]# groupadd -g 10001 suse
[root@localhost ~]# user -u 40001 -g suse -G jerry gentoo
[root@localhost ~]# tail -1 /etc/passwd
federa:x:40002:40002:federa core:/home/federa:/bin/bash
[root@localhost ~]# id gentoo
uid=40001(gentoo) gid=10003(suse) groups=10003(suse),50000(jerry)
2、創建用戶federa,其註釋信息爲“federa core”,默認shell爲/bin/csh
[root@localhost ~]# useradd -c "federa core" -s /bin/csh federa
[root@localhost ~]# tail /etc/passwd
federa:x:40002:40002:federa core:/home/federa:/bin/bash
3、修改gentoo用戶家目錄,目錄爲/tmp/gentoo
[root@localhost ~]# usermod -d /tmp/gentoo gentoo
[root@localhost ~]# tail /etc/passwd
gentoo:x:4001:1001::/tmp/gentoo:/bin/bash
4、爲gentoo 增加附加組 natasha
[root@localhost ~]# groupadd natasha
[root@localhost ~]# username -aG natasha gentoo
[root@localhost ~]# id gentoo
uid=4001(gentoo) gid=1001(suse)
groups=1001(suse),5000(jerry),5001(natasha)
5、非交互式修改gentoo密碼爲gentoo