Linux用戶及權(quán)限管理
1.Linux中的用戶
Linux是一個多用戶(multi-users)、多任務(wù)(multi-tasks)的操作系統(tǒng)。因此通過終端登陸系統(tǒng)需要,相應(yīng)的機制,來進行管理、使用計算機系統(tǒng)資源。
一般都需要解決這樣三個問題:
(1)認(rèn)證(authentication)
解決什么人可以登陸使用計算機資源
(2)授權(quán)(authorization)
解決用戶登陸后,其能使用計算機中的什么資源,能進行什么樣的操作
(3)審計(audition)
- 記錄用戶所進行的相關(guān)操作的信息
2.linux中用戶的劃分
Linux中的用戶等級大概是分為兩級:超級用戶即管理員和普通用戶。其中普通用戶,按照系統(tǒng)程序運行機制及安全性,又可劃分為:系統(tǒng)用戶和登陸用戶。系統(tǒng)用戶,不能登錄系統(tǒng),以其身份運行的程序,僅在后臺以進程的方式作為服務(wù)運行。登陸用戶,可以登陸終端,并通過交互接口,與其他程序或文件,進行交互。
用戶標(biāo)識(UID):
計算機更容易理解的往往是二進制數(shù)據(jù),因此,我們使用16位二進制數(shù)字來唯一標(biāo)識用戶,即UID。UID是0--65535.管理員的UID為0,普通用戶的UID為1--60000.普通用戶中的系統(tǒng)用戶UID為1--499(centos6),1--999(centos7);普通用戶中的登陸用戶UID為500--60000(centos6),1000--60000(centos7).
名稱解析:
在計算機中經(jīng)常會用到,如用戶名<--->UID,他們之間的相互解析。解析需要相應(yīng)的解析庫來提供比較對照,有戶名與UID的解析庫是文件/etc/passwd
3.linux中的組
按照劃分的標(biāo)準(zhǔn)不同,可分為:
- 管理員組和普通用戶組;基本組和附加組:私有組和公共組。
- 基本組和私有組,可以簡單的理解為,創(chuàng)建用戶時自動創(chuàng)建的與用戶同名的組。
- 附加組和公共組,可簡單理解為,自己的用戶加入到其他用戶的基本組。
- 組對應(yīng)的解析庫是/etc/group這個文件。
4.密碼策略及加密算法
一般為了保證系統(tǒng)的安全,大都遵循一些基本原則:
使用隨機密碼;密碼盡可能滿足一定的長度;盡可能滿足使用的字符集要求;最總要是定期更換
密碼的加密算法:
對稱加密;非對稱加密;單向加密(提取數(shù)據(jù)的特征碼,不可逆的)
5.Linux中重要的用戶和組的解析庫文件解析
/etc/passwd 文件解析:(每行7段)
name:password:uid:gid:gecos(用戶的注釋信息):home(用戶的家目錄):shell
/etc/shadow 文件解析:(每行9段)
用戶名:
加密的密碼段:
最近一次更改密碼的時間:
密碼最短使用期限:
密碼最長使用期限:
警告期限:
非活動時間:
過期時間:
保留字段
/etc/group 文件解析:
groupname:password:gid:userlist(一次為附加組的用戶的列表)
6.用戶和組的管理命令
groupadd 添加組命令
基本用法:groupadd [選項]... 組名
常用選項:-g gid :添加組的同時制定GID
-r :創(chuàng)建一個系統(tǒng)組
列如:#groupadd -g 3306 mariadb
#groupadd -r archlinux
groupmod 修改組命令
基本用法:groupmod [選項]... 組名
常用選項:-g gid :修改組的UID
-n newgroup:修改組的名字
示例:#groupmod -g 3307 mariadb
#groupmod -n mysql mariadb
groupdel 刪除組
基本用法:groupdel [選項]... 組名
useradd 創(chuàng)建用戶命令
基本用法:useradd [選項]... 用戶名
常用選項:-u uid : 創(chuàng)建用戶同時指定用戶的UID
-g gid : 創(chuàng)建用戶的同時指定其基本組GID
-r : 創(chuàng)建一個系統(tǒng)用戶
-c comment : 創(chuàng)建用戶時標(biāo)注注釋信息
-d dir :創(chuàng)建用戶時指定家目錄的路徑
-s shell : 創(chuàng)建用戶時指定默認(rèn)登陸shell(***是/etc/shells中有的)
-G gid :創(chuàng)建用戶時指定這個的附加組,有多個附加組有逗號隔開
-M :創(chuàng)建用戶時不創(chuàng)建用戶家目錄
-D : 顯示添加用戶時的默認(rèn)屬性或設(shè)置更改默認(rèn)屬性
-f :非活動期限,0:非活動啟用 -1:非活動禁用
實例:#useradd -u 1008 -g 1008 gentoo (此組要事先存在)
#useradd -r fedora
#useradd -c 'slackware linux' slackware
#useradd -d /var/tmp/debain -s /sbin/nologin debain(***是SELinux關(guān)掉)
#useradd -G gentoo,slackware zen
#useradd -M docker
#useradd -D -f 0 修改的是/etc/default/useradd文件中的值
usermod 修改用戶相關(guān)屬性的命令
基本用法:usermod [選項]... 用戶名
常用選項:-u uid : 更改用戶的uid
-g group :更改用戶的基本組
-G -a :常結(jié)合在一起使用(否則回覆蓋),更改用戶的附加組
-c comment:更改注釋信息
-d -m :常結(jié)合在一起使用,更改家目錄,并將家目錄中的文件一起轉(zhuǎn)移
-l newname: 更改新的用戶名
-s shell:更改用戶的shell
-L :鎖定用戶
-U : 解鎖用戶
實例:#usermod -g zen docker
#usermod -aG zen,slackware mysql
#usermod -d /path/to/mysql -m mysql
#usermod -l mysqldb mysql
userdel 刪除用戶命令
常用選項:-r :刪除用戶同時其家目錄的文件一起刪除,默認(rèn)不刪出家目錄文件
passwd 密碼管理命令
基本語法:passwd [選項]... [用戶]
常用選項:-l :鎖定用戶
-u : 解鎖用戶
-d : 刪除密碼
-e data :密碼過期期限
-i days :非活動期限
-n days :密碼最短期限
-x days :最長期限
-w days :警告期限
--stdin :從標(biāo)準(zhǔn)輸入獲取,作為密碼
實例:#echo 'centos' | passwd --stdin username &> /dev/null
gpasswd 組密碼管理命令
基本語法:gpasswd [選項]... [組名]
常用選項:-a username :向組中添加用戶
-d username ; 從組中刪除用戶
不加選項,直接給當(dāng)前用戶組或指定組,設(shè)置密碼。組密碼,常用于某用戶需要登陸或臨時切換至某組時使用;如果某用戶是某組的成員,則不需要密碼直接可以登陸或切換。
newgrp 用戶登陸或臨時切換至一個組的命令
實例:#newgrp - group #登陸group組
#newgrp group #臨時切換至group這個組
chage 更改密碼的過期期限信息
基本用法:chage [選項]... 用戶名
常用選項:-l :列出用戶的密碼期限信息
-d :上次密碼修改的日期
-E :過期期限
-W :警告期限
-m :***期限
-M :最長期限
-i :非活動期限
id 顯示實際和有效的ID
基本用法:id [選項]... 用戶名
常用選項:-u:顯示UID
-g :顯示gid
-G :顯示基本組和附加組的gid
-n :結(jié)合前面的選項,顯示名稱而非ID
su 切換用戶命令
登陸式切換
非登陸式切換
常用選項:-c ‘command’不切換登陸,僅以指定用戶的身份運行此處指定的command命令
實例:#su - username -c 'whoami'