小鳥chacha初學linux 文件目錄的權限及歸屬

在linux的多用戶環境中,爲保證不同用戶的文件/目錄不被管理員以外的用戶刪除,從而影響工作效率,因而
不同用戶對不同文件有着不同權限。
文件所有者owner:
文件擁有者所屬組:團隊協作的項目,對某些文件,組成員必然擁有特殊的權限
其他人:

下面是管理員家目錄下的文件
[root@localhost cc]# ls -Al
總計 48
drwxr-xr-x 3 root root 4096 01-21 13:06 fetion_spring
-rw-r--r-- 1 root root   59 01-21 12:56 fetion_spring.exe
drwxr-xr-x 3 root root 4096 01-21 12:30 fetion_summer
-rw-r--r-- 1 root root   62 01-21 12:47 fetion_summer.exe
-rw-r--r-- 1 root root  259 01-21 12:48 f_spring-summer.exe.patch
-rw-r--r-- 1 root root 1498 01-21 12:37 f_spring-summer.patch
權限           屬主 屬組 文件大小 修改時間  文件名

大家仔細觀察fetion_spring的權限是drwxr-xr-x
文件類型   文件屬主權限              文件屬組權限                           其他人權限
 d             r      w      x                r        -         x                       r          -        x
目錄         讀    寫     執行            讀   不可寫   執行                  讀     不可寫  執行

[root@localhost cc]# ll test                  //查看test權限
-rw-r--r-- 1 root root 0 01-22 10:48 test
[root@localhost cc]# chmod u+x test//給屬主user增加執行權限
[root@localhost cc]# ll test
-rwxr--r-- 1 root root 0 01-22 10:48 test//屬主有讀寫執行權限
[root@localhost cc]# ll test
-rwxr--r-- 1 root root 0 01-22 10:48 test
[root@localhost cc]# chmod g+w test//給屬組增加寫的權限
[root@localhost cc]# ll test
-rwxrw-r-- 1 root root 0 01-22 10:48 test
[root@localhost cc]# ll test
-rwxrw-r-- 1 root root 0 01-22 10:48 test
[root@localhost cc]# chmod o+w test//給其他人增加寫的權限
[root@localhost cc]# ll test
-rwxrw-rw- 1 root root 0 01-22 10:48 test
[root@localhost cc]# chmod a-w test//給所有的all 屬主 屬組 其他人 去除寫的權限
[root@localhost cc]# ll test
-r-xr--r-- 1 root root 0 01-22 10:48 test
可以用等號對相應的權限進行賦值
[root@localhost cc]# ll test
-r-xr--r-- 1 root root 0 01-22 10:48 test
[root@localhost cc]# chmod u=rw,g=r,o=r test
[root@localhost cc]# ll test
-rw-r--r-- 1 root root 0 01-22 10:48 test
我們可以用數字表示權限 有權限相應位表示爲1 沒有的話相應位表示爲0
如果一個文件的屬主的權限是rwx則表示爲111=7,類似的rw-表示爲110=6
[root@localhost cc]# chmod 777 test//改變權限
[root@localhost cc]# ll test
-rwxrwxrwx 1 root root 0 01-22 10:48 test

改變屬主是其他人
[root@localhost cc]# ll test
-rwxrwxrwx 1 root root 0 01-22 10:48 test
[root@localhost cc]# chown lover test
[root@localhost cc]# ll test
-rwxrwxrwx 1 lover root 0 01-22 10:48 test
如果是改變目錄需加上參數-R
改變屬主是其他組
[root@localhost cc]# chgrp wife test
[root@localhost cc]# ll test
-rwxrwxrwx 1 lover wife 0 01-22 10:48 test
可以使用chown同時改文件的用戶和屬組
[root@localhost cc]# chown root:root test用戶和組中間使用冒號隔開
[root@localhost cc]# ll test
-rwxrwxrwx 1 root root 0 01-22 10:48 test
[root@localhost cc]# chown lover.girls test用戶和組中間使用"."隔開
[root@localhost cc]# ll test
-rwxrwxrwx 1 lover girls 0 01-22 10:48 test
也可以使用chown改變文件的屬組
[root@localhost cc]# chown .root test
[root@localhost cc]# ll test
-rwxrwxrwx 1 lover root 0 01-22 10:48 test
[root@localhost cc]# chown .girls test
[root@localhost cc]# ll test
-rwxrwxrwx 1 lover girls 0 01-22 10:48 test


默認權限
當我們新建一個文件或者目錄時 會賦於其一個默認權限
[root@localhost cc]# mkdir abc
[root@localhost cc]# ll -d abc
drwxr-xr-x 2 root root 4096 01-22 11:16 abc
易知 當前權限是755
[root@localhost cc]# umask
0022
易知 文件默認權限是777-022

有些文件有特殊的屬性
例如:a 表示增加屬性後,表示只能增加數據,不能刪除數據,只有root才能設置這個屬性
          i  增加這個屬性後,表示不能對文件或目錄刪除,修改、重命名。相當於寫保護。只有root 才能設置這個屬性

[root@localhost cc]# touch test
[root@localhost cc]# chattr +a test 增加a屬性
[root@localhost cc]# lsattr test        查看a屬性
-----a------- test
[root@localhost cc]# rm -f test
rm: 無法刪除 “test”: 不允許的操作      無法刪除

[root@localhost cc]# chattr -a test
[root@localhost cc]# lsattr test
------------- test
[root@localhost cc]# rm -f test //可以刪除文件
[root@localhost cc]# ls
abc                fetion_summer              f_spring-summer.patch
fetion_spring      fetion_summer.exe
fetion_spring.exe  f_spring-summer.exe.patch
可以增加內容到文件

[root@localhost cc]# which passwd
/usr/bin/passwd
[root@localhost cc]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 22960 2006-07-17 /usr/bin/passwd
大家看到屬性屬主的權限中的x變爲s
說明文件被setuid了,意思是,其他用戶使用這條命令時 被賦予use[root@localhost cc]# setfacl -m u:lover:rw,g:wife:rwx a
[root@localhost cc]# getfacl a
# file: a
# owner: root
# group: root
user::rw-
user:lover:rw-
group::r--
group:wife:rwx
mask::rwx
other::r--
r的權限
setuid存在如下要求:
該文件是二進制可執行文件
user對文件有x權限
同理對於setgid文件。
用戶在執行該命令時,獲得用戶組的支持
[root@localhost cc]# touch love
[root@localhost cc]# chmod +s love
[root@localhost cc]# ll love
-rwSr-Sr-- 1 root root 0 01-22 11:52 love
[root@localhost cc]# chmod -s love
[root@localhost cc]# ll love
-rw-r--r-- 1 root root 0 01-22 11:52 love
[root@localhost cc]# chmod u+s love
[root@localhost cc]# ll love
-rwSr--r-- 1 root root 0 01-22 11:52 love


[root@localhost cc]# ll -d /tmp
drwxrwxrwt 12 root root 4096 01-22 08:03 /tmp
其他用戶的執行權限的x變成t sbit
意思是除了root和user本身或本組  其他人不得刪除

Suid sgid sbit   組成111
如果只有suid權限則爲100=4
如果有suid sgid 則爲110=6

[root@localhost cc]# ll /bin/mkdir
-rwxr-xr-x 1 root root 29852 2009-07-13 /bin/mkdir
[root@localhost cc]# chmod 7755 /bin/mkdir
[root@localhost cc]# ll /bin/mkdir
-rwsr-sr-t 1 root root 29852 2009-07-13 /bin/mkdir
[root@localhost cc]# chmod 755 /bin/mkdir
[root@localhost cc]# ll /bin/mkdir
-rwxr-xr-x 1 root root 29852 2009-07-13 /bin/mkdir


file access control lists
詳細規定了不同文件不同用戶的權限
setfacl
-m  新增規則
-x     刪除規則
[root@localhost cc]# setfacl -m u:lover:rw,g:wife:rwx a用逗號隔開
[root@localhost cc]# getfacl a
# file: a
# owner: root
# group: root
user::rw-//對於user的權限
user:lover:rw-
group::r--//對於屬組的權限
group:wife:rwx
mask::rwx
other::r--

[root@localhost cc]# setfacl -m m:r a
[root@localhost cc]# getfacl a
# file: a
# owner: root
# group: root
user::rw-
user:lover:rw-                  #effective:r--
group::r--
group:wife:rwx                  #effective:r--
mask::r--
other::r--

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章