用戶和組
用戶信息文件

/etc/passwd
(1 2 3 4 5 6 7)
root:x:0:0:root:/root:/bin/bash 用戶信息,以 : 分割字段
daemon:x:2:2:daemon:/sbin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
字段1:用戶名
字段2:密碼占位符(原用於存放密碼,現已棄用)
字段3:uid(用戶的身份標識)
0 超級管理員 1-499 程序用戶 500-60000 普通用戶 (centOS 6 中)
999 1000 (centOS 7 中)
在應用啟動時,會調用程序用戶來啟動(該用戶權限低,無法登陸系統)
字段4:gid用戶的基本組id(一個用戶只能有一個基本組,但可以有多個附加組)
字段5:用戶信息(現已棄用)
字段6:用戶的的家目錄
字段7:用戶登錄系統的命令解釋器類型(shell)
/bin/bash 表示該用戶可以登錄系統
/sbin/nologin 表示該用戶無法登錄系統
用戶密碼信息


/etc/shadow
1 2
root:$7$UmhhDLOFNijwwr6v$.rw/AyPqqm4WeoYnajjveFCabPT9SeOLALLWbarOvPuTGtJX5d1cmwgV5abwzCplR8ekN2XlbweD2xcpG06eb0::0:99999:7:::
userA:!!:18458:0:99999:7:::
1 2 3 4 5 6 78
字段1:用戶名
字段2:被加密過的密碼(利用sha-512算法,以及salt值混合加密的密碼)
字段3:間隔天數(距1970年1月1日密碼最近一次的修改時間)
字段4:密碼的最短有效期,0表示不限制,若為3則表示用戶(root除外)三天內不能修改自己的密碼
字段5:密碼最長有效期(建議設定成90天)
字段6:密碼過期前的7天會有警告提示
字段7:密碼的不活躍期
字段8:賬戶的失效時間
相關命令
用戶管理
id user 查看用戶的信息(uid,gid以及附加組)
useradd userA 創建一個新用戶userA
id會默認從可用id里順序取值,且會同時創建同名的基本組和附加組
[root@localhost ~]# id userA
uid=1001(userA) gid=1001(userA) groups=1001(userA)
useradd -u 1223 -g 1001 userB 創建一個uid為1223,gid為1001的用戶userB
usermod -g root userA 將用戶userA的所屬組改為root
usermod -G 1002 userA 為用戶增加一個gid為1002的附加組
usermod -s /sbin/nologin 修改用戶的命令解釋器(無法登錄,也不能由其他用戶切換)
userdel -r userB 刪除用戶及其家目錄,若無-r,則會保留家目錄
組管理
groupadd gp 創建了一個名為gp的組
group -g 676 aaa 創建了一個gid為676的組aaa
groupmod -g 677 aaa 將組aaa的gid改為677
gpasswd -d aaa root 從root組成員中移除用戶aaa
tail -3 /etc/group
userA:x:1001:aaa
userB:x:1002:
aaa:x:1003:
字段1:組名
字段2:密碼標識
字段3:gid
字段4:組中的成員(以該組為附加組的用戶,以該組為基本組的用戶不顯示)
密碼管理
passwd -S root 查看root用戶的密碼狀態
passwd userA 為用戶userA設定密碼
passwd -d userA 刪除用戶userA的密碼
passwd -l userA 鎖定用戶userA,其不能在登錄界面登錄,但可以從其他用戶切換
passwd -u userA 解鎖用戶
chage -M 90 userA 修改用戶userA密碼的最長有效期為90天
權限管理
文件的詳細信息
ls -lh 列出文件的詳細信息
-rwxr-xr-x. 1 root root 127 Jul 20 18:57 hello.sh
drwxr-xr-x. 12 500 500 4.0K Jul 17 16:25 httpd-2.2.15
-rwxrw-rw-. 1 root root 6.3M May 13 09:08 httpd-2.2.15.tar.gz
drwxr-xr-x. 3 root root 79 Jul 21 19:27 test
1 2 3 4 5 6 7
字段1:文件的類型和權限
字段2:文件類型如果是文件,代表文件的結點數inode
文件類型如果是目錄,代表目錄中子目錄的個數(包括目錄 . 和 ..)
字段3:文件的所屬者
字段4:文件的所屬組
字段5:文件的大小
字段6:文件的修改時間
字段7:文件名
文件權限
對文件的類型和權限信息部分進行分割
drwxr-xr-t. 2 root root 6 Jul 21 20:48 tmp1 (設置了粘置位的目錄)
drwxr-xr-T. 2 root root 6 Jul 21 20:47 tmp2
- rwx r-x r-x + 1 root root 127 Jul 20 18:57 hello.sh
d rwx r-x r-x . 3 root root 79 Jul 21 19:27 test
1 2 3 4 5
字段1:文件類型 -普通文件 d目錄 l符號鏈接 b塊設備(硬盤)
字段2:文件所屬者的權限
字段3:文件所屬組的權限
字段4:其他用戶的權限 (字段234屬於文件基本acl)
字段5:文件擴展acl標識(.表示沒有設置擴展acl,+表示設置了擴展acl)
(擴展acl的優先級高於基本acl)
權限中各字符的含義:
r w x
對於文件 讀取 寫入 可執行
對於目錄 列出內容 增刪文件 進入
(如果用戶對於目錄沒有x權限,即使擁有rw權限也無法對其進行操作)
相關命令
chmod 改變文件或目錄的權限
chmod u-x g+w o=r-x file (-撤權 +賦權 =直接覆蓋權限)
撤銷file文件所屬者的執行權限,所屬組增加寫權限,其他用戶只有讀和執行權限
chmod a--- file
撤銷所有用戶和組對file文件的所有權限(root用戶仍可以對其進行任意操作)
chmod -R o= ./test
撤銷其他用戶對test目錄及其包含的所有文件的所有權限
chmod o+t /test 對目錄設置粘置位
原本其用於顯示他用戶x權限的位置會被替代成t(有x權限)/T(無x權限)
chnod -u+s /usr/bin/vim 為 vim文件添加suid權限
(suid只對可執行文件有效果,任何運行該文件的用戶都是以文件所屬者的身份運行)
8進制賦權法
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx
chmod 700 file 只有文件所屬者對file文件有操作權限
chmod 444 file 所有用戶對file文件只有讀r權限
chmod 1444 /tmp3 對目錄tmp3設置粘置位(1表示設置粘置位)
chmod 0444 /tmp3 撤銷目錄的粘置位
chown userA /tmp/1.txt 將文件1.txt的所屬者更改為userA
chgrp -R userB ./test/ 將目錄及其包含的所有內容的所屬組更改為userB
文件acl設置
getfacl file 查看文件的facl
setfacl 設置文件擴展訪問控制列表
setfacl -m u:userA:r-- ./1.txt
用戶userA對1.txt文件只有r權限
setfacl -m g:userB:rw- ./1.txt
組userB對1.txt文件只有rw權限
setfacl -x u:userA ./1.txt
撤銷userA用戶在1.txt文件上的擴展acl
setfacl -b 1.txt
撤銷對文件設置的所有擴展acl