linux 文件權限以及用戶策略 講解

 linux 文件權限以及用戶策略 講解

   由于linux系統是一個多用戶使用的系統,對于各個用戶指定的文件或目錄必須存在一套管理系統,以防止多用戶對相同文件的混淆使用。于是催生出了linux系統文件的用戶權限設置。其存在的意義就是每一個文件或目錄對于不同的用戶區分讀取,寫入,執行三種權限,即:r,w,x。下面將詳細介紹如何定義文件或目錄的權限以及相關命令

linux 文件權限以及用戶策略 講解blob.png

文件的權限主要針對三類對象進行定義:

  owner: 屬主, u group: 屬組, g other: 其他, o 

每個文件針對每類訪問者都定義了三種權限: r: Readable w: Writable x: eXcutable

下面列出了,rwx對應的數字關系

r=4  w=2  x=1

文件權限

文件:

r: 可使用文件查看類工具獲取其內容

w: 可修改其內容

x: 可以把此文件提請內核啟動為一個進程

目錄:

r: 可以使用ls查看此目錄中文件列表

w: 可在此目錄中創建文件,也可刪除此目錄中的文件

x: 可以使用ls -l查看此目錄中文件列表,可以cd進入此 目錄

X:只給目錄x權限,不給文件x權限

umask值得表示含義

umask表示文件權限的反向編碼。新文件的創建默認權限是指定的,其指定權限與umask值相關。其權限八進制的計算方式為:

  對于目錄:777-umask值=默認權限八進制

  對于文件:666-umask值=默認權限八進制(注意:為了安全,文件創建默認不應該擁有x權限,所以得出值如果為奇數,需要每個奇數+1)列;

umask 043

創建文件之后的權限是 666-043=624(623+1)

[root@centous1 ~]# umask
0043
[root@centous1 ~]# touch dir1
[root@centous1 ~]# ll
總用量 15096
-rw-------.  1 root root     1288 5月   3 03:16 anaconda-ks.cfg
-rw--w-r--   1 root root        0 8月   4 07:41 dir1
-rw-r--r--.  1 root root    33079 5月   3 03:16 install.log
-rw-r--r--.  1 root root     6996 5月   3 03:13 install.log.syslog
-rw-r--r--   1 root root      191 8月   2 12:12 pass.txt
-rw-r--r--   1 root root      432 8月   2 12:07 users.txt

chmod更改文件或者文件夾權限

對于文件來說有三種登錄用戶:文件所有者,使用u表示,文件所屬組,用g表示,還有其他用戶與這個文件無關,用o表示。

用法一            chmod u=rw,g=r,o= /testdir          意思是更改/testdir是屬主權限是rw,屬組權限是r,其他人的權限無。這種用法直接指定,原有的權限不會有影響。

用法二   chmod u+rw,g+r /testdir    意思是在原有的權限基礎上,屬組的權限增加rw,屬組的權限增加r。

用法三   chmod  755 /testdir    意思是給/testdir 賦值為 drwxr-xr-x  也叫數字賦值法。

改變所有者(chown)和用戶組(chgrp)命令

修改文件的屬主:chown

chown [OPTION]… [OWNER][:[GROUP]] FILE…        -R遞歸

[root@centous1 ~]# touch dir1
[root@centous1 ~]# ll dir1
-rw-r--r-- 1 root root 0 8月   4 08:39 dir1
[root@centous1 ~]# chown text dir1
[root@centous1 ~]# ll dir1
-rw-r--r-- 1 text root 0 8月   4 08:39 dir1

修改文件的屬組:chgrp

chgrp [OPTION]… GROUP FILE… chgrp [OPTION]… –reference=RFILE FILE…

-R 遞歸

[root@centous1 ~]# groups text
text : text
[root@centous1 ~]# chgrp text dir1
[root@centous1 ~]# ll dir1
-rw-r--r-- 1 text text 0 8月   4 08:39 dir1

SUID,SGID,sticky的意義為分別對文件屬主,屬組,其他用戶所設置的特殊權限。

SUID只對二進制可執行程序有效,設定命令為:

chmod u+s file

其中file文件的執行權限為-rwxr-x—-. 屬主為root,命令執行后會變為-rwsr-x—.這時候非常的微信,任何非主用戶都可以對這個文件有執行的權限,取消這個權限的命令為

chmod u-s file

列如;我們通常切換到普通用戶之后也可以改密碼,是因為我們可以根據/user/bin/passwd 的權限,來調用/etc/shadow.那么/user/bin/passwd 是什么權限呢

linux 文件權限以及用戶策略 講解blob.png

那么為什么要根據passwd文件來調用呢,因為/etc/shadow的權限太嚴格了

linux 文件權限以及用戶策略 講解blob.png

只用suid來賦權限,使執行者可以暫時繼承root的身份,來執行passwd文件。

注意,即使是說繼承root的身份,但是執行文件的權限other也要有執行的權限,否則也是執行不了的

執行程序的規則;

(1) 任何一個可執行程序文件能不能啟動為進程:取決發起者 對程序文件是否擁有執行權限

(2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為 發起者所屬的組

(3) 進程訪問文件時的權限,取決于進程的發起者 (a) 進程的發起者,同文件的屬主:則應用文件屬主權限 (b) 進程的發起者,屬于文件屬組;則應用文件屬組權限 (c) 應用文件“其它”權限

 SGID常常作用于目錄上,設定命令為如下:

  chmod g+s dir

  如果dir目錄原權限為:drwxr-xrw-,屬主為root,屬組為root。執行命令后權限變為:drwxr-srw-

  如果切換其他用戶mcgee(擁有w權限)在dir內創建文件,如果dir沒加SGID,默認新建文件屬主,屬組為用戶mcgee的屬主和屬組。但是在加SUID的dir目錄內,創建的新文件屬主為mcgee,但是屬組一定是dir目錄的屬組root。

 取消dir的SGID權限命令為:

 chmod g-s dir

注意:dir的原有權限other是有w權限的

sticky

  sticky權限的作用是保護文件被非屬主的其他用戶刪除,設定命令為:

  chmod 0+t file2

   如果file2權限為-rwxr-xrwx,執行后會變為-rwxr-xrwt。此時對于文件file2,只有file2屬主與root可以對file2目錄有執行權限。

  取消file2的sticky權限

 chmod -o-t file2

一個容易出錯的列子,,

系統創建兩個用戶user1 user2

我們登錄user2,然后在其家目錄下創建個123文件。此時的123文件屬組屬主都是user2

linux 文件權限以及用戶策略 講解blob.png

然后我們給user2的家目錄權限為777,登錄user1,進入到user2的家目錄并且vim打開123,寫入點東西強行保存,此時再看123文件的屬主屬組。

linux 文件權限以及用戶策略 講解blob.png

linux 文件權限以及用戶策略 講解blob.png

在這里為什么能夠把文件123的屬主和屬組改變呢,雖然123文件的權限是其他用戶只讀,不能修改。但是,因為目錄的關系權限是777,可以刪除123這個文件,vim把他強制保存,其實就是把他刪除了重建了的,所以,123文件的屬主屬組改變了,

注意,一定要記住,目錄中other不要給w權限,因為他可以讓其他用戶刪除,那樣的話,權限就沒意義了。

ACL的意義與使用命令

  ACL:access control list.訪問控制列表。存在的意義為對特定的其他用戶設置權限。其相關命令有setfacl,getfacl兩種。

  setfacl:對特定文件或目錄設置acl,用法如下:

  ~]# setfacl -m u:wang:rwx file3

  表示文件file3對用戶wang設置了rwx的權限

  ~]# setfacl -Rm g:sales:rwx dir2

  表示dir2目錄以及其遞歸文件對組sales內的用戶設置rwx的權限

  其中option可以查詢幫助文件

  getfacl:顯示file/directory的acl設置,如下:

  ~]# getfacl file3

  其中會多出顯示file3對wang的權限。

原創文章,作者:forest,如若轉載,請注明出處:http://www.www58058.com/28708

(0)
forestforest
上一篇 2016-08-05 16:16
下一篇 2016-08-05 16:16

相關推薦

  • CentOS程序包管理

    對于Linux系統而言,其能執行的程序為二進制格式,而對于程序開發者而言,直接利用二進制開發程序是不太現實的,所以一般都是利用高級語言來進行軟件開發,其程序也即稱為源代碼;那么我們在對一個程序進行安裝、升級、卸載、 查詢、校驗等操作時,需要對每個源代碼進行編譯成為二進制程序,那么顯然是不太現實的。所以在各Linux發行版中一般都帶有程序包管理器。 所謂程序包…

    Linux干貨 2016-08-25
  • mysql基礎篇(一些基本概念的總結)

    一、安裝以及初始化     軟件包來源         1. vendor, rpm           2. 官網,source code 編譯 &…

    Linux干貨 2015-12-03
  • N26 第八周作業

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋(network bridge) 網橋工作于物理層與數據鏈路層,在終端設備較多的局域網中可以用網橋設備將局域網分離為不同的沖突域(collision domain),減少網絡沖突,提升網絡傳輸效率 集線器(network hub) 集線器具有多個I/O端口,一個端口的輸入信號…

    2017-02-25
  • 本周學習總結

    這周我們學習了很多比較深的命令,有點燒腦,這次我總結一下sed命令。      sed 是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(patternspace ),接著用sed 命令處理緩沖區中的內容,處理完成后,把緩沖區的容送往屏幕。然后讀入下行,執行下一個循環。如果…

    2017-08-28
  • 數組

    一.數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 索引:編號從0 開始,屬于數值索引  注:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0 版本之后開始支持,bash 的數組支持稀疏格式(索引不連續) 二.數組的聲明 declare -a ARRAY_NAME decla…

    Linux干貨 2016-11-23
  • 非常不錯的編程技術教程

    下面是一些非常不錯的編程教程,當然,全是英文版的。不過因為是新手教程,所以非常容易閱讀,可以在學習技術的同時加強一下自己的英語閱讀能力。 如果你是一個新手,建議你把本頁設為你的收藏夾。C Introduction to C Programming C Optimization Tutorial Compiling C and C…

    Linux干貨 2016-05-10

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-07 23:24

    文章整體架構清晰,從權限模型到權限管理都通過實際操作有了自己的認識和理解。

欧美性久久久久