伺服器建置實務上課補充教材


unit 02:Linux 的基礎操作實務
權限的意義與管理、帳號的建置與管理
  1. Linux 系統的權限概念
    1. 在 Linux 底下的任何一個檔名 (目錄或一般檔案) 都是一個物件,這個物件誰可以使用,就是重點。 所以,權限的目的,就是在規範:『那一個檔案是誰可以讀取、寫入與執行』的概念!
    2. 使用者、群組與其他人
      • 就跟 FB 一樣,你可以將一個訊息 (檔名) 分享給某個人 (使用者) 或在某個社團 (群組) 當中發布,而不是某個人也不是加入某社團的其他帳號, 當然就是其他人!
      • 因此,你可以想像,所謂的群組就是 FB 成立的社團,目的不在於『社團』而是『加入這個社團的帳號可以做些什麼』, 重點還是在『帳號』上面喔!群組只是讓我們管理員可以快速的做某些檔案權限的設計而已。
      • 總之,針對一個檔案來說,這個檔案會有 (1)所屬帳號 (2)所屬群組與 (3)其他人 的三種身份的權限,使用英文來表示就是:
        • u: user, 使用者
        • g: group, 群組
        • o: other, 其他人
    3. 哪些權限?
      • 就是針對硬碟上面的資料啊!所以通常權限就會有:(1)讀取、 (2)寫入、(3)執行,使用英文來表示就是:
        • r: read, 讀取
        • w: write, 寫入
        • x: executable, 可執行
    4. 所以,身份與權限的結果就是:共有三組人,每組人有三個可能的權限,因此就會有 9 個權限 (3X3 的緣故), 使用簡單的 rwx 來做解釋的話,就會變成:
      • 全部的權限都存在:   rwxrwxrwx
      • 全部的權限都不存在: ---------
      如果用圖示的方法來看,有點像這樣:


    5. 因為有三個人,每個人有 rwx ,如果 r 是 4 分, w 是 2 分,x 是 1 分時,那麼每個身份會有一個分數, 最低分就是 0 ,最高分就是 7,因此,依據使用者、群組、其他人的權限排列,最低分為 000,最高分為 777 這樣。
      • 全部的權限都存在:   rwxrwxrwx: 777
      • 全部的權限都不存在: ---------: 000
      • 某些權限存在的情況: rwxr-x---: 750
    6. 如果要查看某個人加入的群組,就可以使用『 id 帳號 』來查看,例如『 id student 』或『 id root 』之類的方式。
      [student@localhost ~]$ id student
      [student@localhost ~]$ id root
      
    7. 練習:
      例題:完成底下的實做結果說明:
      • 查看一下 /etc/hosts 這個檔名,之後回答 (1)檔案屬於誰的? (2)檔案屬於哪個群組 (3)檔案的權限分配是幾分?
      • 承上,說明 bin 這個人對於 /etc/host 來說,具有什麼權限?
      • 查看一下 /var/spool/mail 這個檔名,之後回答 (1)檔案屬於誰的? (2)檔案屬於哪個群組 (3)檔案的權限分配是幾分?
      • 承上,說明 mail 這個人對於 /var/spool/mail 來說,他具有什麼權限?
      • 承上,說明 student 這個人對於 /var/spool/mail 來說,他具有什麼權限?
  2. 權限的管理
    1. 修改檔案的所屬用戶,使用『 chown 帳號名稱 檔名 』 來處理
      [root@localhost ~]# touch test       # 建立一個名為 test 的空檔案
      [root@localhost ~]# ll test          # 檢查一下 test 所屬帳號與群組及權限
      [root@localhost ~]# id bin           # 看看有沒有 bin 這個帳號的存在,若沒有就會顯示無帳號
      [root@localhost ~]# chown bin test   # 更改檔案所屬人
      [root@localhost ~]# ll test          # 看看有沒有更改成功
      
    2. 修改檔案的所屬群組,使用『 chgrp 群組名稱 檔名 』 來處理
      [root@localhost ~]# chgrp sshd test  # 群組直接去設定,若無群組就會回報錯誤
      [root@localhost ~]# ll test         # 再次查看有沒有成功
      
    3. 修改檔案的權限,使用『 chmod 權限分數 檔名 』 來處理
      [root@localhost ~]# chmod 644 test
      [root@localhost ~]# ll test         # 看看有沒有成為 -rw-r--r-- 的狀態?
      
    4. 切換成為 root 之後進行如下的練習,練習完畢再轉回來:
      • 建立 /dev/shm/test 目錄,並且前往該目錄成為工作目錄
      • 將 /etc/hosts 複製到該目錄下,並且更名為 myhosts
      • 讓 myhosts 具有底下的權限:
        • bin 為擁有者,且具有 rwx 的權限
        • mail 為擁有群組,且具有 rx 的權限
        • 其他人只有讀取的權限
      • 每個步驟完成後,請立即查閱才好!
  3. 帳號的建立與管理
    1. 當我們登入系統時,會輸入的資訊有帳號與密碼,因此,建立新的帳號也一樣,需要的就是帳號名稱與密碼資料。 此外,當帳號建立後,該帳號會主動的在 /home 底下建立一個相同帳號名稱的目錄,作為該帳號的家目錄。
    2. 帳號的管理方式:記得,要有帳號與密碼喔!
      • 帳號:帳號的建立使用 useradd 來處理,請先 useradd --help 查看可以加的選項,之後使用『 useradd 帳號名稱 』
      • 密碼:密碼的給予使用 passwd 來處理,直接『 passwd 帳號名稱 』即可
      [root@localhost ~]# useradd 帳號名稱
      [root@localhost ~]# passwd 帳號名稱
      
    3. 帳號的刪除方式:記得使用 userdel -r 這個 -r 的選項才行!,刪除直接用『 userdel -r 帳號名稱』 即可。 但是不要隨意刪除帳號,除非你知道自己是在幹麻,否則系統預設的帳號千萬不要惡搞!
      [root@localhost ~]# userdel -r 帳號名稱
      
    4. 群組管理:加入使用者到某個群組或移除的方式:
      • 增加群組使用:『 groupadd 群組名稱 』
      • 將某個用戶加進這個群組:『 usermod -a -G 群組名稱 帳號名稱 』,完成後使用『 id 帳號名稱 』檢查即可
      [root@localhost ~]# groupadd  群組名稱
      [root@localhost ~]# usermod -a -G 群組名稱 帳號名稱
      [root@localhost ~]# id 帳號名稱                     # 重點在觀察有沒有更改成功
      
    5. 練習:
      • 建立一個名為 alex 的帳號,密碼請設定為 'GoGo123_' 這樣 (英文大小寫、數字、符號搭配)
      • 建立一個名為 mygroup 的群組,並且將 alex 加入到這個群組當中。
      • 按下 [ctrl]+[alt]+[F2] 來到文字畫面,使用 alex 登入看看
      • 登入後,按下 w, whoami, pwd 看看相關的帳號登入與訊息
      • 最終請登出 alex 用戶
      • 按下 [ctrl]+[alt]+[F1] 回到原本的圖形畫面。
  4. 今日練習:記得使用 root 的權限來處理
    1. 建立 myuser1, myuser2, myuser3 三個帳號,且三個帳號的密碼都是 iamuser1 這樣
    2. 將這三個帳號加入 mygroup 群組的支援當中
    3. 在 /srv 底下建立名為 project 的目錄
    4. 該目錄屬於 mygroup 群組,且 mygroup 可以具有 rwx 的完整權限,其他人則沒有任何權限,無法進入該目錄!
    5. 在 tty2 嘗試使用 myuser1 進入 /srv/project ,並複製 /etc/hosts 成為 /srv/project/myuser1
    6. 在 tty3 嘗試使用 student 進入 /srv/project,看看結果是如何?
    7. 請按右上角的設定,去啟動網路
    8. 使用 ifconfig 這個指令,找出你的 IP 後,告訴老師你的 IP 號碼 (例如 172.16.8.8),老師會線上檢查你是否完成作業了!
Top
HOME