文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>chmod改变权限的3种方法

chmod改变权限的3种方法

时间:2006-06-23  来源:ljc6386613

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

  • 數字類型改變檔案權限 Linux 檔案的基本屬性就有九個,分別是 owner/group/others 組別的 read/write/excute 屬性, 先複習一下剛剛上面提到的資料:
      -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@linux ~]# chmod [-R] xyz 檔案或目錄 參數: xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。 -R : 進行遞迴( recursive )的持續變更,亦即連同次目錄下的所有檔案、目錄 都更新成為這個群組之意。常常用在變更某一目錄的情況。 
    舉例來說,如果要將 .bashrc 這個檔案所有的屬性都打開,那麼就下達:
    [root@linux ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc [root@linux ~]# chmod 777 .bashrc [root@linux ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc 
    看到了嗎?屬性改變了喔!由於一個檔案有三組屬性,所以你可以發現上面 777 為三組,而由於我們將所有的屬性都打開,所以數字都相加,亦即『 r+w+x = 4+2+1 = 7』

    那如果要將屬性變成『 -rwxr-xr-- 』呢?那麼就成為 [4+2+1][4+0+1][4+0+0]=754 囉!所以你需要下達 chmod 754 filename。 最常發生的一個問題就是,常常我們以 vi 編輯一個 shell 的文字檔後,他的屬性通常是 -rw-rw-rw- 也就是 666 的屬性,如果要將他變成可執行檔,並且不要讓其他人修改此一檔案的話, 那麼就需要 -rwxr-xr-x 這一個 755 的屬性,所以 chmod 755 test.sh 就需要這樣做囉!

    另外,有些檔案你不希望被其他人看到,例如 -rwxr-----,那麼就下達 chmod 740 filename 吧!

    例題三:將剛剛您的 .bashrc 這個檔案的屬性改回原來的 -rw-r--r--
    答:
      chmod 644 .bashrc

  • 符號類型改變檔案權限 還有一個改變屬性的方法呦!從之前的介紹中我們可以發現,基本上就九個屬性分別是(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@linux ~]# chmod u=rwx,go=rx .bashrc # 注意喔!那個 u=rwx,go=rx 是連在一起的,中間並沒有任何空白字元! [root@linux ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc 
    請注意, u=rwx,og=rx 這一段文字之間並沒有空白字元隔開呦!不要搞錯囉! 那麼假如是『 -rwxr-xr-- 』?可以使用『 chmod u=rwx,g=rx,o=r filename 』來設定。此外,如果我不知道原先的檔案屬性,而我只想要增加 .bashrc 這個檔案的每個人均可寫入的權限,那麼我就可以使用:
    [root@linux ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc [root@linux ~]# chmod a+w .bashrc [root@linux ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc 
    而如果是要將屬性去掉而不更動其他的屬性呢?!例如要拿掉所有人的 x 的屬性,則:
    [root@linux ~]# chmod a-x .bashrc [root@linux ~]# ls -al .bashrc -rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc 
    知道 +, -, = 的不同點了嗎?對啦! + 與 – 的狀態下,只要是沒有指定到的項目, 則該屬性『不會被變動』,例如上面的例子中,由於僅以 – 拿掉 x 則其他兩個保持當時的值不變!呵呵!多多實作一下,你就會知道如何改變屬性囉! 這在某些情況底下很好用的~舉例來說,您想要教一個朋友如何讓一個程式可以擁有執行的權限, 但您又不知道該檔案原本的權限為何,此時,利用 chmod a+x filename ,就可以讓該程式擁有執行的權限了。 是否很方便?
相关阅读 更多 +
排行榜 更多 +
扑击萌兽大逃亡手游下载

扑击萌兽大逃亡手游下载

休闲益智 下载
gate交易平台app免费版

gate交易平台app免费版

金融理财 下载
Uniswap中文版app安卓版

Uniswap中文版app安卓版

金融理财 下载