用戶和用戶組及許可權管理: 一:基本概念 linux是一個多任務(multi-task)多用戶(multi-user)的操作系統,每個用戶和用戶組都有自己的ID號UID GID,每個用戶都有自己的家目錄不能隨意訪問其他用戶的家目錄,管理員root除外。 用戶的分類:(以centos7.x為例) 管理員 ...
用戶和用戶組及許可權管理:
一:基本概念
linux是一個多任務(multi-task)多用戶(multi-user)的操作系統,每個用戶和用戶組都有自己的ID號UID GID,每個用戶都有自己的家目錄不能隨意訪問其他用戶的家目錄,管理員root除外。
用戶的分類:(以centos7.x為例)
管理員或root:0
普通用戶:1-6000
系統用戶:1-999(centos7) 1-499(centos6)
登錄用戶:1000-65535(centos7) 500-65535(centos6)
組的分類:
私有組:組名同用戶名,而且只包含一個用戶,用useadd命令創建用戶是會預設創建一個私有組
公共組:組中包含了多個用戶
linux系統用戶安全機制:3A機制
authentication 認證--->比對/etc/shdow中的單向加密過的密碼確定用戶身份
authorization 授權--->通過許可權管理控制不同用戶的許可權
audition 審計--->通過selinux
加密方法:
對稱加密:加密和解密使用同一個密鑰
非對稱加密:加密使用私鑰解密使用公鑰
單向加密:只能加密不能解密,而且定長輸出 作用於提取文件的特征碼
演算法 md5 sda sha224 sha256 sha384 sha512
示例使用md5sum命令提取 iso鏡像文件的特征碼和使用sha224sum 加密字元串“123456”
[root@localhost zxs]# md5sum CentOS-6.8-x86_64-bin-DVD1.iso
f73c2c4dd333c202ca85ea66120cacdf CentOS-6.8-x86_64-bin-DVD1.iso
[root@localhost zxs]# echo "123456" | sha224sum ec5abd86603445ecc6f37e2632724f7823cc5f81342060fecc39836d
進程的安全上下文
進程是以用戶的身份運行的,當進程訪問文件是,先檢查發起進程的用戶和用戶所屬的組,在檢查文件的的屬主和屬組,如果文件的屬組就是發起進程的用戶則引用前三位的許可權,如果文件的屬組和發起進程的用戶的屬組相同則應用中三位的許可權,都不是的話及應用右三位的許可權
查看文件的許可權命令 ls-l
[root@localhost ~]# ls -al total 64 dr-xr-x---. 2 root root 219 Apr 26 17:31 . dr-xr-xr-x. 17 root root 244 Apr 26 17:46 .. -rw-------. 1 root root 742 Apr 27 10:22 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
drwxrwxrwx:
左1位表示文件的類型
左rwx表示所屬主(owers) 的許可權 讀+寫+執行
中rwx表示所屬組(groups)的許可權
右rwx表示其他(others)的許可權
許可權組合機制
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
示例 r-xr-x--x 551
rwxr-xr-x 755
rw-rw---- 664
二:瞭解用戶和組相關配置文件
/etc/passwd:用戶的密碼文件
[root@localhost zxs]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
說明:文件用戶“:”分隔一共有7個欄位每個欄位的含義是
username:password:UID:GID:GECUS:dircution:shell
用戶名:x:UID:GID:註釋:家目錄:shell (x表示占位符,為了安全表示密碼保存在/etc/shadow)
/etc/shadow:用戶的密碼文件
[root@localhost ~]# cat /etc/shadow | grep "zxs\>" zxs:$6$vF9dzSd/$dyIJLhXSAR8oB5RxgV2qt4W8eF.zMRX2bAoaxYM6nhbaz5xuhjQQKCRFSfNt1eo5jzdyEv44zDuLe55XakjwA.:17283:2:6:1:3::
文件9個欄位用戶“:”分隔分別表示
用戶名:加密後的密碼:最後一個更改密碼的天數(電腦元年至修改密碼的時候):密碼最短使用天數:密碼最長使用天數:警告時間段:禁用期限:賬戶過期時間(從電腦元年開始計算):保留欄位
三:用戶和組管理命令
1:創建新用戶的命令和用法
useradd [選項] 登錄名
選項和參數說明:
-u:指定用戶的UID
-s:指定用戶的shell (系統可支持的shell在/etc/shells 下)
-r:創建一個系統用戶(UID範圍centos6為1-499,centos7為1-999可在/etc/login.defs中查看)
-c:關於登錄時的簡短描述 後跟描述的字元串
-d:自定義用戶的家目錄 後跟家目錄路徑
-e:用戶賬戶將被禁用的期限格式為 YYYY-MM-DD
-f:表示過期後徹底禁用的天數 0表示馬上禁止 -1表示禁用這個功能
-G[GROUP1],[GROUP2],... : 添加用戶的附加組多個組用“,”隔開
-M:不創建用戶的家目錄 預設複製/etc/skel/目錄下的文件到/home/USERNAME/下作為USERNAME的家目錄 都是隱藏文件
-N;不創建同名的私有組
2:修改創建新用戶的預設值:(D是default) 命令修改只對當前shell有效
useradd -D [選項]
註意:用 useradd -D 修改後的預設值只對當前shell進程,重啟或重新登錄無效永久生效需要修改配置文件/etc/default 或 /etc/login.defs 一般情況下linux系統下用命令行修改的設置都只對當前shell進程有
參數和選項說明:
useradd -D 不帶選項:查看創建新用戶的預設值
GROUP=100 #新用戶添加到UID為100的公共組
HOME=/home #預設家目錄路徑
INACTIVE=-1 #過期後徹底禁用的天數 -1表示禁用此功能 0表示過期後馬上禁止
EXPIRE= # 賬戶過期日期
SHELL=/bin/sh # 預設shell
SKEL= /etc/skel # 預設家目錄的複製目錄
CREATE_MAIL_SPOOL= #預設創建郵箱
帶選項就是修改上面的預設參數
useradd -D -e 修改變數 EXPIRE=
useradd -D -f 修改變數 INACTIVE=
useradd -D -s 修改變數 SHELL
3:修改用戶的信息
usermod [選項] 用戶名
參數和選項說明:
-u:修改UID
-g:修改用戶的基本組
-d:修改用戶的家目錄 原來的家目錄文件不會轉移至新目錄 要想移動要與參數 -m 一起使用
-G:修改用戶的附加組原來的附加組會被刪除 要想追加附加組使用參數 -a
-c:修改註釋信息
-e:修改過期日期
-f:修改過期後可使用的天數
4:刪除用戶
userdel [選項] 用戶名
-r:刪除用戶一起刪除其家目錄
5:創建組
groupadd [選項] 組名
-r:創建系統組
-g:指定GID -f:如果指定GID重覆 強制創建
6:修改組信息
groupmod [選項] 組名
-g:改UID
-n:改組名
7:刪除組
groupdel [選項] 組名
8:更新用戶密碼和信息
passwd [選項] 用戶名
參數和選項說明:
-d:刪除密碼
-l:鎖定用戶 機制是在/etc/shadow 文件中用戶的密碼字元串前加“!”
--stdin:與管道一起用將管道前輸出字元串作為密碼不需要與用戶交互 用於腳本編寫
示例:
[root@localhost ~]# echo "123456" | passwd --stdin zxs 更改用戶 zxs 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。
-u:解鎖
-e:密碼過期日期
-i:密碼禁用期限
-n:密碼最小年齡
-x:密碼最長年齡
-w:密碼警告日期
示例:
[root@localhost zxs]# echo "123456" | passwd -n 2 -x 6 -w 1 -i 3 --stdin zxs 調整用戶密碼老化數據zxs。 passwd: 操作成功
說明:假設在2號修改了用戶的密碼和其他日期設置
-n 2 (表示用戶在這個改的密碼至少要用到4號才能修改 2表天數為兩天)
-x 6 (表示密碼用戶用到8號就到期了 使用天數為6)
-w 1 (表示用戶密碼到期之前的前一天也就是7號,系統會提示密碼即將到期的消息提示用戶修改密碼,在到期之前用戶可以登錄系統)
-i 2 (表示賬號密碼過期後,到賬號完全禁用鎖定的天數,為寬限期3天,此期間用戶必須修改密碼才能登錄系統,禁用後完全無法登錄需用root 解鎖用戶)
9:給組添加密碼 一般不需要 用戶臨時切換基本組需要提供組密碼 沒有密碼不能切換
gpasswd [選項] 組名:
-a:組中添加用戶
-d:組中刪除用戶
10:臨時切換基本組 然後輸入組密碼
newgrp - [組名]
-:表示模擬重新初始化工作環境 同su -
11:顯示用戶信息
id [選項] [用戶名]
-u 顯示用戶UID
-g 顯示用戶基本組的GID
-G 顯示所有組的GID
-n 顯示用戶或組的名稱
su:切換用戶
-:重新讀取用戶的配置文件初始化其工作環境 就是切換至用戶的家目錄
pwck:檢查用戶密碼文件
grpck:檢查組密碼文件
四:許可權管理命令
三類用戶:
u owns
g groups
o others
a all
1:賦權表示法即直接賦予某一類用戶的所有許可權
chmod u=
g=
o=
a=
2:授權表示法即修改某一類用戶的一個許可權位(比較常用比較安全)
chmod u+
g+
o+
a+(a可以省)
3:8進位數值修改許可權方法 直接修改所有類型用戶的許可權
chmod 644
選項:
-R 修改目錄許可權時一併修改目錄下的所有文件
註:此用法最好搭配授權表示法,為了安全起見文件最好不要擁有執行許可權,目錄最好不要有寫許可權
--reference FILE 寫改文件的許可權使與文件FILE一樣
4:修改文件的屬主和屬組
chown [OPTION]... [OWNER][:[GROUP]] FILE...
例如
[root@localhost ~]# chown zxs:ftp text [root@localhost ~]# ll text -rw-r--r--. 1 zxs ftp 554 Apr 27 21:18 text
5:修改文件許可權的反向掩碼
umask預設為002
預設創建的文件的許可權是664 666-umask獲得
預設創建的目錄的許可權是755 777-umask獲得
umask 掩碼數字:修改掩碼即修改創建文件和目錄時的預設許可權
6:install命令類似cp命令
-m 複製是設置文件許可權預設為755
-o 複製時修改文件的屬主
-g 複製時修改文件的屬組