作者 主題: 台北班 (習題_06)  (閱讀 10636 次)

0 會員 與 1 訪客 正在閱讀本文。

biotu

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
台北班 (習題_06)
« 於: 2005-07-25 01:25 »
遲來的作業
老師
辛苦你囉 ^^

1) 請問改變 permission mode 的命令是哪個?
命令: chmod

假設當前的 mode 是 rwxr-xr-x , 在此基礎上若分別跑如下參數的執行結果將變成怎樣?
g+w,o-x :   rwxrwxr--
go-x,a-w :   r-xr--r--
u=rwx,go=r : rwxr--r--

若用 octal 方式,要如何下參數才能做到上面相同的結果?
1: 774
2: 544
3: 744

2) 請問 chgrp 作甚麼用的?
作用: 改變群組

如下命令分別是甚麼意思?
chown u1   改變owner為u1
chown u1:g1改變owner為u1, 改變群組為g1
chown :g1   改變群組為g1

3) 請問 umask 的作用是甚麼?
作用: 改變預設的建立檔案或目錄的屬性
請問你如何得知當前的 umask ?
方法: $ umask
請問如何修改 umask ?
方法: $ umask nnn  (n為數字, 個別針對u, g, o 作修改)   1取消x | 2取消r | 3取消 w,x | 4取消r | 5 .....

假設當前 umask 是 123 ,請問新建的 dir 跟 file 的 mode 分別是甚麼?
dir : 654
file : 644
能否說明一下你的運算過程?
說明:dir的基準為777:umask 123就是取消user的x, group的w, other的w和x,
     
      而file的基本權限為666: 所以umask 123後, (rw-r- - r- - 就是110100100 ) -->644

4) 當我們談到帳號時,每位系統用戶都一定有兩個 id ,
請問是哪兩個?
1: UID
2: GID

5) 能否說說 primary (initial) group 與 groups 的差別?
說明: 每個user只能有一個primary group,但可擁有多個 secondary 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 group 是 g2,並沒加入其他 groups
請問,若忽略 primary group 不計,g2, g3, g4 的成員分別有哪些?
g2: u1
g3: u1, u2, u3
g4: u1, u2

7) 在 Linux 系統上的帳號資料,主要集中在三份檔案裡面,請列出它們的路徑:
1:  /etc/group
2:  /etc/passwd
3:  /etc/shadow

8.) 請用冒號 (: )作區隔符號,分別列出 group 的所有欄位,
並說明每一欄位的意思:
1:  group.name
2:  x
3:  gid
4:  [ member(s) ] 可列出或不列primary
若不允許您用文書編輯器來修改,請問您會用甚麼命令(可用不同命令)及參數,
來建立或修改每一欄位?(有些可能不能修改)
$ groupmod  [-n group.name ] [–g gid ]

9) 請用冒號(: )作區隔符號,分別列出 passwd 的所有欄位,
並說明每一欄位的意思:
1:  username
2:  x
3:  uid  
4:  gid
5:  [comment]  說明性的文字
6:  /home/dir  
7:  shell
其中第 6 個欄位,其內容參考來源在哪裡(複製自哪一目錄)?
路徑: /etc/skel

若不允許您用文書編輯器來修改,請問您會用甚麼命令(可用不同命令)及參數,
來建立或修改每一欄位?(有些可能不能修改)
$ usermod  [-u uid ] [-c comment ] [-d /home/dir ] [-s shell ]

10) 請用冒號(: )作區隔符號,分別列出 shadow 的所有欄位,
並說明每一欄位的意思(提示:請以 man page 為準):
1:  username
2:  encrypted password
3:  last day  從1970/01/01起, 密碼最後一次更改的日子
4:  min day  幾天內, 不能變更密碼
5:  max day  幾天後, 一定要改密碼
6:  warn day  密碼失效前多少天, 提出警告
7:  inactive day 超過max day仍有一段期限, 強迫更改密碼
8:  expire day 從1970/01/01後, 幾天, 帳號失效
9:  [RESERVED] 保留給系統本身使用

若不允許您用文書編輯器來修改,請問您會用甚麼命令(可用不同命令)及參數,來建立或修改每一欄位?
(有些可能不能修改)
$ chage  [-m min] [-M max] [-W warn] [-I inactive] [-E expire]

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 之設計仍然有效)
請將您所下的指令,按順序全部列出:
# groupadd  –g 1000 g1
# groupadd  g2
# groupadd  g3
# groupadd  g4

# useradd  -u 1000 –g g1 –G g2,g3,g4  –C “User One” –d /home/user1 –s /bin/tcsh u1
# useradd  -g g2 –G g3,g4 –C “Temp User” –d /home/temp –m u2
# useradd  -g g2 –G g3 –d /var/ftp –M –s /sbin/nologin u3
# useradd  -g g2 –M –s /bin/false u4

並請以實作方式加以驗證,若發現與設計不一致的地方,
請運用如下命令加以修改(避免直接使用文字編輯器):
groupmod
usermod
chage
chsh

10) 若帳號不再使用,我們一般是建議"停用"帳號,而非"移除"帳號, 請問您能用方法來做到嗎?
方法: $ usermod  –L 帳號

若帳號已確定不在需要保留,您會用哪兩個指令來刪除之(及其注意之處)?
刪除 user:  $ userdel   (預設不刪家目錄 若要可加-r )
刪除 group: $ groupdel  (若還又使用者使用這個群組,不論是primary或是secondary,就不能刪,
                        要是刪了,此帳號就會無法使用)

11) 請問甚麼是 process ,它與 command 的關係如何?
說明: 可由一個program產生,首先被載入記憶體中,再交給CPU去處理,直到處理完成為止。
請問 fork 是甚麼?並以此說明 parent 與 child 的關係。
說明: A program may invoke a couple of processes. 用圖表示時, 就好像fork形狀一樣。

請再用 parent 與 child 的關係來說明 environment variable 的意思。
說明: 環境變數 可以影響到子行程 (child )

12) 請列出與 process 相關的四個 ID :
1:  PID   process ID
2:  PPID  parent ID
3:  UID   effective uid
4:  GID   effective gid
 
13) 請列出可以用來查看 process 的三個工具:
1:  pstree
2:  ps
3:  top
並請了解每個工具的參數及內部指令。比方說:
* 如何從 pstree 中看到 PID ?  $  pstree -p
* 如何用 ps 找出全部 process 的 user ? $ ps -aux
* 如何改變 top 預設的更新間隔? $ top –d <n>

14) 請問甚麼是 foreground job 與 background job ?
說明: Foreground:當跑一個job時,terminal不在shell的控制上,所以看不到shell prompt.
       Background:terminal的控制權在shell上,可看到shell prompt.

預設情況下,shell 所產生的 command 都在 foreground 跑, 請問如何在輸入 command line 時就使之在 background 跑?
方法: $ command line &

若,當前的 process 在 foreground ,正常情況下, 按下 ctrl-z 發生甚麼事情?
說明: stopped job 暫停工作
若是按 crtl-c 呢?
說明: 中斷行程

15) 請問你如何得知當前有哪些 job 是在 background 中跑?
方法: $ jobs [–l ]
請問如何將一個正在 background 跑的 job 拿到 foreground ?
方法: $ fg
請問如何將一個正在 foreground 跑的 job 拿到 background ?
方法:    ^z
       $  bg

能否請你畫一幅圖來描述 foreground, stop, background 三者的轉換關係?


16) 事實上,按 crtl-z 跟 crtl-c 是要對 foreground job 送出 signal , 請問這兩個 signal 名稱是甚麼?
^z :SIGTSTP (20)
^c :SIGINT  (2)

請問你會用甚麼方法得知當前可用的 signal 有哪些?
方法: kill -l

請問如下 ID 的 signal 名稱是甚麼?
1:  SIGHUP
2:  SIGINT
3:  SIGQUIT
9:  SIGKILL
15:  SIGTERM
20:  SIGTSTP

17) 我們用 crtl 鍵來送出 signal 給 foreground 的 process , 請問要送 signal 給 background 又如何做到?
方法: kill  <signal>  PID | %job-ID
請問 kill 1234 與 kill -9 1234 有何不同?
說明: kill 1234  
       kill -9 1234
18.) 請問 kill 與 killall 有何不同? 運用時要注意甚麼?
說明: kill  <signal>  PID | %job-ID  
       killall <signal>  command.name
       因此要注意所使用的 # 或 $
19) 請問您可透過甚麼方法得知某一 process 的 PRI 值?
方法: $ ps –l  
       $ top
請問您能修改 PRI 的值嗎? (能/不能)
不能
要是不能,那請問 PRI 是由誰來決定的?
說明: 系統核心 kernel

20) 請問您可透過甚麼方法得知某一 process 的 NI 值?
方法: $ ps –l

請問您能修改 NI 的值嗎? (能/不能)

那請問系統最終的 PRI 如何判定?
方法: PRI -NI

21) 請問 nice 的取值範圍是多少?
範圍: -20 ~ 19

請問這段範圍的值對 root 跟 users 有何區別?
區別: root: -20 ~ 19
       users: 0 ~ 19
請問 nice 值越高代表甚麼意思?
說明: 愈禮讓

22) 在正常的 command line 下,process 的 nice value 為何?
值: 0

若要改變"新命令"的 nice value ,您將如何處理?
方法: $ nice –n 新命令

請問 nice 命令的 default value 是多少?
值: 10

請問 nice -10 command line 的值是正數還是負數? (正/負)
正數

23) 上題所提的 nice 命令是用來改變"新"命令的, 那,要是要修改一個已經 running 的 process 之 nice value , 你會如何修改?
方法: $ renice

請問 renice -10 pid 的值是正數還是負數? (正/負)
負數

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17479
    • 檢視個人資料
    • http://www.study-area.org
台北班 (習題_06)
« 回覆 #1 於: 2005-07-26 13:29 »
9)
useradd 的 comment, -c 是小寫.

17)
kill 預設用 TERM 信號來結束程序, 程序會按正常的結束流程進行.
而 kill -9 則是強迫性馬上結束程序, 程序或來不及執行既定的正常流程就結束了. 這或會造成一些負作用. 因此 -9 通常是最後手段, 非到不得已, 不要濫用.