檔案系統與權限
安全模型
- 使用users and groups控制檔案存取
- 使用login管控使用者
- 每個檔案由user和group的擁有權限所組成
- 每個程序只能處理符合自己權限的檔案
[root@localhost ~]# ls -l 總計 68 drwxr-xr-x 2 root root 4096 5月 21 00:09 -rw------- 1 root root 958 3月 26 08:56 anaconda-ks.cfg drwxr-xr-x 3 root root 4096 5月 21 00:43 backups -rw-r--r-- 1 root root 31224 3月 26 08:56 install.log -rw-r--r-- 1 root root 3510 3月 26 08:50 install.log.syslog
users
- 每個使用者都有一個UID,uid=0為root
- 使用者的UID存在/etc/passwd
- 使用者通常被賦予一個home目錄
- user只能存取屬於自己的檔案
groups
- users都有一個groups
- 每個group都有一個gid
- GID存在/etc/group
- 每個使用者擁有自己的私人群組,也可以加入他人的群組。
- Primary Group
- 使用者能夠分享檔案給同群組的人。
Linux 檔案安全
- 檔案都擁有a UID 及 a GID
- 每個程序可以以 UID 或是 一個或多個 GID 來執行,通常配合執行程序的使用者身份來決定
- 如果UID符合,則user權限可以執行。
- 如果GID符合,則group權限可以執行。
- 如果都不符合,則不可以執行。(屬於other權限)
權限型態
- r:可讀檔案or列出目錄內容
- w:可寫入檔案or建立移除檔案
- x:可執行檔案or進入檔案目錄
- -:沒有權限
[lcc09@localhost ~]$ ls -la .....(略)... -rw-r--r-- 1 lcc09 users 124 5月 21 00:36 .bashrc drwxr-xr-x 5 lcc09 users 4096 5月 21 00:38 Projects [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ] [ 屬性 ][連結][擁有者][群組][檔案容量][ 修改日期 ][ 檔名 ]
- 第一個欄位[1]
-rw-r--r-- [A][B][C][D]
- [A]屬性表這個檔案是「目錄、檔案或連結檔」
- [d]則是目錄
- [-]則是檔案
- [l]則表示為連結檔(link file)
- [b]則表示為裝置檔裡面的可供儲存的周邊設備
- [c]則表示為裝置檔裡面的序列埠設備,ex鍵盤、滑鼠
- [B][C][D]為三個參數的組合。「r」代表可讀、「w」代表可寫、「x」代表可執行。
- [B]為「擁有人的權限」
- [C]為「同群組的權限」
- [D]為「其他的權限」
- 所以底下這行的意思為:
- 此「Projects」唯一個目錄。
- 「lcc09」這個使用者,可以讀取(r)可以寫入(w)可以進入目錄(x)。
- 「users」這個群組,可以讀取(r)可以進入目錄(x)。
- 除了這些以的其他人,可以讀取(r)可以進入目錄(x)。
drwxr-xr-x 5 lcc09 users 4096 5月 21 00:38 Projects
改變檔案擁有者權限
- 只有 root 可以更改檔案及群組的擁有者
- 使用者擁有者(User-Ownership)權限可以使用 chown 指令修改:
- chown [-R] 使用者名稱 檔案|目錄
- 群組擁有者(Group-Ownership)權限可以使用 chgrp 指令修改:
- chgrp [-R] 群組名稱 檔案|目錄
- chown指令示範
[root@localhost ~]# ls install.log -l -rw-r--r-- 1 root root 31224 3月 26 08:56 install.log [root@localhost ~]# chown root.users install.log [root@localhost ~]# ls install.log -l -rw-r--r-- 1 root users 31224 3月 26 08:56 install.log
- chgrp指令示範
[root@localhost ~]# chgrp root install.log [root@localhost ~]# ls install.log -l -rw-r--r-- 1 root root 31224 3月 26 08:56 install.log
改變權限(符號方法)
- 基本上chmod指令可以透過符號表示的方式來執行達到改變我們要的屬性權限。
誰 | 操作 | 權限 |
---|---|---|
u 擁有檔案的使用者(User) g 擁有檔案的群組(Group) o 其他使用者 a 以上三種類別 | + 增加權限 - 移除權限 = 等於此權限 | r 讀取 w 寫入 x 可執行或可進入目錄 s Set user ID bit or group t Sticky bit(目錄使用) |
- 更詳細的訊息請參考 「man 1p chmod 」or「man 1 chmod」
- chmod 命令執行範例說明:
- 「chmod u+x files」這檔案的owner擁有執行(x)的權限,而讀取(r)及寫入(w)權限保留不變。
- 「chmod g=rw files」檔案的group設定為可讀取(r)、可寫入(w)但不可執行(x),不管之前的權限為何都會被移除。
- 「chmod u=rwx files」檔案的owner取得可讀取(r)、可寫入(w)即可執行的權限。
- 「chmod u=rwx,g=rw,o=r files」檔案的owner取得可讀取(r)、可寫入(w)即可執行的權限,檔案的group設定為可讀取(r)、可寫入(w)但不可執行(x),其他使用者取得可以讀取(r)的權限。
- 「chmod +x files」所有的users(owner, group, and others) 取得可執行(x)的權限。
- chmod執行範例
[root@localhost ~]# ls install.log -l -rwxrwxrwx 1 root root 31224 3月 26 08:56 install.log [root@localhost ~]# chmod u=rwx,g=rw,o=r install.log [root@localhost ~]# ls install.log -l -rwxrw-r-- 1 root root 31224 3月 26 08:56 install.log
改變權限(數字方法)
- chmod的權限也可以使用數字來表達,其中代表如下:
- Read: 4
- Write: 2
- Execute: 1
- 如要設定一個檔案權限為:「rwxrw-r--」則為「764」
-rwx rw- r-- 1 root root 31224 3月 26 08:56 install.log 421 420 400 7 6 4
- chmod數字權限表達執行範例:
[root@localhost ~]# ls install.log -l -rwxrwxrwx 1 root root 31224 3月 26 08:56 install.log [root@localhost ~]# chmod 764 install.log [root@localhost ~]# ls install.log -l -rwxrw-r-- 1 root root 31224 3月 26 08:56 install.log
改變權限(Nautilus)
- 圖形介面的改變方式,就是找到檔案後,滑鼠右鍵選擇屬性功能,就會出現如下列的圖面。
- 勾選你要的即可改變。
沒有留言:
張貼留言