1) 請問命令行之 pipe line 的作用是甚麼?
它是用來連接哪些 file descriptor 的?
說明:
comd1 | comd2 | comd3
comd1的output經過pine後,變成comd2的input
錯誤的指令可以把他想成漏水,所以要把漏水的部分裝進去正確的水管 2>&1把水裝回去
請問 STDERR 要如何才能參與 pipe line ?請以範例說明:
範例: ls ./ /tom(不存在的資料夾)>right.txt 2>&1
2) 請問 tee 的作用是甚麼?請用一個範來說明。
(提示:區分 > 與 tee 兩者對原有的 STDOUT 的處理差異)
範例:tee就好像一個飛機上的黑盒子,會將你的I/O做一份copy
>會直接覆蓋掉你先前的紀錄
$ls . /tmo 2>&1 | nl -ba | tee test.txt
3) 請問 xargs 的作用是甚麼?請用一個範來說明。
範例: xargs會將你的commond_line當成argument
有點類似command_line...$(commond_line) ...commond_line
$echo test.txt | xargs tac
4) 當我們談到帳號時,每位系統用戶都一定有兩個 id ,
請問是哪兩個?
1: user_id
2: group_id(primary)
5) 能否說說 primary(initial) group 與 groups 的差別?
說明:每一個user都會有一個primary group 但不一定會有groups(所謂的附屬群組)
6) 若現在要建立 u1, u2, u3, u4 四個 user 帳號,及 g1, g2, g3, g4 四個 group 帳號,
且按如下設計分配:
u1 的 primary group 是 g1,同時加入 g2, g3, g4
u2 的 primary group 是 g2,同時加入 g3, g4
u3 的 primary group 是 g2,同時加入 g3
u4 的 primary gropu 是 g2,並沒加入其他 groups
請問,若忽略 primary group 不計,g2, g3, g4 的成員分別有哪些?
g2: u1
g3: u1,u2,u3
g4: u2
7) 在 Linux 系統上的帳號資料,主要集中在三份檔案裡面,請列出它們的路逕:
1: /etc/passwd
2: /etc/shadow
3: /etc/group
請用冒號(:)作區隔符號,分別列出 group 的所有欄位,
並說明每一欄位的意思:
1:群組名稱
2: group_password
3: group_id
4: 成員
若不允許您用文書編輯器來修改,請問您會用甚麼命令(可用不同命令)及參數,
來建立或修改每一欄位?(有些可能不能修改)
groupmod
9) 請用冒號(:)作區隔符號,分別列出 passwd 的所有欄位,
並說明每一欄位的意思:
1: user-id
2: passwdord
3: user_id
4: primary_id
5: 說明
6: 家目錄
7: 預設shell
其中第 6 個欄位,其內容參考來源在哪裡(複制自哪一目錄)?
路逕: /etc/skel
若不允許您用文書編輯器來修改,請問您會用甚麼命令(可用不同命令)及參數,
來建立或修改每一欄位?(有些可能不能修改)
10) 請用冒號(:)作區隔符號,分別列出 shadow 的所有欄位,
並說明每一欄位的意思(提示:請以 man page 為準):
1: user_id
2: 編碼過的password(如果有!表示被locking,如果是!!表示尚未設定密碼)
3: 自1970元旦開始算,你哪一天更改過密碼
4: min_day(最少幾天內要改密碼)
5: max_day(密碼可以使用的最大日期)
6: warming(到使用期限的前幾天要警告你,預設7天)
7: inactive(過期後幾天可用inactive)
8: expireday(帳號期限)
9: 系統保留 欄位
若不允許您用文書編輯器來修改,請問您會用甚麼命令(可用不同命令)及參數,
來建立或修改每一欄位?(有些可能不能修改)
usermod
chage(改日期為主)
9) 參考習題 6,分別為 g1, g2, g3, g4 分配 gid 1000, 1001, 1002, 1003 ,
並依以下資料設計 u1, u2, u3, u4 :
u1 之 uid 為 1000,home dir 為 /home/user1,shell 為 /bin/tcsh,comment 為 "User One"
u2 之 uid 為 1001,home dir 為 /home/temp,shell 為預設,comment 為 "Temp User"
u3 之 uid 為 1002,不建 home dir, 但路逕指向 /var/ftp,shell 為 /sbin/nologin,comment 不設
u4 之 uid 為 1003,home dir 為預設但不建立之,shell 為 /bin/false,comment 不設
(注意: 習題 6 之設計仍然有效)
請將您所下的指令,按順序全部列出:
[root@didisi birdo]#groupadd -g 1000 g1
[root@didisi birdo]#groupadd -g 1001 g2
[root@didisi birdo]#groupadd -g 1002 g3
[root@didisi birdo]#groupadd -g 1003 g4
[root@didisi birdo]# tail -4 /etc/group
g1:x:1000:
g2:x:1001:u1
g3:x:1002:u1,u2,u3
g4:x:1003:u1,u2
[root@didisi birdo]#useradd -g 1000 -G g2,g3,g4 -u 1000 -d /home/user1 -s /bin/tcsh -c "user one" u1
[root@didisi birdo]#useradd -g 1001 -G g3,g4 -u 1001 -d /home/temp -c "Temp User" u2
[root@didisi birdo]#useradd -g 1001 -G g3 -u 1002 -m -k /var/ftp -s /bin/nologin
[root@didisi birdo]#useradd -g 1001 -u 1003 -s /bin/false
[root@didisi birdo]#tail -4 /etc/passwd
u1:x:1000:1000:user One:/home/user1:/bin/tcsh
u2:x:1001:1001:Temp User:/home/temp:/bin/bash
u3:x:1002:1001::/var/ftp:/sbin/nologin
u4:x:1003:1001::/home/u4:/bin/false
並請以實作方式加以驗證,若發現與設計不一致的地方,
請運用如下命令加以修改(避免直接使用文字編輯器):
groupmod
-g 改gid
-n 改名稱
usermod
-c 改內容
-d 改家目錄(-m)
chage
主要更改日期之間的
chsh
-s 改shell的
9) 若帳號不再使用,我們一般是建議"停用"帳號,而非"移除"帳號,
請問您能想出兩種或以上的方法來做到嗎?
方法一: usermod -L 帳號把你的user鎖起來,再看一下/etc/passwd有第二欄會出現!
方法二: chsh -s /bin/nologin (沒有shell就不能登入了)
若帳號已確定不在需要保留,您會用哪兩個指令來刪除之?
刪除 user: userdel (預設上不會把使用者的資料夾刪掉)
刪除 group:groupdel
老師辛苦一下了!呼....
越來越刺激了! :roll: