(轉) Linux權限管理(基本權限、默認權限)
一、文件基本權限
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
- # 擁有一個test目錄
- changwen@ubuntu:~$ ll -d test
- drwxrwxr-x 3 changwen changwen 4096 Jul 24 05:41 test/
- # 添加一個testuser用戶
- changwen@ubuntu:~$ sudo useradd testuser
- # 設置該用戶的密碼
- changwen@ubuntu:~$ sudo passwd testuser
- Enter new UNIX password:
- Retype new UNIX password:
- passwd: password updated successfully
- # 在用戶組裏添加兩個用戶
- changwen@ubuntu:~$ sudo useradd -g usergroup user1
- changwen@ubuntu:~$ sudo useradd -g usergroup user2
- # 設置test目錄的所有者:所屬組
- changwen@ubuntu:~$ sudo chown testuser:usergroup test
- changwen@ubuntu:~$ ll -d test
- drwxrwxr-x 3 testuser usergroup 4096 Jul 24 05:41 test/
- # 按實例要求設置權限
- changwen@ubuntu:~$ sudo chmod 750 test
- changwen@ubuntu:~$ ll -d test
- 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
- changwen@ubuntu:~$ mkdir av
- # 增加所有者和用戶組,並設置av目錄的權限
- changwen@ubuntu:~$ sudo useradd tony
- changwen@ubuntu:~$ sudo groupadd stu
- changwen@ubuntu:~$ sudo chown tony:stu av
- # 設置av權限
- changwen@ubuntu:~$ sudo chmod 770 av
- # 添加老王用戶並設置密碼
- changwen@ubuntu:~$ sudo useradd lw
- changwen@ubuntu:~$ sudo passwd lw
- Enter new UNIX password:
- Retype new UNIX password:
- passwd: password updated successfully
- # 給用戶lw賦予r-x權限,使用 "u:用戶名:權限" 格式
- changwen@ubuntu:~$ sudo setfacl -m u:lw:rx /home/changwen/av
- # 為用戶組tgroup2分配ACL權限。使用 "g:組名:權限" 格式
- 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權限管理(基本權限、默認權限)