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