summaryrefslogblamecommitdiffstats
path: root/docs/ADVANCE
blob: 6c40d53a112568905ab6d9312cac5e4e7a8e0256 (plain) (tree)
1
2
3
4
5
6
7
8







                                                       








                                                             

                                                              

                                                                 
                             


                                                            


                                   
                                     























                                                               












                                
我們在這個版本裡面加入了一些好玩的東西,
最主要是希望可以偷懶做一些事情.

bbsctl
------
bbsctl是一個很特別的程式, 安裝有點複雜.
    1.先用 bbsadm 的權限在 util/下 make bbsctl
    2.改成 root 的權限在 util/下 make installbbsctl
如此會把 bbsctl 安裝到 $(BBSHOME)/bin/bbsctl下.
我們會建議您將 bbsctl 所在目錄加進您的 path 裡面,
或是建立 symbolic link把 bbsctl 放到一個有設 path 的目錄
 (像是 /usr/local/bin 將是一個符合 FreeBSD程式置放路徑的目錄)
您可以用 ln -s $(BBSHOME)/bbs/bbsctl /usr/local/bin/bbsctl
 (其中 $(BBSHOME) 請用您所設的 bbs路徑代替, 如 /home/bbs)
如此您將可以在任何一個目錄下使用 bbsctl


!!請注意,  bbsctl 是有 root setuid的, 這可能會有安全上的問題!!


其中 bbsctl 設計是只有該帳號有加入 bbsadm 這個 group的人才能使用.
 (關於如何設定 group請見 FAQ)
您應該至少要將 bbs和 bbsadm 這兩個帳號加入 bbsadm 這個 group


您可以直接打 bbsctl 來看有什麼功能.
主要的功能說明如下:
1.bbsctl start
  用於啟動 mbbsd (須先跑 shmctl init)
  以往因為要 bind port 23 須要 root 所以要手動 su ,
  不過現在有 bbsctl with setuid ,
  請直接使用 bbsctl start , 即可將 mbbsd跑起來.
2.bbsctl stop
  會將所有正在 listen 的 mbbsd都砍掉
3.bbsctl restart
  即 bbsctl stop; bbsctl start
  主要是如果程式更新的話, 可以透過這個來直接重跑.
4.bbsctl bbsadm
  若該使用者有加入 bbsadm 群組, 則同於直接 su 成 bbsadm
   (不須密碼)
  如此您可以將某些有管理權限的使用者,
  透過 /etc/group 放進 bbsadm 的群組,
  讓她們在 login後可以直接用 bbsctl bbsadm來換成 bbsadm 的權限.



shmctl
------
這隻程式主要是外部用來輔助 shared-memory正常運作的.
1.shmctl utmpfix
  將 shared-memory中 utmp 不正確的 record 清掉.
  建議至少每小時跑一次.
  另外可以用這個來外部設定 idle 多久後就踢人.

Makefile of mbbsd/
------------------
1.make all
  自動加上 -O 的最佳化參數
2.make DEBUG=1
  一般用來 debug的情況下會用到,
  會開啟一些 DEBUG的程式碼,
   gcc不用 -O 而改加上 -g ,
   menu title 顯示目前的 pid,
  以方便用 gdb來 attach.
3.make NO_FORK=1
  這通常都是很特別的情況才會用到.