1. 程式人生 > >(轉) Linux權限管理(基本權限、默認權限)

(轉) Linux權限管理(基本權限、默認權限)

技術分享 表示 去除 name 進入 get mod rem 老王

一、文件基本權限

1-1.基本權限的修改

-rw-r--r--
- 第一個"-"表示文件類型(- 文件,d 目錄,l 軟鏈接文件)
- rw- r-- r--
u所有者 g所屬組 o其它人
其中r讀,w寫,x執行

(1).chmod [選項] 模式 文件名
- 選項
. -R 遞歸
- 模式
[ugoa] [+-=] [rwx]
[mode=421]

#為所有者添加rw權限, 所屬組去除w權限
chmod u+rw, g-w test.txt

權限的數字表示(用二進制轉的數)
r---4; w----2; x ----1;
如rwxr-xr-x,則對應7 5 5

1-2.權限對文件的作用

r: 讀取文件內容(cat more head tail)
w: 編輯、新增、修改文件內容(vi echo)
-但是不包含刪除文件,因為文件名和文件數據存放位置不同
x: 可進入目錄
註意:
對文件來講:最高權限是 x
對目錄來講:最高權限是 w

head:默認是查看文件的前10行
tail:默認是查看文件的最後10行
-n 指定查看多少行
more:顯示滿一頁時暫停,按空格健繼續顯示下頁,或按Q停止顯示。

(2).chown: 修改文件的所有者
格式:chown 用戶名 文件名

(3).chgrp:修改文件的所屬組
格式:chgrp 組名 文件名

實例要求
- 擁有一個test目錄
- 讓testuser擁有所有的權限
- 讓用戶組有查看的權限
- 其他所有人不許查看這個目錄

[python] view plain copy
  1. # 擁有一個test目錄
  2. changwen@ubuntu:~$ ll -d test
  3. drwxrwxr-x 3 changwen changwen 4096 Jul 24 05:41 test/
  4. # 添加一個testuser用戶
  5. changwen@ubuntu:~$ sudo useradd testuser
  6. # 設置該用戶的密碼
  7. changwen@ubuntu:~$ sudo passwd testuser
  8. Enter new UNIX password:
  9. Retype new UNIX password:
  10. passwd: password updated successfully
  11. # 在用戶組裏添加兩個用戶
  12. changwen@ubuntu:~$ sudo useradd -g usergroup user1
  13. changwen@ubuntu:~$ sudo useradd -g usergroup user2
  14. # 設置test目錄的所有者:所屬組
  15. changwen@ubuntu:~$ sudo chown testuser:usergroup test
  16. changwen@ubuntu:~$ ll -d test
  17. drwxrwxr-x 3 testuser usergroup 4096 Jul 24 05:41 test/
  18. # 按實例要求設置權限
  19. changwen@ubuntu:~$ sudo chmod 750 test
  20. changwen@ubuntu:~$ ll -d test
  21. drwxr-x--- 3 testuser usergroup 4096 Jul 24 05:41 test/

二、文件默認權限

(4).unmak: 查看默認權限
如0022
- 第一位0: 文件特殊權限
- 022 : 文件默認權限
臨時修改: umask 0002
永久修改: vi /etc/profile

文件默認權限
1).文件默認不能建立執行文件,必須手工賦予執行權限
2).所以文件默認權限最大為666
3).默認權限需要換算成字母再相減
4).建立文件之後的默認權限,為666減去umask值
例如:
- 文件默認最大權限是666, umask值為022
- -rw-rw-rw- 減去 -----w--w- 等於 -rw-r--r--

目錄的默認權限
1).目錄默認權限最大為777
2).默認權限需要換算成字母再相減
3).建立文件之後的默認權限,為777減去umask值
例如:
- 目錄默認權限最大為777, umask值為022
- -rwxrwxrwx 減去 -----w--w- 等於 -rwxr-xr-x

三、ACL簡介

ACL就是用來解決用戶身份不足的問題

# 查看分區ACL權限是否開啟
(5).dupe2fs 命令是查詢指定分區詳細文件系統信息的命令
dupe2fs -h /dev/sda51
-h 僅顯示超級塊中信息,而不是磁盤塊的詳細信息

# 臨時開啟分區ACL權限
mount -o remount, acl /
- 重新掛載根分區,並掛載加入acl權限

# 永久開啟分區ACL權限(不建議修改)
vi /etc/fstab
#加入acl
然後修改UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defalults acl 1 1

# 重新掛載文件系統或重啟系統,使修改生效
mount -o remount /

3-1查看與設定ACL權限

# 查看acl權限
getfacl 文件名

# 設定acl權限
setfacl 選項 文件名
-m 設定ACL權限
-x 刪除指定的ACL權限
-b 刪除所有的ACL權限
-d 設定默認ACL權限
-k 刪除默認ACL權限
-R 遞歸設定ACL權限

技術分享圖片

[python] view plain copy
  1. changwen@ubuntu:~$ mkdir av
  2. # 增加所有者和用戶組,並設置av目錄的權限
  3. changwen@ubuntu:~$ sudo useradd tony
  4. changwen@ubuntu:~$ sudo groupadd stu
  5. changwen@ubuntu:~$ sudo chown tony:stu av
  6. # 設置av權限
  7. changwen@ubuntu:~$ sudo chmod 770 av
  8. # 添加老王用戶並設置密碼
  9. changwen@ubuntu:~$ sudo useradd lw
  10. changwen@ubuntu:~$ sudo passwd lw
  11. Enter new UNIX password:
  12. Retype new UNIX password:
  13. passwd: password updated successfully
  14. # 給用戶lw賦予r-x權限,使用 "u:用戶名:權限" 格式
  15. changwen@ubuntu:~$ sudo setfacl -m u:lw:rx /home/changwen/av
  16. # 為用戶組tgroup2分配ACL權限。使用 "g:組名:權限" 格式
  17. setfacl -m g:tgroupt2:rwx /home/changwen/av

技術分享圖片
可以看到用戶lw不屬於用戶組,也不屬於其它組,這就是ACL權限

3-2、最大有效權限與刪除

上面getfacl av可以看到有一個mask
mask:是用來指定最大有效權限的。如果我給用戶賦予ACL權限,是需要和mask的權限”相與”才能得到用戶的真正權限。

# 修改最大有效權限
setfacl -m m:rx 文件名
- 設定mask權限為r-x。使用"m:權限"格式

刪除ACL權限
# 刪除指定用戶的ACL權限
setfacl -x u:用戶名 文件名

# 刪除指用戶組的ACL權限
setfacl -x g:組名 文件名

# 刪除文件的所有的ACL權限
setfacl -b 文件名

3-3、默認ACL權限與遞歸ACL權限

1).遞歸是父目錄在設定ACL權限時,所有的子文件和子目錄也會擁有相同的ACL權限。遞歸權限僅能賦予目錄,不能賦予文件。
setfacl -m u:用戶名:權限 -R 文件名
-R 如果不加R,那麽該目錄下創建的文件沒有ACL權限
但加R,會有權限溢出
所以建議少用ACL權限

2).默認ACL權限的作用是如果給們目錄設定了默認ACL權限,那麽父目錄中所有新建的子文件都會繼承父目錄的ACL權限。
setfacl -m d:u:用戶名:權限 文件名

(轉) Linux權限管理(基本權限、默認權限)