使用者和組
使用者資訊檔案
/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