This is an old revision of the document!
Table of Contents
Access Requirements
ARS stands for Access Requirement Strings. Access requirement strings are used to specify the requirements of a user to have access to features/sections of a Synchronet BBS. The string 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] [parm] [not] [equal] <value> [or] [and] [...] where: not is the word "NOT" or the symbol '!' to specify reverse logic parm 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 has ANSI 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 (bps) |
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) |
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) |
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