linux 如何改變文件屬性與權限

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

咱們這裏介紹幾個經常使用於羣組、擁有者、各類身份的權限的指令。以下所示:bash

chgrp  :  改變檔案所屬羣組spa

chown :  改變檔案擁有者code

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

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' <== 發生錯誤信息息囉~找不到這個羣組名~
複製代碼

2. 改變檔案擁有者, chownit

複製代碼
[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. 改變權限, chmodclass

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

3.1 數字類型改變檔案權限file

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囉!也就是可使用底下的方式來看:

來實驗一下吧!假如咱們要設定一個檔案的權限成爲『-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
相關文章
相關標籤/搜索