麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > CentOS > 正文

CentOS學習筆記--文件權限概念

2024-06-28 13:22:52
字體:
來源:轉載
供稿:網友
CentOS學習筆記--文件權限概念linux 文件權限概念

當你的屏幕出現了『Permission deny』的時候,不要擔心,『肯定是權限設定錯誤』啦!(以下節選自 鳥哥的 Linux 私房菜 第六章、Linux 的文件權限與目錄配置 2. Linux文件權限概念)

Linux文件屬性

在你以root的身份登入Linux之后,下達『 ls -al 』看看,會看到底下的幾個咚咚:

[root@localhost ~]# ls -altotal 64dr-xr-x---.  2 root root  4096 Dec 18 09:28 .dr-xr-xr-x. 22 root root  4096 Nov 14 16:08 ..-rw-------.  1 root root  1098 Nov  3 19:57 anaconda-ks.cfg-rw-------.  1 root root 12288 Dec 18 09:28 .anaconda-ks.cfg.swp-rw-------.  1 root root  1517 Dec 18 10:36 .bash_history-rw-r--r--.  1 root root    18 May 20  2009 .bash_logout-rw-r--r--.  1 root root   176 May 20  2009 .bash_PRofile-rw-r--r--.  1 root root   176 Sep 23  2004 .bashrc-rw-r--r--.  1 root root   100 Sep 23  2004 .cshrc-rw-r--r--.  1 root root  8726 Nov  3 19:57 install.log-rw-r--r--.  1 root root  3190 Nov  3 19:56 install.log.syslog-rw-r--r--.  1 root root   129 Dec  4  2004 .tcshrc[1]         [2][3]  [4]   [5]  [6]          [7][權限]  [連接][擁有者][群組][文件大小][修改日期][文件]
  • 第一欄代表這個文件的類型與權限(permission):

文件的類型與權限之內容

    • 第一個字符代表這個文件是『目錄、文件或鏈接文件等等』:
      • 當為[ d ]則是目錄,例如上表檔名為『.』的那一行;
      • 當為[ - ]則是文件,例如上表檔名為『install.log』那一行;
      • 若是[ l ]則表示為連結檔(link file);
      • 若是[ b ]則表示為裝置文件里面的可供儲存的接口設備(可隨機存取裝置);
      • 若是[ c ]則表示為裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)
    • 接下來的字符中,以三個為一組,且均為『rwx』 的三個參數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。 要注意的是,這三個權限的位置不會改變,如果沒有權限,就會出現減號[ - ]而已。
      • 第一組為『文件擁有者的權限』,以『install.log』那個文件為例, 該文件的擁有者可以讀寫,但不可執行;
      • 第二組為『同群組的權限』;
      • 第三組為『其他非本群組的權限』。
  • 第二欄表示有多少檔名連結到此節點(i-node):
  • 第三欄表示這個文件(或目錄)的『擁有者賬號』
  • 第四欄表示這個文件的所屬群組
  • 第五欄為這個文件的容量大小,默認單位為bytes;
  • 第六欄為這個文件的建檔日期或者是最近的修改日期:
  • 第七欄為這個文件的檔名。
    • 這個字段就是檔名了。比較特殊的是:如果檔名之前多一個『 . 』,則代表這個文件為『隱藏檔』。
如何改變文件屬性與權限

常用于群組、擁有者、各種身份的權限之修改的指令,如下所示:

  • chgrp :改變文件所屬群組
  • chown :改變文件擁有者
  • chmod :改變文件的權限, SUID, SGID, SBIT等等的特性
改變所屬群組, chgrp

改變一個文件的群組真是很簡單的,直接以chgrp來改變即可,咦!這個指令就是change group的縮寫嘛!這樣就很好記了吧! ^_^。不過,請記得,要被改變的組名必須要在/etc/group文件內存在才行,否則就會顯示錯誤!

[root@www ~]# chgrp [-R] dirname/filename ...選項與參數:-R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件、目錄     都更新成為這個群組之意。常常用在變更某一目錄內所有的文件之情況。范例:[root@www ~]# chgrp users install.log  <==改變文件群組[root@www ~]# ls -l-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log[root@www ~]# chgrp testing install.logchgrp: invalid group name `testing' <== 發生錯誤訊息啰~找不到這個群組名~
發現了嗎?文件的群組被改成users了,但是要改成testing的時候, 就會發生錯誤~注意喔!改變文件擁有者, chown

如何改變一個文件的擁有者呢?很簡單呀!既然改變群組是change group,那么改變擁有者就是change owner啰!BINGO!那就是chown這個指令的用途,要注意的是, 用戶必須是已經存在系統中的賬號,也就是在/etc/passwd 這個文件中有紀錄的用戶名稱才能改變。

[root@www ~]# chown [-R] 賬號名稱 文件或目錄[root@www ~]# chown [-R] 賬號名稱:組名 文件或目錄選項與參數:-R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件都變更范例:將install.log的擁有者改為bin這個賬號:[root@www ~]# chown bin install.log[root@www ~]# ls -l-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log范例:將install.log的擁有者與群組改回為root:[root@www ~]# chown root:root install.log[root@www ~]# ls -l-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
改變權限, chmod

文件權限的改變使用的是chmod這個指令,但是,權限的設定方法有兩種, 分別可以使用數字或者是符號來進行權限的變更。我們就來談一談:

  • 數字類型改變文件權限 Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限, 先復習一下剛剛上面提到的數據:文件的權限字符為:『-rwxrwxrwx』, 這九個權限是三個三個一組的!其中,我們可以使用數字來代表各個權限,各權限的分數對照表如下:
    r:4 w:2 x:1
    每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的,例如當權限為: [-rwxrwx---] 分數則是:
    owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0
    所以等一下我們設定權限的變更時,該文件的權限數字就是770啦!變更權限的指令chmod的語法是這樣的:
    [root@www ~]# chmod [-R] xyz 文件或目錄選項與參數:xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。-R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件都會變更

    如果要將權限變成『 -rwxr-xr-- 』呢?那么權限的分數就成為 [4+2+1][4+0+1][4+0+0]=754 啰!所以你需要下達『 chmod 754 filename』。 另外,在實際的系統運作中最常發生的一個問題就是,常常我們以vi編輯一個shell的文字批處理文件后,他的權限通常是 -rw-rw-r-- 也就是664, 如果要將該文件變成可執行文件,并且不要讓其他人修改此一文件的話, 那么就需要-rwxr-xr-x這樣的權限,此時就得要下達:『 chmod 755 test.sh 』的指令啰! 另外,如果有些文件你不希望被其他人看到,那么應該將文件的權限設定為例如:『-rwxr-----』,那就下達『chmod 740 filename 』吧!

  • 符號類型改變文件權限 還有一個改變權限的方法呦!從之前的介紹中我們可以發現,基本上就九個權限分別是(1)user (2)group (3)others三種身份啦!那么我們就可以藉由u, g, o來代表三種身份的權限!此外, a 則代表 all 亦即全部的身份!那么讀寫的權限就可以寫成r, w, x!也就是可以使用底下的方式來看:
    chmod

    u g o a

    +(加入) -(除去) =(設定)

    r w x

    文件或目錄

    來實作一下吧!假如我們要『設定』一個文件的權限成為『-rwxr-xr-x』時,基本上就是:

    • user (u):具有可讀、可寫、可執行的權限;
    • group 與 others (g/o):具有可讀與執行的權限。
    所以就是:
    [root@www ~]# chmod  u=rwx,go=rx  .bashrc# 注意喔!那個 u=rwx,go=rx 是連在一起的,中間并沒有任何空格![root@www ~]# ls -al .bashrc-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc

那么假如是『 -rwxr-xr-- 』這樣的權限呢?可以使用『 chmod u=rwx,g=rx,o=r filename 』來設定。此外,如果我不知道原先的文件屬性,而我只想要增加.bashrc這個文件的每個人均可寫入的權限, 那么我就可以使用:

[root@www ~]# ls -al .bashrc-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc[root@www ~]# chmod  a+w  .bashrc[root@www ~]# ls -al .bashrc-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

而如果是要將權限去掉而不更動其他已存在的權限呢?例如要拿掉全部人的可執行權限,則:

[root@www ~]# chmod  a-x  .bashrc[root@www ~]# ls -al .bashrc-rw-rw-rw-  1 root root 395 Jul  4 11:45 .bashrc

知道 +, -, = 的不同點了嗎?對啦! + 與 – 的狀態下,只要是沒有指定到的項目,則該權限『不會被變動』, 例如上面的例子中,由于僅以 – 拿掉 x 則其他兩個保持當時的值不變!多多實作一下,你就會知道如何改變權限啰! 這在某些情況底下很好用的~舉例來說,你想要教一個朋友如何讓一個程序可以擁有執行的權限, 但你又不知道該文件原本的權限為何,此時,利用『chmod a+x filename』 ,就可以讓該程序擁有執行的權限了。是否很方便?

目錄與文件之權限意義:

現在我們知道了Linux系統內文件的三種身份(擁有者、群組與其他人),知道每種身份都有三種權限(rwx), 已知道能夠使用chown, chgrp, chmod去修改這些權限與屬性,當然,利用ls -l去觀察文件也沒問題。那么,這些文件權限對于一般文件與目錄文件有何不同呢? 有大大的不同啊!


權限對文件的重要性

文件是實際含有數據的地方,包括一般文本文件、數據庫內容文件、二進制可執行文件(binary program)等等。 因此,權限對于文件來說,他的意義是這樣的:

  • r (read):可讀取此一文件的實際內容,如讀取文本文件的文字內容等;
  • w (write):可以編輯、新增或者是修改該文件的內容(但不含刪除該文件);
  • x (execute):該文件具有可以被系統執行的權限。

那個可讀(r)代表讀取文件內容是還好了解,那么可執行(x)呢?這里你就必須要小心啦! 因為在Windows底下一個文件是否具有執行的能力是藉由『 擴展名 』來判斷的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我們的文件是否能被執行,則是藉由是否具有『x』這個權限來決定的!跟檔名是沒有絕對的關系的!

至于最后一個w這個權限呢?當你對一個文件具有w權限時,你可以具有寫入/編輯/新增/修改文件的內容的權限, 但并不具備有刪除該文件本身的權限!對于文件的rwx來說, 主要都是針對『文件的內容』而言,與文件檔名的存在與否沒有關系喔!因為文件記錄的是實際的數據嘛!


權限對目錄的重要性

文件是存放實際數據的所在,那么目錄主要是儲存啥玩意啊?目錄主要的內容在記錄文件名列表,文件名與目錄有強烈的關連啦! 所以如果是針對目錄時,那個 r, w, x 對目錄是什么意義呢?

  • r (read contents in directory): 表示具有讀取目錄結構列表的權限,所以當你具有讀取(r)一個目錄的權限時,表示你可以查詢該目錄下的文件名數據。 所以你就可以利用 ls 這個指令將該目錄的內容列表顯示出來!
  • w (modify contents of directory): 這個可寫入的權限對目錄來說,是很了不起的! 因為他表示你具有異動該目錄結構列表的權限,也就是底下這些權限:
    • 建立新的文件與目錄;
    • 刪除已經存在的文件與目錄(不論該文件的權限為何!)
    • 將已存在的文件或目錄進行更名;
    • 搬移該目錄內的文件、目錄位置。
    總之,目錄的w權限就與該目錄底下的文件名異動有關就對了啦!
  • x (access directory): 咦!目錄的執行權限有啥用途啊?目錄只是記錄文件名而已,總不能拿來執行吧?沒錯!目錄不可以被執行,目錄的x代表的是用戶能否進入該目錄成為工作目錄的用途! 所謂的工作目錄(work directory)就是你目前所在的目錄啦!舉例來說,當你登入Linux時, 你所在的家目錄就是你當下的工作目錄。而變換目錄的指令是『cd』(change directory)啰!

文件種類:

我們在剛剛提到使用『ls -l』觀察到第一欄那十個字符中,第一個字符為文件的類型。 除了常見的一般文件(-)與目錄文件(d)之外,還有哪些種類的文件類型呢?

  • 正規文件(regular file ): 就是一般我們在進行存取的類型的文件,在由 ls -al 所顯示出來的屬性方面,第一個字符為 [ - ],例如 [-rwxrwxrwx ]。另外,依照文件的內容,又大略可以分為:
    • 純文本檔(ASCII):這是Linux系統中最多的一種文件類型啰, 稱為純文本檔是因為內容為我們人類可以直接讀到的數據,例如數字、字母等等。 幾乎只要我們可以用來做為設定的文件都屬于這一種文件類型。 舉例來說,你可以下達『 cat ~/.bashrc 』就可以看到該文件的內容。
    • 二進制文件(binary):Linux當中的可執行文件(scripts, 文字型批處理文件不算)就是這種格式的啦~ 舉例來說,剛剛下達的指令cat就是一個binary file。
    • 數據格式文件(data): 有些程序在運作的過程當中會讀取某些特定格式的文件,那些特定格式的文件可以被稱為數據文件 (data file)。舉例來說,我們的Linux在使用者登入時,都會將登錄的數據記錄在 /var/log/wtmp那個文件內,該文件是一個data file,他能夠透過last這個指令讀出來! 但是使用cat時,會讀出亂碼~因為他是屬于一種特殊格式的文件。瞭乎?
  • 目錄(directory): 就是目錄啰~第一個屬性為 [ d ],例如 [drwxrwxrwx]。
  • 連結檔(link): 就是類似Windows系統底下的快捷方式啦! 第一個屬性為 [ l ](英文L的小寫),例如 [lrwxrwxrwx] ;
  • 設備與裝置文件(device): 與系統周邊及儲存等相關的一些文件, 通常都集中在/dev這個目錄之下!通常又分為兩種:
    • 區塊(block)設備檔 :就是一些儲存數據, 以提供系統隨機存取的接口設備,舉例來說,硬盤與軟盤等就是啦! 你可以隨機的在硬盤的不同區塊讀寫,這種裝置就是成組設備啰!你可以自行查一下/dev/sda看看, 會發現第一個屬性為[ b ]喔!
    • 字符(character)設備文件:亦即是一些串行端口的接口設備, 例如鍵盤、鼠標等等!這些設備的特色就是『一次性讀取』的,不能夠截斷輸出。 舉例來說,你不可能讓鼠標『跳到』另一個畫面,而是『滑動』到另一個地方啊!第一個屬性為 [ c ]。
  • 數據接口文件(sockets): 既然被稱為數據接口文件, 想當然爾,這種類型的文件通常被用在網絡上的數據承接了。我們可以啟動一個程序來監聽客戶端的要求, 而客戶端就可以透過這個socket來進行數據的溝通了。第一個屬性為 [ s ], 最常在/var/run這個目錄中看到這種文件類型了。
  • 數據輸送文件(FIFO, pipe): FIFO也是一種特殊的文件類型,他主要的目的在解決多個程序同時存取一個文件所造成的錯誤問題。 FIFO是first-in-first-out的縮寫。第一個屬性為[p] 。

 

權限與命令間的關系:

我們知道權限對於使用者帳號來說是非常重要的,因為他可以限制使用者能不能讀取/創建/刪除/修改文件或目錄!什么命令在什么樣的權限下才能夠運行?

一、讓使用者能進入某目錄成為『可工作目錄』的基本權限為何:

  • 可使用的命令:例如 cd 等變換工作目錄的命令;
  • 目錄所需權限:使用者對這個目錄至少需要具有 x 的權限
  • 額外需求:如果使用者想要在這個目錄內利用 ls 查閱檔名,則使用者對此目錄還需要 r 的權限。

二、使用者在某個目錄內讀取一個文件的基本權限為何?

  • 可使用的命令:例如本章談到的 cat, more, less等等
  • 目錄所需權限:使用者對這個目錄至少需要具有 x 權限;
  • 文件所需權限:使用者對文件至少需要具有 r 的權限才行!

三、讓使用者可以修改一個文件的基本權限為何?

  • 可使用的命令:例如 nano 或未來要介紹的 vi 編輯器等;
  • 目錄所需權限:使用者在該文件所在的目錄至少要有 x 權限;
  • 文件所需權限:使用者對該文件至少要有 r, w 權限

四、讓一個使用者可以創建一個文件的基本權限為何?

  • 目錄所需權限:使用者在該目錄要具有 w,x 的權限,重點在 w 啦!

五、讓使用者進入某目錄并運行該目錄下的某個命令之基本權限為何?

  • 目錄所需權限:使用者在該目錄至少要有 x 的權限;
  • 文件所需權限:使用者在該文件至少需要有 x 的權限

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九九热精品在线 | 精品国产一区二区三区四 | www.精品久久 | 小雪奶水翁胀公吸小说最新章节 | 一级毛片在线免费播放 | av一道本 | 中文字幕在线观看精品 | 国产91av视频 | 青青草成人免费视频在线 | 久久久成人免费视频 | 狠狠干夜夜草 | 最新91在线视频 | 日韩黄网站 | 免费在线观看毛片视频 | 久久亚洲美女视频 | 午夜在线小视频 | 91在线播放国产 | 一色桃子av大全在线播放 | 色无极影院亚洲 | 天天草天天爱 | 青青草成人影视 | 久久精品视频一区二区三区 | 亚洲aⅴ在线观看 | 欧美日本亚洲视频 | 久久国产亚洲精品 | 精品久久中文字幕 | xxxx8| 蜜桃网站在线 | 一级毛片真人免费播放视频 | 大学生a级毛片免费视频 | 中国女人内谢69xxxx天美 | 一级免费在线视频 | 永久av在线免费观看 | 精品国产一区二区三区免费 | 一级一级一级一级毛片 | 九九热在线精品视频 | 91网页 | 校花被肉干高h潮不断 | 亚州综合图片 | 精品一区二区视频在线观看 | 法国性xxx精品hd |