首頁 >運維 >linux運維 >linux中如何修改檔案屬性與權限

linux中如何修改檔案屬性與權限

王林
王林原創
2019-12-06 10:04:343941瀏覽

linux中如何修改檔案屬性與權限

我們知道檔案權限對於一個系統的安全性重要性,也知道檔案的權限對於使用者與群組的相關性, 那要如何修改一個檔案的屬性與權限呢?

我們這裡介紹幾個常用於群組、擁有者、各種身分的權限的指令。如下圖所示:

chgrp  :  改變檔案所屬群組;

chown :  改變檔案擁有者;

chmod :  改變檔案的權限, SUID, SGID, SBIT等等的特性。

1. 改變所屬群組chgrp

[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.log 
chgrp: invalid group name `testing&#39; <== 发生错误信息息~找不到这个群组名~

免費影片教學推薦:linux影片教學

2. 改變檔案擁有者chown

#
[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

3. 改變權限chmod

權限的設定方法有兩種, 分別可以使用數字或符號來進行權限的變更。

3.1 數位類型改變檔案權限

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)的持續變更,亦即連同次目錄下的所有檔案都會變更。

舉例來說,如果要將.bashrc這個檔案所有的權限都設定啟用,那麼就下達:

[root@www ~]# ls -al .bashrc 
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc 
[root@www ~]# chmod 777 .bashrc 
[root@www ~]# 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 囉!所以你需要下達:

[root@www ~]# chmod 754 filename

3.2 符號類型改變檔案權限

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

linux中如何修改檔案屬性與權限

來實驗吧!當我們要設定一個檔案的權限成為『-rwxr-xr-x』時,基本上就是:

o user (u):具有可读、可写、可执行的权限;
o 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

相關文章教學推薦:linux教學

以上是linux中如何修改檔案屬性與權限的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn