第 4 堂課:Linux 基礎檔案權限與基礎帳號管理

http://linux.vbird.org/linux_basic_train/unit04.php

4.1:Linux 傳統權限

4.1.2:檔案屬性與權限的修改方式

使用 root 身份,並且移動工作目錄到 /dev/shm

[root@mail ~]# cd /dev/shm/

將 /etc/fstab 複製到 /dev/shm 底下

[root@mail shm]# cp /etc/fstab .

將 /dev/shm/fstab 更改檔名成為 newfs

[root@mail shm]# mv fstab newfs

讓 newfs 的用戶成為 sshd 、群組成為 wheel

[root@mail shm]# useradd sshd
[root@mail shm]# usermod -a -G wheel sshd
[root@mail shm]# chown sshd newfs
[root@mail shm]# chgrp wheel newfs

sshd 這個帳號可讀、可寫 newfs,wheel 群組成員僅可讀,其他人則無任何權限

[root@mail shm]# chmod 640 newfs

讓這個檔案的日期設定為前一天的 13:30 (日期請依據實際日期來指定)。

[root@mail shm]# touch -t 05211330 newfs

讓所有的人都可以執行 newfs 這個檔案 (請使用符號法,同時不要更動到既有的權限!)

[root@mail shm]# chmod o=x newfs

4.2:基礎帳號管理

4.2.1:簡易帳號管理

建立名為 myuser2 的帳號,該帳號密碼為 mypassWORD

[root@mail shm]# adduser -p mypassWORD myuser2

建立名為 myuser3 的帳號,該帳號密碼為 mypassWORD

[root@mail shm]# adduser -p mypassWORD myuser3

觀察 myuser2 與 myuser3 的 id 情況

[root@mail shm]# id myuser2
uid=1001(myuser2) gid=1001(myuser2) groups=1001(myuser2)

[root@mail shm]# id myuser3
uid=1002(myuser3) gid=1002(myuser3) groups=1002(myuser3)

觀察 /home 與 /var/spool/mail 這兩個目錄的內容,是否有名為 myuser2 及 myuser3 的檔名存在?

[root@mail shm]# ll -d /home/myuser*
drwx------. 2 myuser2 myuser2 62 Apr 29 22:14 /home/myuser2
drwx------. 2 myuser3 myuser3 62 Apr 29 22:14 /home/myuser3
[root@mail shm]# ll -d /var/spool/mail/myuser*
-rw-rw----. 1 myuser2 mail 0 Apr 29 22:14 /var/spool/mail/myuser2
-rw-rw----. 1 myuser3 mail 0 Apr 29 22:14 /var/spool/mail/myuser3

使用 userdel myuser2 刪除帳號 (注意,不要加上 -r 的參數)

[root@mail shm]# userdel myuser2

再次觀察 /home 與 /var/spool/mail 的內容,myuser2 檔名是否存在?該檔名的權限為何?

[root@mail shm]# ll -d /home/myuser*
drwx------. 2    1001    1001 62 Apr 29 22:14 /home/myuser2
drwx------. 2 myuser3 myuser3 62 Apr 29 22:14 /home/myuser3
[root@mail shm]# ll -d /var/spool/mail/myuser*
-rw-rw----. 1    1001 mail 0 Apr 29 22:14 /var/spool/mail/myuser2
-rw-rw----. 1 myuser3 mail 0 Apr 29 22:14 /var/spool/mail/myuser3

重新建立名為 myuser2 的帳號,密碼亦同為 mypassWORD,嘗試討論 (1)建立過程中出現的問題原因為何? (2)是否能夠順利建立該帳號?

[root@mail shm]# adduser -p mypassWORD myuser2
adduser: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists

承上,請在 tty2 以後的終端機,使用 myuser2 登入系統,登入後是否出現問題?為什麼?

//TODO

再次使用 userdel -r 的方式刪除 myuser2 與 myuser3,是否能夠順利刪除?

[root@mail shm]# userdel -r myuser2
userdel: /var/spool/mail/myuser2 not owned by myuser2, not removing
userdel: /home/myuser2 not owned by myuser2, not removing
[root@mail shm]# userdel -r myuser3

承上,若無法順利刪除帳號,請以手動的方式自行刪除餘留的使用者家目錄與郵件檔案。

[root@mail shm]# ll -d /home/myuser*
drwx------. 2 1001 1001 62 Apr 29 22:14 /home/myuser2
[root@mail shm]# ll -d /var/spool/mail/myuser*
-rw-rw----. 1 1001 mail 0 Apr 29 22:14 /var/spool/mail/myuser2
[root@mail shm]# ll -d /home/myuser*
drwx------. 2 1001 1001 62 Apr 29 22:14 /home/myuser2
[root@mail shm]# rm -rf /home/myuser2/
[root@mail shm]# ll -d /var/spool/mail/myuser*
-rw-rw----. 1 1001 mail 0 Apr 29 22:14 /var/spool/mail/myuser2
[root@mail shm]# rm -rf /var/spool/mail/myuser2

4.2.2:帳號與群組關聯性管理

使用 usermod -G student prouser1 將 prouser1 加入 student 群組的支援

[root@mail shm]# usermod -G student prouser1

使用 id prouser1 發現什麼?原本的 progroup 是否依舊存在?

[root@mail shm]# id prouser1
uid=1001(prouser1) gid=1002(prouser1) groups=1002(prouser1),1000(student)

#不存在

請使用 usermod --help 查詢 -a 的選項功能為何?

#將user群組列表新增一個群組,沒有-a的話則會被原本user得群組會被替代

請使用 usermod -a -G progroup prouser1 來延伸給予群組

[root@mail shm]# usermod -a -G progroup prouser1

再次使用 id prouser1 查閱目前 prouser1 是否有支援三個群組?

[root@mail shm]# id prouser1
uid=1001(prouser1) gid=1002(prouser1) groups=1002(prouser1),1000(student),1001(progroup)

4.3:帳號與權限用途

4.3.1:單一用戶所有權

讓 student 帳號直接執行 mymore 即可達成與 more 相同功能的目的 (亦即將 more 複製成為 mymore ,並放置到正確的位置即可)

[student@mail ~]$ cp /bin/more mymore
[student@mail ~]$ mkdir bin
[student@mail ~]$ mv mymore bin/
[student@mail ~]$ mymore

4.3.2:群組共用功能

例題:student 有個群組名為 student,任何加入 student 的用戶可以在 /srv/mystudent/ 目錄中進行任何動作,但沒加入 student 的用戶,僅能讀與執行,不能寫入。

先建立 /srv/mystudent 目錄

[root@mail shm]# mkdir /srv/mystudent

修改上述目錄的群組成為 student,並觀察有沒有執行成功

[root@mail shm]# chgrp student /srv/mystudent
[root@mail shm]# ll -d /srv/mystudent/
drwxrwxr-x. 2 root student 6 Apr 30 00:21 /srv/mystudent/

最後權限應該更改為幾分才對?

[root@mail shm]# chmod 775 /srv/mystudent

4.4:課後練習操作

系統內有名為 /examdata/exam.check 的檔案,這個檔案的 (1)擁有者、 (2)群組 各為何?且 (3)權限是幾分?

ll /examdata/exam.check

承上,該檔案的檔案類型是什麼?

file /examdata/exam.check

承上,請問 student 對於 exam.check 這個檔案來說,具有什麼權限?(寫下 rwx 或 --- 等權限標誌即可)



建立三個用戶,帳號名稱分別為: examuser1, examuser2, examuser3 ,三個人都加入 examgroup 的次要群組支援,同時三個用戶的密碼都是『 ItIsExam 』。 (i 與 e 都是大寫字元)

[root@mail shm]# useradd -g examgroup -p ItIsExam examuser1
[root@mail shm]# useradd -g examgroup -p ItIsExam examuser2
[root@mail shm]# useradd -g examgroup -p ItIsExam examuser3

建立一個用戶,帳號名稱為 examuser4,密碼為『 ItIsExam 』但這個帳號沒加入 examgroup 群組

[root@mail shm]# useradd -p ItIsExam examuser4

請刪除系統中的 examuser5 這個帳號,同時將這個帳號的家目錄與郵件檔案同步刪除。

[root@mail shm]# useradd -p ItIsExam examuser5
[root@mail shm]# userdel -r examuser5

有個帳號 myuser1 不小心被管理員刪除了,但是這個帳號的家目錄與相關郵件都還存在。請參考這個帳號可能的家目錄所保留的 UID 與 GID, 並嘗試以該帳號原有的 UID/GID 資訊來重建該帳號。而這個帳號的密碼請給予 ItIsExam 的樣式。(相關建置帳號的指令,請參考 man useradd 等線上文件的說明)

useradd -g ${gid} -u ${uid} -p ItIsExam

讓 examuser1 額外加入 student 這個群組,亦即 examuser1 至少有加入 examgroup 與 student 群組

[root@mail shm]# usermod -a -G student examuser1

使用 root 將 /etc/securetty 複製給 examuser4,且這個帳號要能夠完整使用該檔案才行。

[root@mail shm]# cp /etc/securetty /home/examuser4

建立一個空的檔案,檔名為 /srv/examcheck.txt,這個檔案可以讓 examuser1 完整的使用,而 examuser2 與 examuser3 可以讀取,但不能執行與寫入, 至於 examuser4 什麼權限都沒有。

[root@mail shm]# touch /srv/examcheck.txt
[root@mail shm]# chown examuser1 /srv/examcheck.txt
[root@mail shm]# chgrp examgroup /srv/examcheck.txt 
[root@mail shm]# chmod 740 /srv/examcheck.txt

examgroup 群組的成員想要共用 /srv/examdir 目錄,而沒有加入 examgroup 的其他人不具備任何權限,應該如何處理?

[root@mail shm]# chgrp examgroup /srv/examdir
[root@mail shm]# chmod 770 /srv/examdir/

/usr/local/bin/mymore 複製來自 /bin/more,但我只想要讓 examgroup 的成員能夠執行 /usr/local/bin/mymore 這個指令,其他人不能執行這個指令。

[root@mail shm]# chgrp examgroup /usr/local/bin/mymore
[root@mail shm]# chmod g+x,o-x /usr/local/bin/mymore

建立一個名為 /examdata/change.txt 的空檔案,這個檔案的擁有者為 sshd,擁有群組為 users,sshd 可讀可寫,users 群組成員可讀, 其他人沒權限。且這個檔案的修改日期請調整成 2012 年 12 月 21 日 (日期正確即可,時間隨便)

[root@mail shm]# mkdir /examdata
[root@mail shm]# touch /examdata/change.txt
[root@mail shm]# chown sshd /examdata/change.txt 
[root@mail shm]# chgrp users /examdata/change.txt
[root@mail shm]# chmod 640 /examdata/change.txt

results matching ""

    No results matching ""