Linux檔案許可權介紹
在Linux中,一切皆為檔案(目錄也是檔案),每個檔案對使用者具有可讀(read)、可寫(write)、可執行(execute)許可權。目錄的執行操作表示是否有許可權進入該目錄,檔案的可執行表示是否可以執行該檔案。檔案都會從屬於一個使用者和一個使用者組,每個檔案針對檔案的擁有者、所屬組以及其他使用者組具有特定的許可權。
如上圖,除去第一個表示檔案型別的字元外,後面的字元均以三個為一組,是『rwx』 的三個引數的組合。[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。同時他們也會分別對應到一個數字,[ r ]對應4,[ w ]對應2,[ x ]對應1,這些數字在修改檔案許可權的時候可以用到,如果沒有[ rwx ]中的某個許可權,就會用減號[ - ]替代。
第一組是檔案擁有者對該檔案的操作許可權,第二組是檔案所屬組對該檔案的操作許可權,第三組是其他組的使用者對該檔案的操作許可權。舉例說明: 有一個檔案的許可權資料為『rwxr-xr--』,那麼前3個字元表示檔案的擁有者可以對檔案進行讀、寫、執行三個操作,中間3個字元表示該檔案的所屬組可以對檔案進行讀和執行操作,最後3個字元表示其他群組的使用者只能對該檔案進行讀操作。
更改檔案許可權:chmod
更改檔案許可權使用命令 chmod ,一個檔案的許可權對應3種使用者(自己、組、其他人)的讀寫執行共有9個,三個為一組,把每組的許可權相加得到一個數字,例如[rwxrwx---]對應的數字是:
owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0
只要使用者對檔案有寫許可權,那麼該使用者就可以更新其他使用者對該檔案的操作許可權,命令:
chmod [-R] xyz 檔案或目錄
- xyz:分別對應三類使用者許可權值相加的和。
- -R : 進行遞迴(recursive)的持續變更,亦即連同次目錄下的所有檔案都會變更
例如:
[[email protected] ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc [[email protected] ~]# chmod 777 .bashrc # 更改為所有使用者都可以讀寫執行 [[email protected] ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
chmod 除了可以使用數字的方式變更檔案的許可權之外,還可以使用符號來改變檔案許可權,u、 g、o、a分別是user、group、others、all(所有使用者)的簡寫,r 、w、x 分別是read、write、execute 的簡寫,那麼chmod可以接收這些簡寫字元來變更檔案許可權。
u g +(增加) r chmod o -(除去) w 檔案或目錄 a =(賦值) x
例如:
# 給自己讀寫執行許可權,給使用者組和其他人讀和執行操作 chmod u=rwx,go=rx .bashrc # 給所有使用者追加寫許可權 chmod a+w .bashrc # 給所有使用者除去寫許可權 chmod a-w .bashrc
改變所屬群組 chgrp
改變檔案的群組使用chgrp命令,他是change group 的縮寫,命令格式:
chgrp [-R] groupname dirname/filename
-R 遞迴改變目錄及子目錄檔案,groupname 必須是存在於系統中的/etc/group檔案裡面的組。
# 把當前目錄以及子目錄下所有檔案的所屬組更新為mysql組 chgrp -R mysql .
改變檔案擁有者 chown
改變檔案的所屬者使用 chown 命令,他是change owner 的縮寫,命令格式:
chown [-R] owner dirname/filename 或者 chown [-R] owner:group dirname/filename
chown 命令不僅可以改變檔案的擁有者,同時還可以改變檔案的群組,只需在 owner 後面 加上 group 的名稱即可
# 把install.log改成mysql使用者 chown mysql install.log # 把 install.log 改成root使用者和root組 chown root:root install.log
關注公眾號「Python之禪」(id:vttalk)獲取最新文章