chmod改变权限的3种方法
时间:2006-06-23 来源:ljc6386613
- 改變九個屬性, chmod
檔案屬性的改變使用的是 chmod 這個指令,但是,屬性的設定方法有兩種, 分別可以使用數字或者是符號來進行屬性的變更。我們就來談一談:
- 數字類型改變檔案權限
Linux 檔案的基本屬性就有九個,分別是 owner/group/others 組別的 read/write/excute 屬性, 先複習一下剛剛上面提到的資料:
-
-rwxrwxrwx
-
r:4
w:2
x:1-
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
舉例來說,如果要將 .bashrc 這個檔案所有的屬性都打開,那麼就下達:[root@linux ~]# chmod [-R] xyz 檔案或目錄 參數: xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。 -R : 進行遞迴( recursive )的持續變更,亦即連同次目錄下的所有檔案、目錄 都更新成為這個群組之意。常常用在變更某一目錄的情況。
看到了嗎?屬性改變了喔!由於一個檔案有三組屬性,所以你可以發現上面 777 為三組,而由於我們將所有的屬性都打開,所以數字都相加,亦即『 r+w+x = 4+2+1 = 7』[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
那如果要將屬性變成『 -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):具有可讀與執行的權限。
請注意, u=rwx,og=rx 這一段文字之間並沒有空白字元隔開呦!不要搞錯囉! 那麼假如是『 -rwxr-xr-- 』?可以使用『 chmod u=rwx,g=rx,o=r filename 』來設定。此外,如果我不知道原先的檔案屬性,而我只想要增加 .bashrc 這個檔案的每個人均可寫入的權限,那麼我就可以使用:[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
而如果是要將屬性去掉而不更動其他的屬性呢?!例如要拿掉所有人的 x 的屬性,則:[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 則其他兩個保持當時的值不變!呵呵!多多實作一下,你就會知道如何改變屬性囉! 這在某些情況底下很好用的~舉例來說,您想要教一個朋友如何讓一個程式可以擁有執行的權限, 但您又不知道該檔案原本的權限為何,此時,利用 chmod a+x filename ,就可以讓該程式擁有執行的權限了。 是否很方便?[root@linux ~]# chmod a-x .bashrc [root@linux ~]# ls -al .bashrc -rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc
- user (u):具有可讀、可寫、可執行的權限;
相关阅读 更多 +










