bbsctl - ptt/pttbbs GitHub Wiki

bbsctl - BBS 程序執行管理程式

安全警告

!!請注意, bbsctl 是有 root set user id 的, 這可能會有安全上的問題!! [1]

其中 bbsctl 設計是只有該帳號有加入 bbsadm 這個 group 的人才能使用. (關於如何設定 group 請見 FAQ )

您應該至少要將 bbs 和 bbsadm 這兩個帳號加入 bbsadm 這個 group

安裝

bbsctl是一個很特別的程式, 安裝有點複雜.

  • 先用 bbsadm 的權限在 util/make bbsctl

  • 改成 root 的權限在 util/make installbbsctl

如此會把 bbsctl 安裝到 $(BBSHOME)/bin/bbsctl 下.

程式路徑設定

我們會建議您將 bbsctl 所在目錄加進您的 $PATH 裡面,

或是建立 symbolic link 把 bbsctl 放到一個有設 $PATH 的目錄

(像是 /usr/local/bin 將是一個符合 FreeBSD / Linux 程式置放路徑的目錄)

您可以用 ln -s $(BBSHOME)/bbs/bbsctl /usr/local/bin/bbsctl

(其中 $(BBSHOME) 請用您所設的 bbs 路徑代替, 如 /home/bbs )

如此您將可以在任何一個目錄下使用 bbsctl

指令簡介

您可以直接打 bbsctl 來看有什麼功能. 主要的功能說明如下:

1. bbsctl start

用於啟動 mbbsd (須先跑 shmctl init)

以往因為要 bind port 23 須要 root 所以要手動 su ,

不過現在有 bbsctl with setuid ,

請直接使用 bbsctl start , 即可將 mbbsd 跑起來.

2. bbsctl stop

會將所有正在 listen 的 mbbsd 都砍掉

2-1. bbsctl STOP

會將所有正在 listen 和有 user 正在使用的 mbbsd 全都砍掉

3. bbsctl restart

bbsctl stop; bbsctl start

主要是如果程式更新的話, 可以透過這個來直接重跑.

4. bbsctl bbsadm

若該使用者有加入 bbsadm 群組, 則同於直接 su 成 bbsadm (不需密碼)

如此您可以將某些有管理權限的使用者,

透過 /etc/group 放進 bbsadm 的群組,

讓他們在 login 後可以直接用 bbsctl bbsadm 來換成 bbsadm 的權限.

Ref:

  1. https://www.ptt.cc/bbs/NetSecurity/M.1507087951.A.E48.html