1,467 瀏覽數

權限的基礎設定

檔案/目錄的使用權限設定:
Step0:前言
Step 1 :權限的第一個位置所代表的意義
Step 2:Owner 的權限
Step 3. Group 的權限
Step 4.Other 的權限

Step0:前言
Linux 系統下的檔案有所謂的權限設定,系統會依據這些權限的設定來決定使用者是否能讀取,寫入或執行指令 .
#ls -l (ls "list directory contents",-l "use a long listing format")就可以看到檔案權限目前是如何設定的.

[root@benjr ~]# ls -l
-rw-r--r--  1  root   root    1120  Feb  15  01:58  testfile

以上欄位所代表的意思如下
-rw-r–r–         1           root           root          1120  Feb  15  01:58   testfile
[檔案屬性][檔案數][擁有者][所有者群組][大小][    建檔日期   ][檔名]

這邊和檔案權限有關的是[檔案屬性][擁有者][所有者群組]
以上 -rw-r–r– [檔案屬性]的每一個位置都有他所代表的意思,每三個為一組,每一組皆為 rwx (以上的範例 rw- 為一組,r– 為另一組 ,r–為最後一組,第一個 "-" 有其他意義,最後面會再介紹),因為每一組皆代表不同人所有擁有的權限,至於要怎麼看請看下表所示.

r w  x   r – –     r – –
——-   ——-   ——-
owner  Group  Other

第一組 Owner 代表的權限是針對自己所擁有的權限,也又是剛剛看到的[擁有者].
第二組 Group代表同一群組的使用者所擁有的權限,也又是剛剛看到的[所有者群組].
第三組 Other 代表[其他的使用者]所擁有的權限.

而權限可以區分為 rwx ,而當我們在看 rwx 時檔案和目錄是具有不同的意義
I. 對檔案而言:
可讀(r):可以cat檔案內容
可寫(w):可以cp,move檔案的內容
可執行(x):可以執行檔案
II. 對目錄而言:
可讀(r):對目錄而言單獨有此權限是沒有用的,還要同時有x的權限.才能有 ls 讀取目錄的內容.
可寫(w): 對目錄而言單獨有此權限是沒有用的,還要同時有x的權限.才能有cp,move,touch目錄內的檔案.
note: 當目錄擁有 w 的權限而目錄下的檔案並沒有設定 w 的權限,此時檔案還是可以編輯及刪除.
可執行(x): 具有 cd (change directory)進入目錄的權限
 
note:當檔案的owner,group為同一人時,權限是看owner的.

Step 1 :權限的第一個位置所代表的意義
-:一般檔案
d:目錄
l:sofelink 捷徑,關於 link 請參考硬式與軟式連結
b:block device 儲存裝置
c:charactor device 字元輸出/入裝置

[root@benjr ~]# ls -l
total 96
-rwx------    1 root     root         1047 Mar 19 21:12 anaconda-ks.cfg
drwx------    2 root     root         4096 Mar 19 21:20 Desktop
lrwxrwxrwx    1 root     root           11 Aug 16 21:33 install.log.link -> install.log

可以看到上面有三種型態:

[root@benjr ~]# ll /dev/input/mouse
crw-------    1 root     root      10, 149 Sep 15  2003 /dev/input/mouse

可以看到 mouse 屬於 c:charactor device 字元輸出/入裝置,因為當 mouse 再傳送資料時是一個個的字元來傳送.

[root@benjr dev]# ls -l  /dev/hda
brw-rw----    1 root     disk       3,   0 Sep 15  2003 hda

可以看到 Hard Disk 屬於 b:block device 儲存裝置,因為當 Hard Disk 再傳送資料時是區塊來傳送.
 
Step 2:Owner 的權限
Owner 代表的權限是針對自己所擁有的權限
接下來這些範例說明,使用到目錄 /fs1 和 user1 user2 user3 的使用者以及 group1 group2 群組,請用下面的方式來建立
root 登入系統

[root@benjr ~]# adduser user1
[root@benjr ~]# adduser user2
[root@benjr ~]# adduser user3
[root@benjr ~]# passwd user1
[root@benjr ~]# passwd user2
[root@benjr ~]# passwd user3

設定群組

[root@benjr ~]# groupadd group1
[root@benjr ~]# groupadd group2
[root@benjr ~]# vi /etc/group
..................
group1:x:503:user1,user2
group2:x:504:user3

user1 user2 屬於 group1 群組
user3 屬於 group2 群組
[root@unsvr root]#mkdir /fs1
[root@unsvr root]#chmod -R 777 /fs1
讓所有的使用者都能新增檔案進入 /fs1 目錄的權限
ex:Owner 所擁有的權限

user1 登入系統

[user1@benjr user1]# cd  /fs1
[user1@benjr fs1]# echo "Create by user1" > user1.txt
[user1@benjr fs1]# chmod go-rwx user1.txt
[user1@benjr fs1]# ll user1.txt
-rw-------    1 user1 user1    7  Feb  17 13:31 user1.txt

只有 user1 有權限讀寫這個檔案.

[user1@benjr fs1]# echo "Modify by user1" >> user1.txt
[user1@benjr fs1]# cat user1.txt
Create by user1
Modify by user1

user1 也可以修改 user1.txt 檔案了

發表迴響