基本許可權 UGO
1標題檔案許可權管理: UGO 設定基本許可權(r、w、x)
許可權物件 | 許可權型別 |
---|---|
屬主: u | 讀:r 4 |
屬組: g | 寫:W 2 |
其他人: o | 執行: x 1 |
1.1設定許可權
1.1.1更改檔案的屬主屬組
chown
[[email protected] ~]#
touch file
[[email protected] ~]#ll -d file
-rw-r--r--. 1 root root 261 Oct 14 14:06 file
在root使用者下建立一個檔案他的屬主和屬組都是root
[[email protected] ~]#chown alice.hr file
//改屬主屬組
-rw-r--r--. 1 alice hr 261 Oct 14 14:06 file
//注意修改的主和組要存在
[[email protected] ~]#chown root file
//只改屬主
[[email protected] ~]#chown .root file
//只改屬組注意組前有個點
將file檔案的屬主屬組又分別改回root
檢視主組:ll -d 檔名
chgrp 改變檔案的屬組
chgrp 組名 檔名
1.2 更改許可權 chmod
1.2.1 符號更改
符號 | 意義 |
---|---|
+ | 增加許可權 |
- | 去除許可權 |
= | 賦予許可權(許可權等於賦予值) |
a | 所有者(主組其他) |
[[email protected] ~]# chmod u+x file //屬主增加執行
[[email protected]
[[email protected] ~]# chmod u=x file //屬主只有執行
[[email protected] ~]# chmod a+x file //屬主/組其他都有執行
[[email protected] ~]# chmod a=- file1 //所有人沒有許可權
1.2.2 數字更改
[[email protected] ~]# chmod 644 file
[[email protected] ~]# ll file
-rw-r–r-- 1 alice it 17 10-25 16:45 file1
例題:建立文/home/file root 使用者和 hr 組的員工可以讀、寫、執行;
先創造條件
[[email protected] ~]# touch /home/file
[[email protected] ~]# groupadd hr
[[email protected] ~]# useradd hr1 -G hr //建立使用者hr1指定組hr
[[email protected] ~]# useradd hr2 -G hr1 //建立使用者同時附加創造了組(使用者組同名)
[[email protected] ~]# chgrp hr /home/file
[[email protected] ~]# chmod 770 /home/file //去除其他使用者對檔案的所有許可權
[[email protected] ~]# ll /home/file
-rwxrwx—. 1 root root 0 Oct 16 21:47 /home/file
[[email protected] ~]# cat >>/home/file << eof //給檔案裡寫入內容方便檢視
123
456
eof
[[email protected] ~]# cat /home/file
123
456
[[email protected] ~]# su - hr1
[[email protected] ~]$ cat /home/file
123
456
[[email protected] ~]$ cat /home/file
cat: /home/file: Permission denied //hr2使用者沒有許可權檢視檔案
解析:本題主要考察檔案的許可權設定對檔案檢視的影響;首先根據題意知道檔案的屬主與屬組對檔案具有最高許可權其他沒有許可權;所以檔案的檢視只有屬主與屬組可以;這裡要注意檔案的增刪改查與檔案上級目錄許可權有關。
[[email protected] home]# ll -d /home/ //home的許可權是757屬主其他對其有最高許可權屬組對其有讀和執行權;
drwxr-xrwx. 19 root root 248 Oct 16 22:05 /home/
[[email protected] home]# chmod 717 /home/ //去除組的可讀許可權
[[email protected] home]# ll -d /home/
drwx–xrwx. 19 root root 248 Oct 16 22:05 /home/
[[email protected] ~]$ cat /home/file
123
456
去除了組的可讀許可權為什麼hr1還可以檢視file呢?試試去除/home的其他人許可權看看hr1還能否讀file
[[email protected] ~]# chmod 710 /home/
[[email protected] ~]# ll -d /home/
drwx–x—. 19 root root 248 Oct 16 22:05 /home/
[[email protected] ~]$ cat /home/file
cat: /home/file: Permission denied
這裡要看清每一級目錄的屬主屬組,/home的屬主屬組都是root,所以更改的組的可讀許可權只是對其root組下的成員具有作用,而hr1不是其組下的成員是其他人;
這裡你還可以將hr1的屬組改為root增加組的可讀許可權再看看hr1是否可讀/home/file;
//和上面情況一樣去除其他人所有許可權屬組下的成員具有組的許可權;
1.3 r, w, x 許可權對檔案和目錄的意義
字母 | 檔案 | 目錄 |
---|---|---|
r | 可獲取檔案的資料 | 可使用 ls 命令獲取其下的所有檔案列表 |
w | 可修改檔案的資料 | 可修改此目錄下的檔案列表;即建立或刪除檔案 |
x | 可將此檔案執行為程序 | 可 cd 至此目錄中,且可使用 ls -l 來獲取所有檔案的詳細屬性資訊; |
1.3.1 檔案的r,w,x對檔案的影響
(1) 檔案的 r 對於檔案的影響
[[email protected] ~]$ cat >> file << eof
123
456
789
eof
[[email protected] ~]$ ll -d file
-rw-rw-r–. 1 hr1 hr1 12 Oct 18 11:29 file
[[email protected] ~]$ cat file
123
456
789
[[email protected] ~]$ chmod 333 file
[[email protected] ~]$ ll -d file
–wx-wx-wx. 1 hr1 hr1 12 Oct 18 11:29 file
[[email protected] ~]$ cat file
cat: file: Permission denied
(2)檔案的 w 對檔案的影響
[[email protected] ~]$ chmod 555 file
[[email protected] ~]$ ll -d file
-r-xr-xr-x. 1 hr1 hr1 12 Oct 18 11:29 file
[[email protected] ~]$ rm -rf file
[[email protected] ~]$ ls
[[email protected] ~]$
1.3.2 目錄的r ,w,x
(1)目錄的 r 許可權影響
[[email protected] ~]$ mkdir dir
[[email protected] ~]$ ls
dir file
[[email protected] ~]$ touch /dir/file
[[email protected] ~]$ ll -d dir/
drwxrwxr-x. 2 hr1 hr1 6 Oct 18 12:13 dir/
[[email protected] ~]$ chmod a-r dir/
[[email protected] ~]$ ll -d dir/
d-wx-wx–x. 2 hr1 hr1 6 Oct 18 12:13 dir/
[[email protected] ~]$ cd dir/
[[email protected] dir]$ ls
ls: cannot open directory .: Permission denied
(2)上級目錄沒有w許可權對下級檔案的影響
[[email protected] ~]# mkdir /dir
[[email protected] ~]# touch /dir/file
[[email protected] ~]# chmod 777 /dir/file
[[email protected] ~]# ll -d /dir
drwxr-xr-x. 2 root root 18 Oct 18 11:18 /dir
[[email protected] ~]# ll -d /dir/file
-rwxrwxrwx. 1 root root 0 Oct 18 11:18 /dir/file
[[email protected] ~]# cat >> /dir/file <<eof
123
eof
[[email protected] ~]$ cat /dir/file
123
[[email protected] ~]$ rm -rf /dir/file
rm: cannot remove ‘/dir/file’: Permission denied
1.4 基本許可權 ACL
setfacl 命令可以針對單一使用者或使用者組、單一檔案或目錄來進行讀/寫/執行許可權的控制
[[email protected] ~]# touch /home/file
[[email protected] ~]# ll -d /home/file
-rw-r–r--. 1 root root 0 Oct 18 17:19 /home/file
[[email protected] ~]# getfacl /home/file
getfacl: Removing leading ‘/’ from absolute path names
#file: home/file
#owner: root
#group: root
user::rw-
group::r–
other::r–
[[email protected] ~]# cat >> /home/file <<eof
hellowrod
eof
[[email protected] ~]# chmod 770 /home/file
[[email protected] ~]# ll -d /home/file
-rwxrwx—. 1 root root 10 Oct 18 17:22 /home/file
[[email protected] ~]$ cat /home/file
cat: /home/file: Permission denied
[[email protected] ~]# setfacl -m u:hr1:r /home/file
[[email protected] ~]# getfacl /home/file
getfacl: Removing leading ‘/’ from absolute path names
#file: home/file
#owner: root
#group: root
user::rwx
user:hr1:r–
group::rwx
mask::rwx
other::—
[[email protected] ~]$ cat /home/file
hellowrod
建立檔案/home/file並在裡面寫入內容,修改檔案許可權為770其他人對其沒有任何許可權在運用setfacl對檔案加入單個使用者hr1的可讀許可權,這時使用者hr1對檔案具有了單一可讀權;
[[email protected] ~]# setfacl -m g:hr:r /home/file //增加hr組的acl許可權
[[email protected] ~]# setfacl -x g:hr /home/file //刪除組 hr的 acl 許可權
[[email protected] ~]# setfacl -b /home/file //刪除所有 acl 許可權
要求: 希望 alice 能夠對/home 以及以後在/home 下新建的檔案有讀、寫、執行許可權
思路:
步驟一: 賦予 alice 對/home 讀、寫、執行許可權
[[email protected] ~]# setfacl -m u:alice:rwx /home
步驟二: 賦予 alice 對以後在/home 下新建的檔案有讀、寫、執行
許可權 (使 alice 的許可權繼承)
[[email protected] ~]# setfacl -m d:u:alice:rwx /home