440 likes | 578 Views
課程參與度之評估方式. 上課時必須專心聽講,跟上進度,參與討論 扣 分項目 玩線上遊戲一次扣 1 分 玩手機一次扣 1 分 睡覺一次扣 1 分 聊天一次扣 1 分 無法回答老師提出的問題一次扣 1 分 加分項目 主動回答老師的問題一次加 2 分 找出老師程式中的錯誤一次加 1 分 修正老師程式中的錯誤一次加 4 分. 作業系統實務 Linux CH07 使用者帳號管理. 鄧姚文. 大綱. 了解 Linux 的帳號與群組 新增使用者帳號與群組 刪除帳號與群組 驗證帳號建立是否正確 認識檔案與目錄的權限. 使用者帳號管理.
E N D
課程參與度之評估方式 • 上課時必須專心聽講,跟上進度,參與討論 • 扣分項目 • 玩線上遊戲一次扣1分 • 玩手機一次扣1分 • 睡覺一次扣1分 • 聊天一次扣1分 • 無法回答老師提出的問題一次扣1分 • 加分項目 • 主動回答老師的問題一次加2分 • 找出老師程式中的錯誤一次加1分 • 修正老師程式中的錯誤一次加4分
大綱 了解Linux的帳號與群組 新增使用者帳號與群組 刪除帳號與群組 驗證帳號建立是否正確 認識檔案與目錄的權限
使用者帳號管理 多人使用環境是Linux的主要特色 為多個使用者建立多個帳號(User) 群組的設計,可讓系統管理者為有相同特性的使用者訂定更彈性的管理模式
帳號與群組相關指令 • 變換帳號群組 • 變換帳號:su • 變換群組:newgrp • 群組 • 建立群組:groupadd • 群組密碼:gpasswd • 修改群組:groupmod • 刪除群組:groupdel • 檔案: • /etc/group • /etc/gshadow • 帳號 • 建立帳號:useradd • 帳號密碼:passwd • 修改帳號:usermod • 刪除帳號:userdel • 檔案: • /etc/passwd • /etc/shadow • 帳號資訊: • id • finger
群組 • 一個群組皆對應一個編號,稱為GID(Group ID) • 每個群組的GID皆不相同 • 群組可以設定密碼 • 以 newgrp變換群組時須驗證密碼
練習 • 建立群組 engineer • 將 user1 加入 engineer 群組 • groupmod -A user1 engineer • 以 id 檢查 user1 的帳號資訊 • 以 user1 的身份建立一個檔案 file1 • 令 user1 變換群組為 engineer,然後建立檔案 file2 • 觀察 file1 和 file2 的差異 • 將 engineer 群組的密碼設定成 zaq1@WSX • 重複前三步驟 • 觀察 /etc/group 和 /etc/gshadow
使用者帳號 • 每一個使用者帳號有一個唯一的號碼 • UID(User ID) • 家目錄 Home Directory • 屬於使用者帳號的私秘空間 • 殼層 Shell • 使用者熟悉的指令介面 • 最原始最通用:Bourne Shell • C語言是母語?C Shell • 系統中可用的殼層: /etc/shells
7-2 新增使用者帳號 • useradd指令背後 • 為這帳號建立同名的群組 • 系統也為每一個群組指定另一套不重覆的群組編號,稱為Group ID • 帳號資料以純文字方式儲存在/etc/passwd • tom:x:502:503::/home/tom:/bin/bash • 系統會為每個帳號指派一個不重覆的編號,稱為User ID • 新增帳號後,皆會自動在/home目錄中建立一個目錄 • 系統的/etc/skel/目錄下的所有檔案都會被複製一份至帳號的家目錄中 • 預設值: /etc/default/useradd
新增使用者帳號 • useradd指令規格 • useradd [選項] 帳號名稱
查詢使用者相關資訊 • 利用id指令,在id指令後加上帳號名稱 • [root@fc ~]# id mike • uid=501(mike) gid=501(mike) groups=501(mike)
刪除使用者帳號 • 利用指令userdel(User Delete) • 將帳號資訊從系統設定檔中移除(但不移除帳號所屬群組) • userdel指令空白後,加上帳號名稱 • [root@mylinux ~]# userdel mike • [root@mylinux ~]# id mike • id: mike:此用戶不存在 • 在刪除帳號時,一併刪除該帳號的家目錄所有檔案 • userdel -r mike
變更使用者帳號 usermod指令是用來修改使用者帳號
變更使用者帳號 • 變更帳號資訊 • chfn • 修改 finger 內顯示的資訊 • chsh • 更換殼層
新增使用者帳號 • 查詢使用者的群組 • groups指令可用來查詢使用者的群組資訊 • 想知道使用者tom所屬的群組有那些 • [root@fc ~]# groups tom • tom : rd manager • (列出tom的群組為rd,另一群組為manager)
暫停使用 • 讓帳號暫停使用,使其無法登入 : • 鎖住帳號:passwd -l 或 usermod-L • 修改/etc/passwd中帳號的密碼欄位 • 利用chsh改變該帳號的shell • 鎖住群組 • 指令: gpasswd -l
練習 • 建立新帳號 user2 預設群組為 engineer • 將 user2 加入下列群組: • cdrom、adm • 以 id 檢查結果 • 如何刪除群組 engineer?
認識檔案與目錄的權限 • 每個檔案與目錄都擁有各自的權限設定 • 權限的代表的意義 • 使用ls -l指令來觀察輸出結果 • [root@fc ~]# ls -l myfile • -rwxrwxr-- 1 root root 0 2009-02-19 21:09 myfile
認識檔案與目錄的權限 • 權限字母有r、w、x與-(減號) • r:可讀,可使用如cat編輯器讀取檔案內容,但無法修改。 • w:可寫入,也代表可以修改、新增資料或刪除檔案。 • x:此檔案可被執行 • 減號-:減號代表不允許該權限
認識檔案與目錄的權限 • 變更檔案權限chmod • 使用chmod指令來達成 • chmod 權限表示法 檔案(對象) • 用三組八進位的方式表示 • 語意描述法
7-3 認識檔案與目錄的權限 • 權限表示法 • 八進位的方式,r代表4、w代表2、x代表1
認識檔案與目錄的權限 • 解讀權限 • 644代表rw-r--r--,擁有者可讀寫、群組可讀、其他人可讀 • 755代表rwxr-xr-x,擁有者可讀寫可執行、群組可讀可執行、其他人可讀可執行。 • 660代表rw-rw----,擁有者可讀寫、群組可讀寫、其他人無權限 • 754代表rwxr-xr--,擁有者可讀寫可執行、群組可讀可執行、其他人可讀。
認識檔案與目錄的權限 • 語意描述法 • 使用幾個字母、加減號與等號組成很方便使用的語意描述法,字母u、g、o、a • u代表user也就是該檔案的擁有者(權限第一組) • g 代表group,該檔案的群組(權限第二組) • o代表other,除了擁有者與群組人員外的其他人(權限第三組) • a代表all,代表所有人,也可說是上述ugo的集合
認識檔案與目錄的權限 語意描述法
認識檔案與目錄的權限 • 改變權限 • 語法: chmod 755 檔案 • 為擁有者(u)加上可執行權限(x) • chmod u+x 檔案 • 一次為擁有者(u)與群組(g)加上可讀(r)與可執行(x)權限 • chmod ug+rx 檔案 • 為所有人加上r權限 • chmod a+r 檔案
認識檔案與目錄的權限 • 目錄的權限 • r: • 代表可以列出該目錄的檔案清單,可以利用ls指令列出該目錄的內容。 • w: • 代表至該目錄中的檔案與目錄都可以異動,如寫入檔案、建立、刪除、與更名檔案與目錄。 • x: • 代表可進入該目錄中,也就是使用cd指令進入該目錄。
檔案權限 Permission 除去其他帳號(other)全部的權限:$ chmod 770 a.out或$ chmod o-r,o-w,o-x a.out 除去同群組(group)寫與執行的權限:$ chmod 740 a.out或$ chmod g-w,g-x a.out
檔案權限 Permission • Change mode變更模式:chmod • -v:verbose 列出詳細訊息 • -R:recursive, 遞迴,連同子目錄與子目錄內的檔案與子目錄 • u: the owner 擁有者(user) • g: users in the group 群組(group) • o: users not in group 其他(others) • a: all users 全部 • r: read 讀 • w: write 寫 • x: execute (or access for directories) 執行 • s: set user or group ID on execution,sticky 黏 • t: save program text on swap device,temporary 暫存 chmod [ugoa...][[+-=][rwxst...]...] files
認識檔案與目錄的權限 • 變更檔案擁有者chown • 使用chown(change owner)將檔案的擁有權變更為其他使用者 • 指令用法: • chown 使用者帳號 檔案或目錄 • 亦可以一併更變擁有群組 • chown 使用者帳號.群組 檔案或目錄 • chown 使用者帳號:群組 檔案或目錄
變更檔案與目錄擁有者一chown • Change Owner 變更使用者:chown • -R:recursive, 遞迴 • -v:verbose, explain what is being done • Change Group 變更群組:chgrp • -R:recursive, operate on files and directories recursively • -v:verbose, explain what is being done
認識檔案與目錄的權限 • 變更檔案所屬群組chgrp • 使用chgrp(change group)將檔案的擁有權變更為其他使用者 • 指令用法: • chgrp 群組名稱 檔案或目錄 • 利用chown即可變更檔案的所屬群組,不用多背一個chgrp指令
檢視 ls -l 的輸出 符號連結 Symbolic Link 擁有者 群組 目錄 chmod +t 或 chmod 1777的結果,任何人都可以在目錄內建立檔案,只有檔案擁有者可以刪除 第三組 rwx 是其他帳號(others)的權限 開暫存檔專用的目錄 第二組 rwx 是同群組帳號(group)的權限 第一組 rwx 是檔案擁有者的權限
SetUID, SetGID, Sticky bit • 當一個檔案具有 SUID 的時候,同時 other 的群組具有可執行的權限,那麼當 others 群組執行該程式的時候將擁有該檔案的 owner 的權限 • 例如: /usr/bin/passwd • 具有 sticky bit 屬性的目錄,其中的檔案或目錄只有檔案擁有者及 root 才有權力刪除 • 例如: /tmp
保留群組設定 chmod 2770 讓同群組的帳號都有完整的權限 在目錄內建立檔案或目錄時,擁有者是建立者本身,但繼承頂層目錄的群組 確保同一群組的使用者可以互相存取對方的檔案與目錄
指定檔案的預設權限遮罩一umask • 新建檔案的預設權限是 0666 • 新建目錄的預設權限是 0777 • 若 umask 是 0002 • 新建檔案權限 0666 – 0002 = 0664-rw-rw-r-- • 新建目錄權限 0777 – 0002 = 0775drwxrwxr-x
練習 建立兩個帳號 student 和 student2 透過練習體會群組權限之設定與使用方式 以下列指令轉換身份成為管理員$ su -(輸入 root 密碼) 以下列指令建立帳號 student(請注意,此時不僅建立 student 帳號,也建立 student 群組,建議觀察 /etc/group 和 /etc/passwd)# adduser student
練習 以下列指令建立帳號 student2,並且令 student2 加入 student 群組# adduser -G student student2 以下列指令建立目錄# mkdir /home/work 以下列指令變更目錄擁有者# chown student /home/work# chgrp student /home/work
練習(續) 以下列指令變更目錄權限# chmod 770 /home/work 以下列指令轉換身分成為 student# su - student 以 student 的身分執行下列指令$ cd /home/work$ dd if=/dev/zero of=test1 count=1024$ls -al
練習(續) 以下列指令轉換身份成為管理員$ su - 以下列指令轉換身分成為 student2# su - student2 以 student2 的身分執行下列指令$ cd /home/work$ dd if=/dev/zero of=test2 count=1024$ ls -al 紀錄畫面顯示 ls -al 的內容
練習(續) • 以 student2 的身分執行下列指令刪除檔案 test1$ rm test1 • 問題一:刪除成功否? • 為什麼 student2 可以刪除 student 的檔案?
練習(續) • 以下列指令轉換身份成為管理員$ su - • 以下列指令變更目錄權限# chmod 2770 /home/work# chmod +t /home/work • 以下列指令轉換身分成為 student# su - student • 以 student 的身分執行下列指令$ cd /home/work$ dd if=/dev/zero of=test1 count=1024$ ls -al
練習(續) 以下列指令轉換身份成為管理員$ su - 以下列指令轉換身分成為 student2# su - student2 以 student2 的身分執行下列指令$ cd /home/work$ dd if=/dev/zero of=test3 count=1024$ ls -al 紀錄畫面顯示 ls -al 的內容
練習(續) 以 student2 的身分執行下列指令刪除檔案 test1$ rm test1 問題二:刪除成功否? 為什麼? 問題三:student2 兩次以 dd 產生的檔案(test2 和test3),群組是否相同? 為什麼?
本章結束 Q&A討論時間