iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
1
Software Development

如何使用 Linux 從土裡到冒出頭來系列 第 13

Day 13 目錄與檔案權限

  • 分享至 

  • xImage
  •  

Day 13 目錄與檔案權限

在 Linux 中檔案權限 跟 Windows 一樣有讀取、寫入、執行的設定,也可以針對哪些帳號及群組做各別設定。

drwxr-xr-x. 3 root root   51  9月 25 23:22 tmp

上方是一個 tmp 的詳細資訊。而前方 drwxr-xr-x 這段代表的是權限值。

  • 第一碼代表檔案類型
  • 第二碼到第十碼的字元,分成三組,分別為擁有者、所屬群組、其他人權限。
  • 一組權限代碼為 rwx

權限代碼分別為:

代碼 目的 檔案說明 目錄說明 權限數值
r 讀取(read) 可使用 cat 指令讀取檔案。 可使用 lsll列出詳細清單 4
w 寫入(write) 可新增、刪除、修改、移動檔案。 可建立、刪除、修改、移動目錄。 2
x 執行(execute) 檔案可被執行。 可使用 cd 訪問該目錄 1
- 不允許 禁止讀取、寫入、執行檔案。 禁止對目錄做讀、寫、執行。 0

查詢檔案及目錄權限

[root@localhost ~]# ls -l

總計 12
-rw-------. 1 root root 1416  9月 19 14:04 anaconda-ks.cfg
-rw-r--r--. 1 root root    6  9月 26 22:06 data
-rw-r--r--. 1 root root    0  9月 22 21:43 edm.php
-rw-r--r--. 1 root root   19  9月 26 22:16 test.txt
drwxr-xr-x. 3 root root   51  9月 25 23:22 tmp
drwxr-xr-x. 2 root root   23  9月 22 22:06 tmp2

變更檔案權限【chmod】

chmod 指令意思是 change mode。

[root@localhost ~]# chmod [權限數值] [目標]

權限代碼除了可以用 rwx 表示以外,還可以使用 八進位數值做表示

rwx 各別八進位值

權限代碼 權限數值
r 4
w 2
x 1
- 0

rwx 權限組合

八進位 每組權限 二進位(r+w+x)
7 rwx 111(4+2+1)
6 rw- 110(4+2+0)
5 r-x 101(4+0+1)
4 r-- 100(4+0+0)
3 -wx 011(0+2+1)
2 -w- 010(0+2+0)
1 --x 001(0+0+1)
0 --- 000(0+0+0)

以上方tmp 目錄的權限 drwxr-xr-x ,轉換數值為 755

以數值變更權限

tmp 要完全公開,擁有者、群組、其他人都擁有 讀、寫、執行的權限

[root@localhost ~]# chmod 777 tmp

權限就會變更 drwxrwxrwx

drwxrwxrwx. 3 root root   51  9月 25 23:22 tmp

權限三組

代碼 類型 對象
u user 檔案擁有者(第一組)
g group 檔案擁有者群組(第二組)
o other 其他使用者(第三組)
a all 全部使用者(以上三組)

符號表

符號 說明
+ 增加權限
- 減少權限
= 重新定義權限
, 權限一起處理

※ 以下為獨立範例
其他使用者 去除 寫入權限

[root@localhost ~]# chmod o-w tmp

全部人使用者 去除 執行權限

[root@localhost ~]# chmod a-x tmp

or

[root@localhost ~]# chmod -x tmp

擁有者群組+其他使用者 去除 寫入權限

[root@localhost ~]# chmod go-w tmp

擁有者權限 改為可讀可寫

[root@localhost ~]# chmod u=rw tmp

擁有者群組 增加讀取權限,其他使用者 去除 讀取+執行權限

[root@localhost ~]# chmod u+r,o-rx tmp

變更檔案擁有者【chown】

檔案或目錄的擁有者可以使用 chown 變更為其他使用者帳號。

chown 指令意思是 change owner。

這個指令其實對我來說很好用,因為我有時候在蓋資料庫的時候,原本解壓縮的擁有者跟群組都為 mysql,可是忘記在哪個環節錯了,兩者都變成 root

※ 更改擁有者

[root@localhost ~]# chown [變更後的擁有者帳號] [檔案或目錄]

※ 更改群組

[root@localhost ~]# chown [變更後的群組] [檔案或目錄]

※ 更改擁有者+群組

[root@localhost ~]# chown [變更後的擁有者帳號]:[變更後的群組] [檔案或目錄]
or
[root@localhost ~]# chown [變更後的擁有者帳號].[變更後的群組] [檔案或目錄]

testdb 目錄「擁有者」改為 mysql

[root@localhost ~]# chown mysql testdb

testdb 目錄「群組」改為 mysql

[root@localhost ~]# chown .mysql testdb

testdb 目錄「擁有者」改為 mysql +「群組」改為mysql

[root@localhost ~]# chown mysql:mysql testdb

變更檔案群組【chgrp】

變更檔案群組,雖然可以使用 chown指令 做變更,但還是要了解一下 chgrp 這個指令。

chgrp 指令意思是 change group。

[root@localhost ~]# chgrp [變更後的群組] [檔案或目錄]

testdb 目錄「群組」改為 mysql

[root@localhost ~]# chgrp mysql testdb

上一篇
Day 12 使用者帳號管理
下一篇
Day 14 程序管理(1)
系列文
如何使用 Linux 從土裡到冒出頭來30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言