Linux學習總結 unit05權限管理(文件管理)

#1.查看權限

##1.1.查看文件屬性(詳細信息)

ls -l

-rw-r--r-- 1 root root 0 Dec 30 21:43 hello

##1.2.查看目錄屬性(詳細信息)

ls -ld

drwxr-xr-x 2 root root 6 Dec 30 21:44 test

###1.2.1.含義

    第1個字符代表文件類型:

  d   表示目錄
  -    表示普通文件,
  l    表示鏈接文件(link file);
  b   表示設備文件,例如硬盤(可隨機存取設備);
  c    表示爲字符設備,例如鍵盤、鼠標(一次性讀取設備)

    第2~4個字符代表文件所有人的權限;
    第5~7個字符代表文件所屬組的權限;
    第8~12個字符代表其他人的權限。

###1.2.2.rwx

r(read):讀權限,用數字4表示
對於文件:cat
對於目錄:ls
w(write):寫權限,用數字2表示
對於文件:vim,gedit
對於目錄:touch/mkdir,rm/rmdir
x(exec):執行權限,用數字1表示
對於文件:普通文件不需要執行權限;
對於目錄:能否cd到該目錄

###1.2.4.

第二欄表示有多少文件名鏈接到此節點(i-node)
第三欄代表文件所有人,第四欄代表文件所屬組。
-rw-r--r-- 1 root root 代表文件所有人root對文件有讀寫的權限,
文件所屬組root組成員對文件有讀的權限

第五欄代表文件的容量大小,默認單位爲Bytes;
第六欄表示文件的創建日期或者是最近的修改日期;
第七欄表示文件的文件名;

#2.文件所有人和所屬組

chown命令:修改文件的所有人或所屬組
chown student 文件
chown student.student 文件
chown student 目錄 -R
chown student:student 目錄 -R
chown --reference=find.all file   //參考find.all修改file文件的所有人和所有組

chgrp命令:修改文件的所屬組
chgrp student 文件
chgrp student 目錄 -R
chgrp --reference=find.all file

#3.文件權限修改

##3.1.第一種方法:通過字符方式修改

chmod <u|g|o><+|-|=><r|w|x> 目標

eg:

chmod u+r,g-w,o=r /mnt/file
chmod u=rw,g=r,o-r /mnt/file

##3.2.第二種方法:通過數字方式修改

chmod 數字 目標
r:4 w:2 x:1
7:rwx 6:rw- 5:r-x 4:r--
3:-wx 2:-w- 1:--x 0:---

#4.系統默認權限

• 當你創建一個新的文件或目錄時,該文件或目錄有默認權限。
• umask的分數指的是“該默認值需要減掉的權限。
• 在默認權限的屬性上,目錄與文件是不一樣的。
• 文件的最大權限爲666,目錄的最大權限爲777。

##4.1.查看umask值:umask

##4.2.修改umask值:

umask 022         //臨時修改umask值

vim /etc/bashrc         //永久修改bash裏創建文件的umask值
vim /etc/profile         //永久修改每個用戶創建文件的umask值

注意:想要永久性的修改umask值,一定要重新讀取兩個配置文件後,才能生
效。

#5.特殊權限

##5.1.o+t權限:sticky,粘制位

效果:
只針對於目錄,當目錄上有o+t的權限時,所有用戶在該目錄下均可
創建文件,但只有文件所有人和root用戶可以刪除該目錄下的文件。
設定方式:
chmod o+t 目錄
chmod 1777 目錄
在系統中的應用:
[root@desktop126 ~]# ll -ld /tmp/
drwxrwxrwt. 28 root root 4096 Dec 31 01:39 /tmp/

##5.2.u+s權限:suid,冒險位

效果:
只針對於二進制可執行文件,該命令發起的程序是以該命令所有人的
身份去執行。
設定方式:
chmod u+s 二進制可執行文件
chmod 4755 二進制可執行文件
在系統中的應用:
[root@desktop126 ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 29 2014 /usr/bin/passwd
[root@desktop126 ~]# ll /etc/shadow
---------- 1 root root 1493 Dec 30 21:37 /etc/shadow

##5.3.g+s權限:強制位

效果:
針對二進制可執行文件:該命令發起的程序是以該命令所有組的
身份去執行;
針對目錄:目錄新建文件的所屬組與該目錄的所有組保持一致;
設定方式:
chmod g+s 文件|目錄
chmod 2755 文件|目錄

#6.文件訪問控制列表ACL

##6.1.setfacl :設置文件或目錄的ACL權限

###6.1.1.格式:

setfacl -m <u|g|m>:<username|groupname>:rwx 文件名           //添加或者修改acl權限
setfacl -m d:<u|g|m>:<username|groupname>:rwx 目錄名           //添加或者修改目錄下新建文件默認acl權限

       傳統的權限僅有三種身份(owner,group, others) 搭配三種權限
(r,w,x),並沒有辦法單純的針對某一個使用者或某一個羣組來設置特定
的權限需求,此時就得要使用ACL(文件訪問控制列表,Access Control
List)這個機制。
        ACL因此目前ACL幾乎已經默認加入在所有常見的Linux文件
系統的掛載參數中(ext2/ext3/ext4/xfs等等),但rhel6.0版本默認不
支持acl的功能。

###6.1.2.如何查看文件是否有acl權限?

ll  /etc/passwd
-rw-r--r--. 1 root root 2173 Jan 6 21:08 /etc/passwd            //註釋:第11位爲.時代表沒有acl權限;爲+時代表有acl權限。

###6.1.3.setfacl :設置文件或目錄的ACL權限

setfacl -m <u|g|m>:<username|groupname>:rwx 文件名         //添加或者修改acl權限
setfacl -m d:<u|g|m>:<username|groupname>:rwx 目錄名        //添加或者修改目錄下新建文件默認acl權限
setfacl -x <u|g>:<username|groupname> 文件名        //刪除某一個acl權限
setfacl -x d:<u|g>:<username|groupname> 目錄名          //刪除某目錄下新建文件默認的一個acl權限
setfacl -b 文件名            //刪除該文件所有的acl權限
setfacl -b 目錄名         //刪除某目錄下新建文件默認的所有的acl權限

###6.1.4.例子:

setfacl -m u:user2:rw hello          //指定user2用戶對hello文件有讀寫權限
setfacl -m g:user2:rw hello          //指定user2用戶組對hello文件有讀寫權限
setfacl -m m:r hello          //指定該文件中最大生效的權限,但不穩定,會隨着其他的設定而修改
setfacl -x u:user2 hello        //刪除user2用戶對hello文件的特殊權限
setfacl -x g:user2 hello          //刪除user2用戶組對hello文件的特殊權限
setfacl -b hello          //刪除hello文件的acl權限

##6.2.getfacl:查看文件的ACL權限

[root@foundation0 ~]# getfacl hello
# file: hello //文件名
# owner: root //文件所有人
# group: root //文件所屬組
user::rw- //文件所有人對該文件的權限
user:user1:rw- //特定用戶user1對該文件的權限
user:user2:rw-
group::r-- //文件所屬組成員對該文件的權限
group:user2:rw- //特定用戶組user2對該文件的權限
mask::rw- //默認給最大的權限
other::r-- //其他人對該文件的權限

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