1、Linux文件權限與目錄配置

 

行文結構以下:java

  1. 用戶和用戶組
  2. Linux文件權限概念
  3. Linux目錄配置
  4. 重點回顧

一、用戶與用戶組

        Linux是個多用戶、多任務的系統,可能有多人同時使用這臺機器進行工做,爲了考慮每一個人的隱私和工做環境,「文件全部者」角色既用戶角色顯得至關重要。另外,若是有2個組同時在一臺機器上開發,可是這2個組有競爭關係。須要相互隔離對方,杜絕訪問本身的資源,可是本身組成員能夠訪問本組資源。這就引出了用戶與用戶組的概念。windows

        在Linux系統中,每個文件都有用戶(User)、用戶組(Group)、其餘人(Others)3中個別權限。固然,從角色角度來看,還有一個終極Boss,那就是root,Root權限能夠去系統中任意想去的地方。因此在使用root操做時,要當心誤操做。緩存

       Linux系統中帳號都記錄在/etc/passwd文件內,我的密碼記錄在/etc/shadow,組名記錄在/etc/group內,不要隨便刪除這3個文件。tomcat

二、Linux文件權限概念

2.一、Linux文件屬性

文件屬性表示該文件的類型,是否可讀、可寫、可執行。好比下圖:網絡

是Linux根目錄下的文件函數

dr-xr-xr-x. 24 root    root     4096 Sep 22 16:06 .
dr-xr-xr-x. 24 root    root     4096 Sep 22 16:06 ..
-rw-r--r--   1 root    root        0 Sep 11 12:53 .autofsck
-rw-r--r--   1 root    root        0 Nov  9  2016 .autorelabel
dr-xr-xr-x.  2 root    root     4096 Nov  9  2016 bin
dr-xr-xr-x.  4 root    root     4096 Nov 10  2016 boot
drwxr-xr-x   2 root    root     4096 Nov  9  2016 data

上面的前十位表示該文件的權限內容,第一個[d]表示這是一個目錄[-]表示這是一個文件,後面的三個三個一組,從左到右分別表示用戶的權限用戶組的權限其餘人的權限[r]表示可讀[w]表示可寫[x]表示可執行[-]表示此項權限不存在操作系統

緊接着的數字表示鏈接數,以後的root,root表示文件所屬的用戶和文件所屬的用戶組的名稱。以後的數字表示這個文件的大小。再後面是文件的最後修改時間,最後是文件的名稱。blog

TIPS:接口

若是文件前面有.,表明這個文件爲隱藏文件

若是目錄的[x]爲空,表示只可訪問到該目錄,不能進入到目錄中訪問其子文件

2.二、如何改變文件屬性與權限

chgrp:改變文件所屬用戶組
chown:改變文件全部者
chmod:改變文件權限

  

 

使用chgrp和chown的後,temp文件的用戶和用戶組從root,root變成了bin,users。圖片

另外在[cp]命令複製文件的時候,也會相應複製其用戶和用戶權限

cp的命令格式爲:

cp 源文件 目標文件

 接上面圖片,改變temp目錄的文件權限

發現,修改temp文件的權限爲:用戶可讀可寫可執行(4+2+1),用戶組可讀可寫(4+2),其餘人可讀可寫(4+2)

TIPS:

目錄權限:
系統有user用戶,該用戶不支持root用戶組,則user用戶能夠查詢此目錄下的文件列表,可是沒有x權限,因此user用戶不能切換到此目錄內部。

2.3 、Linux文件種類和擴展名

文件種類:

普通文件分爲:二進制文件、純文本文件、數據格式文件;

目錄:在Linux中,一切皆文件,目錄也不例外;

鏈接文件:相似於Windows中的快捷方式文件;

設備與設備文件:分爲Block塊設備文件、character字符設備文件,一般在/dev目錄下;

套接字文件:網絡傳輸數據的文件;

管道文件:FIFO文件,用於解決多個程序同時訪問一個文件所形成的錯誤問題。 

三、Linux目錄配置

3.一、Linux目錄配置標準:FHS(FileSystem Hierarchy Standard)

我理解:主要是定義一套標準,讓不一樣用戶在使用時,按照這套標準新建,刪除,放置目錄和文件等操做,而不是隨意新建,刪除,放置文件和目錄,形成系統混亂的局面。

其中全部文件的根文件時"/",任何其餘文件都是在它基礎上掛載的,下面介紹下部分文件名稱及其做用:

/:根目錄,與開機、還原、系統修復有關,FHS標準要求:/所在的分區應該越小越好,且應用程序安裝的軟件最好不要和根目錄放在你同一個分區,保持根目錄越小越好。
/bin:這個文件下存放的是一些系統經常使用命令,如cat,ls,chmod,data,mkdir,MV,cp等。
/boot:這個目錄主要放置開機時會使用到的文件,包括內核文件和開機的配置文件等
/dev:任何設備和設備接口都是以文件形式存在這個目錄中的。
/etc:系統的主要的配置文件都放在這個文件中,好比人員的帳號,密碼。各類服務的起始文件等。
/home:系統默認的用戶主文件夾,在你建立一個通常用戶帳號時,默認的用戶主文件夾都會規範到這裏來。文件夾中有兩種代號:~:表明目前用戶的主文件夾,~dmtsai:表明dmtsai的主文件夾。
/lib:系統加載所須要的函數庫都在這個目錄下了。
/opt:這是給第三方軟件放置的目錄【我原本覺得第三方軟件指的是jdk,tomcat這種,後來查看這個目錄下沒有,感受這個是針對系統的第三方軟件,好比像桌面程序?大概jdk,tomcat這種是叫應用軟件吧?有大神知道,
還請指導下】 /usr:usr目錄不是user的簡稱!!!而是UNIX Software Resource的簡稱,也就是UNIX操做系統軟件資源所放置的目錄,並非用戶的數據。相似於Windows下的C:/Windows和C:/Program Files兩個目錄的綜合體, 咱們安裝的jdk和tomcat等應用軟件,就是安裝在/usr/local下。 /var:若是說/usr是在軟件安裝的過程當中佔用硬盤容量的話,那麼/var就是在系統運行後逐漸佔用硬盤用量的,其裏面是針對常態性變更的文件,好比緩存,登陸文件以及運行時產生的文件。

  

3.二、目錄樹(directory tree)

Linux目錄樹結構

3.三、絕對路徑和相對路徑

絕對路徑:由根目錄/開始寫起的文件名活目錄名稱,例如:/home/temp

相對路徑:相對於目前路徑的文件名寫法。例如「./home/dmstai」,反正開頭不是/就是相對路徑的寫法。

因此當你cd ..的時候,就是相對於當前目錄的上一級目錄,而若是如今由 /home/helloworld和/home/20170920temp這兩個目錄,經過cd ../helloworld/就能夠進入到同級目錄下的helloworld下。這就是相對路勁

 

一樣 ./run.sh 表示執行當前目錄下的run.sh的腳本。

四、重點回顧:

  • Linux下權限依次分用戶、用戶組、其餘人三種身份。
  • ls -al 顯示全部文件的詳細信息,包括:10位長度的權限,文件鏈接數,文件容量,文件最後修改日期,文件名。
  • 若是文件名前多一個".",表明這個文件時隱藏文件
  • 對文件來講,權限分爲:r:可讀,w:可寫,x:可執行文件(相似windows的exe),
  • 對目錄來講,權限分爲:r:可讀目錄中的內容,w:可修改目錄中的內容,x:可訪問這個目錄,可是不能訪問目錄內的內容
  • FHS定義的三層主目錄爲:/,/usr, /var

參考書籍:《鳥哥的Linux私房菜基礎篇第三版》

相關文章
相關標籤/搜索