This is an old revision of the document!
Table of Contents
Access Requirements
Access Requirement Strings (ARS) are used to specify the requirements of a specific Synchronet user account in order to have access to specific areas or functions of a Synchronet BBS.
Overview
You will find in SCFG and other Synchronet configuration files, places where the sysop may specify requirements to access a specific area or feature of the BBS. Usually these items will have ARS (Access Requirement String) or just “Requirements” as part of the name.
Most Access Requirements
are “default allow”, meaning, if there are no requirements specified (i.e. the requirement string is blank), then the default behavior is allow access to that specific area/function to any user.
Some Requirement
strings are “default deny”, meaning, if there are no requirements specified (i.e. the requirement string is blank), then no user will match that requirement. Examples of “default deny” requirements:
- Operator Requirements
- Exemption Requirements
- Moderated Posting User
- Pre-pack QWK Requirements
Configuration
SCFG has an interactive Requirements
dialog screen which allows easy addition or clearing of the most common requirement parameters.
╔══════════════════════════════════════════════════════════╗ ║ Main Group Requirements ║ ╠══════════════════════════════════════════════════════════╣ ║ │Requirement String () ║ ║ │Clear Requirements ║ ║ │Set Required Level ║ ║ │Set Required Flag ║ ║ │Set Required Age ║ ║ │Set Required Sex ║ ║ │Set Required Connect Rate ║ ║ │Set Required Post/Call Ratio (percentage) ║ ║ │Set Required Number of Credits ║ ║ │Set Required Upload/Download Byte Ratio (percentage) ║ ║ │Set Required Upload/Download File Ratio (percentage) ║ ║ │Set Required Time of Day ║ ║ │Set Required Day of Week ║ ║ │Set Required Node Number ║ ║ │Set Required User Number ║ ║ │Set Required Time Remaining ║ ║ │Set Required Days Till Expiration ║ ╚══════════════════════════════════════════════════════════╝
From this dialog screen, you can edit the Requirement String directly, or use the additional menu options to add the most common requirement parameters (and values) or clear the requirement string.
Syntax
Access Requirement Strings can consist entirely of English keywords and numbers or use short-hand symbols to fit a large number of security requirements into the limited space allowed for access requirement strings. Short-hand symbols and key words may be used interchangeably and combined in the same string. For clarity, it is suggested you use the keywords whenever possible. The string syntax is as follows:
usage: [not] [param] [not] [equal] <value> [or] [and] [...] where: not is the word "NOT" or the symbol '!' to specify reverse logic param is one of any keywords (or short-hand symbols) that specifies a specific required parameter (default is LEVEL) equal is the word "EQUAL", "EQUALS", the words "EQUAL TO", or the symbol '=' to specify exact equality required value the required value (for either minimum requirement or equality) or the word "OR" or the symbol '|' used to specify that ANY of two or more parameter values MAY be met to match the requirement and the word "AND" or the symbol '&' may be used for clarity in reading when specifying that two or more parameter values MUST be met to match the requirement
Logic Operators
Logic operators may exist between one or more Boolean or Value Parameters. When no logic operator is specified, the default logic requirement is GREATER_OR_EQUAL and when multiple parameters are specified, AND
(i.e. all the specified parameters must be evaluated to a TRUE condition).
Keyword | Symbol | Description |
---|---|---|
AND | & | More than one requirement (optional) |
NOT | ! | Logical negation (e.g. NOT EQUAL) |
EQUAL | = | Equality required |
OR | | | Either of two or more parameters is required |
( | Begin nested requirement | |
) | End nested requirement |
Boolean Parameters
Boolean parameters are evaluated as true or false without any specified value for comparison.
Keyword | Symbol | Description |
---|---|---|
ACTIVE | User has an active account (not marked DELETED or INACTIVE) | |
ANSI | $[ | User is using an ANSI terminal |
PETSCII | User is using a PETSCII terminal | |
DELETED | User account is marked DELETED | |
DOS | BBS is running on MS-DOS | |
EXPERT | User is in expert menu mode | |
GUEST | User has the G (Guest) restriction |
|
INACTIVE | User account is marked INACTIVE | |
LINUX | BBS is running on Linux | |
LOCAL | $G | Local execution (no remote user) |
OS2 | BBS is running on OS/2 | |
QNODE | User has the Q (QWK node) restriction |
|
QUIET | User is in quiet mode | |
RIP | $* | User is connected with a RIP-compatible terminal |
SYSOP | User has level 90+ or is a temporary sysop | |
WIN32 | BBS is running on Windows | |
WIP | User is connected with a WIP-compatible terminal | |
UNIX | BBS is running on a UNIX clone |
Value Parameters
Value parameters require a value (e.g. word or number) following the parameter keyword or symbol. This parameter is compared against the criteria of the system or the user using the current comparison logic.
Keyword | Symbol | Description |
---|---|---|
AGE | $A | User's age (years since birthdate, 0-255) |
BPS | $B | User's current connect rate (bits-per-second; Telnet, RLogin, and SSH connections will have a BPS value of 30000) |
COLS | Terminal columns (e.g. 40 or 80+) | |
CREDIT | $C | User's number of credits in Kilobytes (0-65535) |
DAY | $W | Day of the week (Sun, Mon, Tue, etc. or 0-6) |
DIR | $J | Current file directory (Internal code or 1-65535) |
DLS | Total number of files downloaded by user | |
DLK | Total number of kilobytes in files downloaded by user | |
DLM | Total number of megabytes in files downloaded by user | |
EXEMPT | $X | Exemptions flag (A-Z) |
EXPIRE | $E | Days till user account expires (0-65535) |
FILE_CMDS | Number of executed file menu commands (0-65535) | |
FLAG | $F | User's flag (1-4) and (A-Z) |
GROUP | $M | Current message group (1-65535) |
HOST | Client hostname | |
IP | Client IP address | |
LASTON | $Y | Days since last logon (0-65535) |
LEVEL | $L | User's level (0-99) |
LIB | $I | Current file library (1-65535) |
LOCAL | $G | Logged on locally (no value argument) |
LOGONS | Number of user logons | |
MAIN_CMDS | Number of executed main menu commands (0-65535) | |
NODE | $N | Current node (1-250) |
PCR | $P | User's post/call ratio (0-100) |
PROT | Protocol in use (e.g. Telnet , SSH , HTTP , etc.) |
|
RANDOM | $Q | Random number between 0 and value argument (0-65535) |
REST | $Z | Restrictions flag (A-Z) |
ROWS | Terminal rows (e.g. 24) | |
SEX | $S | User's sex/gender (M or F) |
SHELL | User's selected command shell internal code | |
SUB | $H | Current message sub-board (Internal code or 1-65535) |
TERM | Terminal type (string) | |
TIME | $T | Time of day (HH:MM, 0-23:59) |
TLEFT | $R | User's time left online (minutes, 0-255) |
TUSED | $O | User's time online this call (minutes, 0-255) |
UDR | $K | User's upload/download ratio (0-100) |
UDFR | $D | User's upload/download file ratio (0-100) |
ULS | Total number of files uploaded by user | |
ULK | Total number of kilobytes in files uploaded by user | |
ULM | Total number of megabytes in files uploaded by user | |
USER | $U | User's number (1-xxxx) |
Examples
- need to import from http://synchro.net/docs/security.html