Linux系統中(CentOS 7)的使用者和許可權管理

黎夜發表於2020-07-22

使用者和組

使用者資訊檔案

/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

相關文章