Synchronet v3.18b-Win32 (install) has been released (Sept-2020).

Synchronet v3.19a, now under development, requires libarchive-dev to build successfully.

You can donate to the Synchronet project using PayPal.


This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
config:nix [2011/06/21 19:30]
config:nix [2020/09/15 16:41] (current)
digital man Don't [Unix] User/Group settings unless you have to
Line 1: Line 1:
 ====== UNIX ====== ====== UNIX ======
-===== sbbs.ini ​=====+Configuration of ''​[UNIX]''​ section of the Synchronet initialization file (e.g. ''​[[dir:​ctrl]]/​[[config:​sbbs.ini]]''​).
-Unix Sysops will particularly want to pay attention to the ''​[UNIX]'' ​section of your initialization file (e.g. ''​[[dir:ctrl]]/​sbbs.ini''​ file.+===== User/Group ===== 
 +If you are **not** ​[[howto:​linux_non-root|starting sbbs as ''​root''​]], then you should **not** set these values. 
 +==== User ==== 
 +Default: <​none>​ 
 +==== Group ==== 
 +Default: <​none>​
 If you do not want to run Synchronet (and all external programs/​doors) as If you do not want to run Synchronet (and all external programs/​doors) as
-root, you will have to set the ''​User''​ and ''​Group''​ key values. ​Example:+root (the Unix //​administrator//​ user), you will have to set the ''​User''​ and ''​Group''​ key values.
-  User=sbbsgroup +Example:
-  Group=sbbsuser+
-Also, the file +  User=sbbsuser 
-permissions/​ownership should be such that the other user would have read+  Group=sbbsgroup 
 +NOTE: the ''​sbbsuser''​ and ''​sbbsgroup''​ names are just examples. You must pick valid user/group names for your system (e.g. exist in your system'​s ''/​etc/​passwd''​ file) and both the user and group name may be the same. 
 +Also, the Synchronet ​file 
 +permissions/​ownership should be such that this user/​group ​would have read
 and write access to them.  The best way to accomplish this is a command and write access to them.  The best way to accomplish this is a command
 like: like:
Line 18: Line 31:
   # chown -R sbbsuser:​sbbsgroup /sbbs   # chown -R sbbsuser:​sbbsgroup /sbbs
-If you want Synchronet ​to fork and run in the background ​as a daemon, logging +If you do this, then be sure to run any Synchronet utilities (e.g. [[util:​SCFG]]) ​as the same user that the BBS is going to run as: 
-via syslog rather than the local console, set Daemonize=True in this section. Example:+   
 +  # su -c /​sbbs/​exec/​scfg sbbs  ​
-  Daemonize=True+===== Logging ===== 
 +==== LogFacility ==== 
-To configure syslog ​and the ''​LogFacility''​, a good default ​to use is:+Default: ''​U''​ (User) 
 +Supported Values: ''​0''​-''​7''​ ("​Local0"​ through "​Local7"​ facility), ''​U''​ (for "​User"​ facility), ​and ''​S''​ or ''​F''​ (for "​Standard"​ facilities) 
 +If you have ''​sbbs''​ installed to run in the background as a daemon, logging 
 +via [[monitor:​syslog]] rather than the local console, you may want to set the ''​LogFacility'' ​key value. A good value to use is:
   LogFacility=3   LogFacility=3
-  +Then, in ''/​etc/​syslog.conf'' ​(or ''/​etc/​rsyslog.d/​sbbslog.conf''​) ​you will need to add the line:
-Then, in ''/​etc/​syslog.conf''​ you will need to add the line:+
-  local3.* ​                /​var/​log/​synchronet.log+  local3.* ​                /​var/​log/​sbbs.log
 Depending on how your vendor set up ''​syslog.conf''​ initially, you may also want Depending on how your vendor set up ''​syslog.conf''​ initially, you may also want
Line 39: Line 58:
 You will have to create this file manually initially by running: You will have to create this file manually initially by running:
-  # touch /var/log/synchronet.log+  # touch /var/log/sbbs.log
 Then send a HUP to syslogd like so: Then send a HUP to syslogd like so:
   # killall -HUP syslogd   # killall -HUP syslogd
 +  ​
 +Or it might be necessary to:
 +  # service syslogd restart
 +  ​
 +You could then monitor the Synchronet daemon log output with:
 +  # tail -f /​var/​log/​sbbs.log
 You will want to investigate how your system rotates logs and set it up to You will want to investigate how your system rotates logs and set it up to
-rotate ''​synchronet.log''​ also.+rotate ''​sbbs.log''​ also. 
 +  # cat /​etc/​logrotate.d/​sbbs 
 +  /​var/​log/​sbbs*.log { 
 +        weekly 
 +        missingok 
 +        rotate 52 
 +        notifempty 
 +        create 640 root adm 
 +        sharedscripts 
 +        postrotate 
 +                invoke-rc.d rsyslog reload > /dev/null 
 +        endscript 
 +  } 
 Further use of the ''​LogFacility''​ setting is beyond the scope of this document. Further use of the ''​LogFacility''​ setting is beyond the scope of this document.
Line 58: Line 97:
 +    ​
 +Note: the LogFacility value in the ''​sbbs.ini''​ file may be overridden with the ''​-d''​ command-line option (e.g. ''​sbbs -d3''​ to daemonize ''​sbbs''​ with LogFacility of ''​Local3''​).
-=== LogIdent ===+==== LogIdent ​====
-Default: Synchronet+Default: ​''​Synchronet''​
-FIXME+This is the value passed as the ''​ident''​ argument to the system'​s ''​openlog''​ function. Run ''​man openlog''​ for more details on this setting.
-=== PidFile ===+===== Process Control =====  
 +==== PidFile ​====
 Default: ''/​var/​run/​''​ Default: ''/​var/​run/​''​
-FIXME+This key contains the path of the file which will contain the process identifier (PID) of Synchronet and is used by background/​daemon startup scripts to query the current state of ''​sbbs''​.
-=== umask ===+  # service sbbs status 
 +  Synchronet BBS services status: [running] 
 +  PID(s): 6270
-Default: 077+If you change the value of this key, you may also need to modify your startup script (e.g. ''/​etc/​init.d/​sbbs''​).
-FIXME+==== umask ====
-===== Terminal Capabilities =====+Default: ''​077''​
-As you may have noticed by now, most telnet clients designed for use with +Sets ''​sbbs'''​ file mode creation mask.
-ANSI BBSes do not display full-screen Unix programs correctly. Included with +
-Synchronet is a pair of terminal capability definition files that enable you +
-to run native full-screen Unix programs and have the output displayed correctly +
-in a standard ANSI-BBS terminal. ​ These files are ''​termcap'' ​and ''​terminfo'',​ +
-located in your Synchronet install directory. ​ Your system will use one or the +
-other, and it won't hurt to install both.  You will need to be logged in as +
-root to install the files.+
-==== Installing ​the terminfo file ====+Note: If the value begins with a ''​0'',​ it will be interpreted in //octal// notation.
-1) Get the Synchronet ANSI-BBS terminfo file from +Run ''​man umask''​ for more details on this setting.
-2) Enter the command: +==== Daemonize ====
-  # tic terminfo+
-==== Installing the termcap file ====+Default: ''​false''​
-1) Get the Synchronet ANSI-BBS termcap file from +When set to ''​true'', ​forces ​''​sbbs'' ​to run daemonized ​(in the backgroundwithout specifying ​the ''​-d''​ command-line ​optionSetting ​this value to ''​true'' ​is not recommended.
-[[http://​​cgi-bin/​viewcvs.cgi/​*checkout*/​install/​termcap|here]]. +
- +
-2) Enter the command: +
-  # cat termcap >> /​etc/​termcap +
- +
-3) **FreeBSD Only** run the command: +
-  # cap_mkdb -f /​usr/​share/​misc/​termcap /​etc/​termcap +
- +
-Once the terminal capability files are installed, edit the ''​ExternalTermANSI''​ +
-value in the ''​[BBS]''​ section of your ''​[[sbbs.ini]]''​ file to read: +
-    ExternalTermANSI=ansi-bbs +
- +
-Note: The default value of the ''​ExternalTermANSI''​ ''​[[sbbs.ini]]''​ key is ''​pc3''​. If you get an error ''​Unknown terminal: pc3''​ from external programs, it means that this key value has not been set to a valid terminal type. +
- +
-Note: Once again, many Linux distros do not have a termcap. ​ This is fine. +
-You do NOT need to install the termcap-compat package. ​ If termcap +
-isn't installed, it means nothing uses it.  Only if there is a +
-termcap do you need to add the ''​ansi-bbs'' termcap definition. +
- +
-===== Running Synchronet Automatically During Boot-up ===== +
- +
-If you want Synchronet to start automatically whenever your system boots, +
-you will need to set that up using the system rc scripts. ​ A few example are: +
- +
-==== Linux ==== +
- +
-1) Get the Synchronet service run script (init file) from +
-[[http://​​cgi-bin/​viewcvs.cgi/​*checkout*/​install/​init.d/​sbbs|here]]. +
- +
-2) Copy the run script (''​sbbs''​) into your ''/​etc/​init.d''​ directory (if you don't have this directory, then your Linux distribution isn't supported by this file). +
- +
-3) Add the Synchronet system service: +
-  # chkconfig --add sbbs +
-  +
-4) Start the Synchronet system service: +
-  # /​etc/​init.d/​sbbs start +
- +
-==== FreeBSD ==== +
- +
-1) Get the Synchronet service ​run script ​(init file) from [[http://​​cgi-bin/​viewcvs.cgi/​*checkout*/​install/​rc.d/​sbbs|here]]. +
- +
-2) Copy the run script (sbbsinto your ''/​etc/​rc.d''​ directory (If using FreeBSD 4.x, install ​the rc_subr port and copy the run script to ''​/​usr/​local/​etc/​rc.d/'' ​instead) +
- +
-3) Set up the sbbs settings: +
-In one of ''/​etc/​rc.conf'',​ ''/​etc/​rc.conf.local'',​ or ''/​etc/​rc.conf.d/​sbbs'',​ add the +
-line: +
-   ​sbbs_enable=YES ​     # Required to run Synchronet +
- +
-4) In one of the files from step three, add appropriate lines from the following (Defaults are shown here): +
- +
-   ​sbbs_flags="" ​                       # Additional ​command-line ​flags +
-   ​sbbs_pidfile="/​var/​run/​" ​    # Path of pid from your .ini +
-   ​sbbs_dir="/​sbbs/" ​                   # Root sbbs path +
-                                        # The rest of the sbbs_*dir derive +
-                                        # from this be default +
-   ​sbbs_ctrldir="​${sbbs_dir}/​ctrl/"​ +
-   ​sbbs_execdir="​${sbbs_dir}/​exec/"​ +
-   ​sbbs_program="​${sbbs_execdir}/​sbbs" ​ # Synchronet binary +
-   ​sbbs_procname="​${sbbs_program}" ​     # Process name as seen by ps(1) +
-   ​sbbs_shell="/​bin/​sh" ​                # SHELL variable +
-   ​sbbs_user="​root" ​                    # User to START sbbs as.  If this is +
-                                        # not root, you cannot bind low ports +
-   ​sbbs_group="​wheel" ​                  # Group to start sbbs as +
- +
-5) Start the Synchronet system service (FreeBSD 5.x+): +
-  # /​etc/​rc.d/​sbbs start +
-(FreeBSD 4.x and lower): +
-  # /​usr/​local/​etc/​rc.d/​ start +
- +
-===== A note on SysOp paging ===== +
- +
-For most systems, the BBS must either have write access to the sound card via +
-/dev/dsp, or run as root to page the SysOp. ​ FreeBSD supports an alternative +
-method which requires one of the following:​ +
- +
-==== On FreeBSD 4.x ==== +
- +
-A custom kernel with the following option in the config +
-pseudo-device speaker +
- +
-==== On FreeBSD 5.x and higher ==== +
- +
-One of: +
-  - A custom kernel with the following option in the config device speaker +
-  - The speaker module loaded by either: +
-    - Running ​''​kldload speaker''​ +
-    - The line ''​speaker_load="​YES"''​ in ''/​boot/​loader.conf''​ file +
- +
-''/​dev/​speaker''​ should be read/​writeable by the user the BBS runs as.+
 ===== See Also ===== ===== See Also =====
   * [[:​config:​|Configuration]]   * [[:​config:​|Configuration]]
 +  * [[:​monitor:​syslog]]
 +{{tag>​unix syslog sbbs.ini}}

In Other Languages