在一部檔案伺服器來說,使用者都可以隨便就進去"觀看",而且都不設防。這對於不重要的檔案來說是沒什麼大礙,但是這是一家軟體公司,假如 R&D 部門的工程師把 source code 放到自己的家目錄,那麼別人不是很容易就可以取得了嗎?這是多麼恐怖的一件事! 在這一篇文章,我將會介紹 Linux 系統的檔案權限設定,讓大家知道如何以及為何要這麼做。當然,我也會簡單的提到如何新增使用者和管理者用者。
下面,我會以我自己的親身經歷在說明這篇文章。
最近有又了新的員工進來了,Steven 將為新員工建立新的帳號和可使用的目錄權限。後來 Steven 想了一下,為什麼不能一次管理眾多使用者,而不須為使用者一個一個設定他們的權限或事物,舉個例子來說好了,之前 Steven 在使用 Quota 的限定磁碟配額的時候,好像要一個一個設定,雖然可以以某位使用者當範例而套用到別的使用者上,但這樣似乎不是很理想。後來 Steven 想到不如使用群組的觀念,把同一部門的員工都設成同一個群組,那麼要管理起來就方便多了!
Service 部門有位 Sandy 的新職員進來,Steven 在之前就想到要為新進來的職員做群組的規劃,比如客服部的員工就統一在 service 群組,會計部門就統一在 account 群組,開發部門就統一在 rd 群組,所以為了以後的管理方面,於是就要先建立群組之後再對要新增的使用者做群組的設定,如此一來以後就可以一次對一個群組做大批的設定而不用一個一個慢慢設定了!
以下是 Steven 對於新的政策規劃:
要新增使用者很簡單,只要下 useradd [USER] 就可以新增了,如果要為使用者設定密碼,那麼就下達 passwd [USER] 就可以了!但是事情還沒這麼簡單,因為目前的目標是要把使用者分類到不同的群組中,所以就要先做新增群組的動作了。
新增群組很簡單,只要下命令 groupadd 就好了:
新增 service 群組
不同群組要分在不同目錄這是什麼意思呢?現在試想看看因為 Linux 在建立新使用者時,預設使用者的家目錄是放在 /home 目錄裡頭,如果現在每位使用者都放在 /home 目錄裡頭,那麼到時候有什麼更改,比如說要把 service 部門每位使用者的家目錄都改到不同的家目錄,那麼到時候就會很難找了!
舉個例子來說,目前因為有 service、account 和 rd 三個部門,所以 Steven 就想說把 service 成員的家目錄放到 /home/service 之下;而 account 成員放到 /home/account 下;同理 rd 部門就放在 /home/rd 目錄下,如此如果未來有什麼重大改變(比方說各群組的家目錄改變)就會顯得簡單得多。
建立 sa、account 和 rd 三部們的目錄
經過以往的經驗,馬上就知道 useradd 這個指令就是新增一個帳號。不過現在想一想,前面又說過 Linux 使用者在建立新使用者時,預設使用者的家目錄都是在 /home,那麼如果要在建立帳號時就馬上指定該帳號的家目錄要怎麼辦呢?還有要如何指定群組?這些問題其實在 useradd 就可以完成了!
[root@test sa]# cd /home/service [root@test sa]# ls -l total 4 drwx------ 3 sandy service 4096 May 4 21:02 sandy [root@test sa]#
不論你在任何路徑下,一只要下達 ls -l 就應該會看到下面類似的畫面:
steven $ ls -l total 8312 -rw-r--r-- 1 root root 5165 May 23 12:26 10_misc.cf -rw-r--r-- 1 steven steven 5150 May 23 12:28 10_misc.cff drwx------ 2 steven steven 4096 Mar 10 02:11 Mail -rw-rw-r-- 1 steven steven 8447605 Apr 13 15:06 firefox-1.5.0.2.tar.gz drwx------ 3 steven steven 4096 Mar 9 10:18 mail -rw------- 1 steven steven 8208 Mar 10 02:18 mbox -rw-r--r-- 1 steven steven 702 May 25 14:23 web-index.htm drwxrwxr-x 21 steven steven 4096 May 25 22:06 www steven $
符號: _d_ _r_ _w_ _x_ _r_ _w_ _x_ _r_ _w_ _x_ drwxrwxrwx 數字: 4 2 1 4 2 1 4 2 1 7 7 7 類別: \__USER___/ \__GROUP__/ \__OTHER__/ U G O一個檔案或目錄有十個字符,去掉第一個字符外,可分為三個字符一組,分別為 User (使用者本身)、Group (群組)、Other (其它),而每一組,又分別以 r (read)、w (write)、x (excute) 做為權限控制,下面,會舉列說明: