一、用戶
Linux中用戶是資源獲取的標識符,資源分配,文件系統安全權限模型的核心要素之一。密碼則是用戶認證的憑證,用戶信息和密碼信息都存放在相應的文本文件中,密碼信息在存放的過程用了一定的加密算法進行加密。
1.加密算法:
資源分派:
Authentication:認證(確認身份,也有可能好幾個人一個身份)
用戶名+口令驗證
Authorization:授權(對文件操作)
Accouting|Audition:審計(根據日志判斷操作)
加密方法(計算速度快,可以破解一切密碼):
對稱加密(DES,3DES,):加密和解密都是用同樣秘鑰,叫做對稱加密
公鑰加密(DSA,RSA):私鑰和公鑰。
私鑰加密(認證用戶),公鑰解密。
單向加密:比較二次數據可以得知數據是否被修改
雪崩效應(蝴蝶效應):初始條件的細小改變,會導致數據的巨大變化
定長輸出:
不可逆:
MD5:信息摘要,128bits定長輸出
SHA1:安全的hash算法,160bits
SHA224: 224bits
SHA256: 256bits
SHA384: 384bits
SHA512: 512bits
更改加密算法authconfig –passalgo=sha256 –update
? 顯示當前的加密算法 authconfig –test | grep hashing
diff 逐行比較兩個文件的內容,列出兩個文件之間不同。
man sslpasswd (此命令可以自己按照加密方式得到密碼,但是支持MD5加密算法)
openssl passwd -1 -salt 123456789 (用MD5加密,然后在密碼中加了123456789字符作為鹽,用來保證相同密碼加密的MD5碼不相同)
2.相關存放信息文件有:
/etc/passwd 用戶信息表,存放NAME、UID、GID、COMMENT、HOMEDIR、TYPE SHELL
/etc/shadow 用戶密碼信息表,存放加密后的密碼,密碼修改相關時限
/etc/group 組信息表,存放GROUPNAME、GID、其他將此組當做附加組的用戶名
/etc/gshadow 組密碼表,存放GROUPNAME、加密密碼、其他將此組當做附加組的用戶名
3.相關環境配置文件:
/etc/login.de 控制創建用戶時系列參數
/etc/default/useradd 也是控制創建用戶時的系列參數
/etc/shells 當前系統中存在的shell類型
etc/skel 創建用戶家目錄時里面的文件的來源
4.Linux安全上下文(security context)
運行中的程序:進程(process)
以進程發起者的身份運行:(是由root和mage決定的,不是cat決定,這兩者執行cat的權限是不一樣的)
root: /bin/cat
mage: /bin/cat
進程所能夠訪問資源的權限取決于進程的運行者的身份,而不是進程所有者的身份
組的類別
一個賬號可以加入多個組,一個組也可以包含多個用戶
例如:
group1:wang,mage,li
group2:wang,li
Linux組的類別:
用戶的主要組(主組):(一個用戶在創建的時候必須要指定一個組)
用戶必須屬于一個且只有一個主組
組名同用戶名,且僅包含一個用戶:私有組
這是默認的,新建一個用戶,就會產生和用戶同名的組,有且僅有一個
用戶的附加組(輔助組,secondary group):
一個用戶可以屬于零個或多個輔助組
前提:進程有屬主和屬組;文件有屬主和屬組
(1) 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限
(2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為發起者所屬的組
(3) 進程訪問文件時的權限,取決于進程的發起者
(a) 進程的發起者,同文件的屬主:則應用文件屬主權限
(b) 進程的發起者,屬于文件屬組;則應用文件屬組權限
(c) 應用文件“其它”權限
5./etc/passwd 用戶信息文件詳解
文件格式:
NAME:X:UID:GID:COMMENT:HOME:SHELL
NAME:用戶名
X :用戶密碼占位符,以前用戶密碼存放在這里(pwconv,pwunconv。這兩個命令可以將密碼重新導入這里或者到導出回/etc/shadow)
UID:User IDentfie
用戶識別碼,每個用戶唯一的識別碼,Linux系統識別用戶不通過NAME來識別,是通過UID識。
根據UID的數字,將用戶分為兩類:
65535
管理員用戶:UID(0)
普通用戶:
系統用戶:UID (1-499)CentOS 6
UID (1-999)CentOS 7
普通用戶:UID (500+) CentOS 6
UID (500+) CentOS 7
GID:Group IDentfie
基本組GID,每個用戶都有一個基本組,這個基本組可以不是唯一的?;窘MGID也分為同UID一樣分為兩類,具體分組見上面。
COMMENT:注釋信息,就finger USERNAME 得出的信息。
HOME:用戶的家目錄路徑
SHELL:shell類型
/etc/group 存放組信息表
格式: GROUPNAME:X:GID:附加組
GROUOPNAME: 組名
X : 組密碼占位符
GID:組GID
附加組:其他用戶以這個組為附加組的用戶名
vigr 修改配置文件時,格式不對會提醒
/etc/passwd 存放密碼的信息表
格式: login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
login name : 用戶名
encrypted password:加密密碼
date of last password change:最近修改密碼的時間,從1970年1月1日
minimum password age:最小的修改密碼時間
maximum password age:密碼最長能使用的時間
password warning period:距離過期的警告時間
password inactivity period:非活動區間(賬號一登陸就需要修改密碼)
account expiration date: 賬戶有效期
vipw 修改配置文件時,格式不對會提醒
pwck 檢查/etc/passwd 文件格式是否存在錯誤
/etc/gshadow
group name :組名
encrypted password:群組加密密碼
administrators :組管理員
members :組成員
grpck 檢查/etc/gpasswd 文件格式是否存在錯誤
pwck和grpck
用戶創建:
用戶創建方式之一:useradd 命令
useradd
-u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs
-o 配合-u 選項,不檢查UID的唯一性
-g GID:指明用戶所屬基本組,可為組名,也可以GID
-c "COMMENT":用戶的注釋信息
-d HOME_DIR: 以指定的路徑(不存在)為家目錄
-s SHELL: 指明用戶的默認shell程序可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…]:為用戶指明附加組,組必須事先存在
-N 不創建私用組做主組,使用users組做主組
-r: 創建系統用戶 CentOS 6: ID<500, CentOS 7: ID<1000
默認值設定: /etc/default/useradd文件中
? 顯示或更改默認設置:
useradd -D
useradd –D -s SHELL
默認配置文件
/etc/default/useradd
/etc/skel/*
/etc/login.defs
批量創建用戶:
newusers PASSWD.TXT
PASSWD.TXT 的格式必須是/etc/passwd 下面的格式
chpasswd 批量修改用戶口令
cat SHADOW.TXT | chpasswd
SHADOW.TXT 的格式:
ACCOUNT:明文密碼
修改用戶屬性:
usermod
-u UID: 新UID
-g GID: 新基本組
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append;
-s SHELL:新的默認SHELL;
-c 'COMMENT':新的注釋信息;
-d HOME: 新家目錄不會自動創建,原家目錄中的文件不會同時移動至新的家目錄;若要創建新家目錄并移動原家數據,同時使用-m選項
-l login_name: 新的名字;
-L: lock指定用戶,在/etc/shadow 密碼欄的增加 !
-U: unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉
-e YYYY-MM-DD: 指明用戶賬號過期日期;
-f INACTIVE: 設定非活動期限;
chage [OPTION]… LOGIN
-d LAST_DAY
-E, –expiredate EXPIRE_DATE
-I, –inactive INACTIVE
-m, –mindays MIN_DAYS
-M, –maxdays MAX_DAYS
-W, –warndays WARN_DAYS
–l,顯示密碼策略
? 下一次登錄強制重設密碼
chage -d 0 tom
? chage -m 0 –M 42 –W 14 –I 7 tom
? chage -E 2016-09-10 tom
用戶相關的其它命令
? chfn 指定個人信息
? chsh 指定shell
刪除用戶:
userdel
-r: 刪除用戶家目錄;
設置用戶密碼:
passwd
-l:鎖定指定用戶
-u:解鎖指定用戶
-e:強制用戶下次登錄修改密碼
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天開始警告
-i inactivedays:非活動期限;
–stdin:從標準輸入接收用戶密碼;
echo "PASSWORD" | passwd –stdin USERNAME
用戶組相關信息:
groupadd [OPTION]… group_name
-g GID: 指明GID號; [GID_MIN, GID_MAX]
-r: 創建系統組;
修改和刪除組
? 組屬性修改: groupmod
groupmod [OPTION]… group
-n group_name: 新名字
– g GID: 新的GID;
? 組刪除: groupdel
groupdel GROUP
更改組密碼
? 組密碼: gpasswd
? gpasswd [OPTION] GROUP
-a user: 將user添加至指定組中;
-d user: 從指定組中移除用戶user
-A user1,user2,…: 設置有管理權限的用戶列表
? newgrp命令:臨時切換基本組;
如果用戶本不屬于此組,則需要組密碼
更改和查看組成員
? groupmems [options] [action]
-g, –group groupname 更改為指定組 (只有root)
-a, –add username 指定用戶加入組
-d, –delete username 從組中刪除用戶
-p, –purge 從組中清除所有成員
-l, –list 顯示組成員
groups 顯示用戶組信息
顯示用戶相關信息:
id
-g, –group 僅僅顯示有效GID
-G, –groups 顯示所有組的GID
-n, –name
print a name instead of a number, for -ugG
-r, –real
print the real ID instead of the effective ID, with -ugG
-u, –user
print only the effective user ID
finger
原創文章,作者:fighter,如若轉載,請注明出處:http://www.www58058.com/28892