国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > CentOS > 正文

CentOS學(xué)習(xí)筆記--文件權(quán)限概念

2024-06-28 13:22:52
字體:
供稿:網(wǎng)友
CentOS學(xué)習(xí)筆記--文件權(quán)限概念linux 文件權(quán)限概念

當(dāng)你的屏幕出現(xiàn)了『Permission deny』的時(shí)候,不要擔(dān)心,『肯定是權(quán)限設(shè)定錯(cuò)誤』啦!(以下節(jié)選自 鳥哥的 Linux 私房菜 第六章、Linux 的文件權(quán)限與目錄配置 2. Linux文件權(quán)限概念)

Linux文件屬性

在你以root的身份登入Linux之后,下達(dá)『 ls -al 』看看,會(huì)看到底下的幾個(gè)咚咚:

[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][權(quán)限]  [連接][擁有者][群組][文件大小][修改日期][文件]
  • 第一欄代表這個(gè)文件的類型與權(quán)限(permission):

文件的類型與權(quán)限之內(nèi)容

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

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

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

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

[root@www ~]# chgrp [-R] dirname/filename ...選項(xiàng)與參數(shù):-R : 進(jìn)行遞歸(recursive)的持續(xù)變更,亦即連同次目錄下的所有文件、目錄     都更新成為這個(gè)群組之意。常常用在變更某一目錄內(nèi)所有的文件之情況。范例:[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' <== 發(fā)生錯(cuò)誤訊息啰~找不到這個(gè)群組名~
發(fā)現(xiàn)了嗎?文件的群組被改成users了,但是要改成testing的時(shí)候, 就會(huì)發(fā)生錯(cuò)誤~注意喔!改變文件擁有者, chown

如何改變一個(gè)文件的擁有者呢?很簡單呀!既然改變?nèi)航M是change group,那么改變擁有者就是change owner啰!BINGO!那就是chown這個(gè)指令的用途,要注意的是, 用戶必須是已經(jīng)存在系統(tǒng)中的賬號(hào),也就是在/etc/passwd 這個(gè)文件中有紀(jì)錄的用戶名稱才能改變。

[root@www ~]# chown [-R] 賬號(hào)名稱 文件或目錄[root@www ~]# chown [-R] 賬號(hào)名稱:組名 文件或目錄選項(xiàng)與參數(shù):-R : 進(jìn)行遞歸(recursive)的持續(xù)變更,亦即連同次目錄下的所有文件都變更范例:將install.log的擁有者改為bin這個(gè)賬號(hào):[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
改變權(quán)限, chmod

文件權(quán)限的改變使用的是chmod這個(gè)指令,但是,權(quán)限的設(shè)定方法有兩種, 分別可以使用數(shù)字或者是符號(hào)來進(jìn)行權(quán)限的變更。我們就來談一談:

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

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

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

    u g o a

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

    r w x

    文件或目錄

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

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

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

[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

而如果是要將權(quán)限去掉而不更動(dòng)其他已存在的權(quán)限呢?例如要拿掉全部人的可執(zhí)行權(quán)限,則:

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

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

目錄與文件之權(quán)限意義:

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


權(quán)限對(duì)文件的重要性

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

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

那個(gè)可讀(r)代表讀取文件內(nèi)容是還好了解,那么可執(zhí)行(x)呢?這里你就必須要小心啦! 因?yàn)樵赪indows底下一個(gè)文件是否具有執(zhí)行的能力是藉由『 擴(kuò)展名 』來判斷的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我們的文件是否能被執(zhí)行,則是藉由是否具有『x』這個(gè)權(quán)限來決定的!跟檔名是沒有絕對(duì)的關(guān)系的!

至于最后一個(gè)w這個(gè)權(quán)限呢?當(dāng)你對(duì)一個(gè)文件具有w權(quán)限時(shí),你可以具有寫入/編輯/新增/修改文件的內(nèi)容的權(quán)限, 但并不具備有刪除該文件本身的權(quán)限!對(duì)于文件的rwx來說, 主要都是針對(duì)『文件的內(nèi)容』而言,與文件檔名的存在與否沒有關(guān)系喔!因?yàn)槲募涗浀氖菍?shí)際的數(shù)據(jù)嘛!


權(quán)限對(duì)目錄的重要性

文件是存放實(shí)際數(shù)據(jù)的所在,那么目錄主要是儲(chǔ)存啥玩意啊?目錄主要的內(nèi)容在記錄文件名列表,文件名與目錄有強(qiáng)烈的關(guān)連啦! 所以如果是針對(duì)目錄時(shí),那個(gè) r, w, x 對(duì)目錄是什么意義呢?

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

文件種類:

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

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

 

權(quán)限與命令間的關(guān)系:

我們知道權(quán)限對(duì)於使用者帳號(hào)來說是非常重要的,因?yàn)樗梢韵拗剖褂谜吣懿荒茏x取/創(chuàng)建/刪除/修改文件或目錄!什么命令在什么樣的權(quán)限下才能夠運(yùn)行?

一、讓使用者能進(jìn)入某目錄成為『可工作目錄』的基本權(quán)限為何:

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

二、使用者在某個(gè)目錄內(nèi)讀取一個(gè)文件的基本權(quán)限為何?

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

三、讓使用者可以修改一個(gè)文件的基本權(quán)限為何?

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

四、讓一個(gè)使用者可以創(chuàng)建一個(gè)文件的基本權(quán)限為何?

  • 目錄所需權(quán)限:使用者在該目錄要具有 w,x 的權(quán)限,重點(diǎn)在 w 啦!

五、讓使用者進(jìn)入某目錄并運(yùn)行該目錄下的某個(gè)命令之基本權(quán)限為何?

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜兰市| 施秉县| 永德县| 宕昌县| 民勤县| 柘荣县| 正蓝旗| 灵台县| 台江县| 岱山县| 和政县| 潞城市| 襄樊市| 青田县| 台山市| 唐河县| 西吉县| 喀喇沁旗| 托克托县| 牙克石市| 浦北县| 潞西市| 瑞金市| 吉木萨尔县| 夏河县| 潢川县| 六安市| 寿阳县| 万荣县| 湘西| 莲花县| 兴义市| 怀远县| 嫩江县| 通许县| 舟曲县| 郴州市| 彭泽县| 正镶白旗| 林西县| 太湖县|