Sysop command and privilege constants.
These constants are used inside useracc_t to encode any sysop command and/or privileges the user may have. There is a wide range of these, roughly broken in seven categories:
- Channel management
- USY_CHANGE
- Change mode of one channel, or all of them. Allows the Sysop to set certain channels to BUSY-OUT, NO-ANSWER, et cetera. Any change of status of a free telnet channel will affect all telnet lines.
- USY_EMULATE
- Allows the Sysop to see `with the eyes of a user'. Everything the user sees or types is presented to the operator and everything the sysop types appears like it was typed by the user. This enables the operator to help stuck users.
- USY_MONITOR
- Watches all input of all users. Unlike monitor, this only works with software that co-operates with the BBS (i.e. modules et cetera).
- USY_SEND
- Sends an operator message to one user or all users. This is slower to do than a page, but is much more official.
- User account management
- USY_DELETE
- Marks a user for deletion. If the user is online, they are kicked out immediately. The actual deletion will take place at the coming cleanup. Until then, the same command can be used to lift the deletion mark from the victimised user.
- USY_DETAIL
- Display detailed information on the user's account. Some of the information may be restricted, depending on the BBS setup and the operator's access levels.
- USY_EXEMPT
- Forbids the system to delete a user. Deletions, automatic or otherwise, will not affect the specified user. Use the same command again to lift the exemption flag.
- USY_HANGUP
- Hangs up a channel, effectively kicking out a user.
- USY_POST
- Credit a user's account with free or paid credits.
- USY_SEARCH
- Search the database of user accounts. This command allows for powerful search criteria.
- USY_SUSPEND
- Suspends a user. If the user is online, they are kicked out. Suspended users cannot enter the system, getting a suitable message every time they try. You can lift the suspension by using the same command on a suspended user.
- Logs, events and file transfer
- USY_AUDIT
- View the audit trail, starting either with the most recent or oldest entry first.
- USY_CLEANUP
- As above, but shows the cleanup log instead.
- USY_EVENT
- The event manager allows the operator to schedule commands to execute at specified times in the day.
- USY_LOGON
- Set the logon message-of-the-day for one channel or for all channels. A channel will display both its own, individual message and the global message at the login screen, provided of course the messages exist.
- USY_TRANSFER
- Allows the operator to upload and download BBS files.
- USY_SECURITY
- Like USY_AUDIT, but filters the audit trail for security-related entries.
- USY_SIGNUPS
- Like USY_SECURITY, but only shows new signups.
- USY_FILTAUD
- Allows complex filtering of the audit trail, including masking severity levels and specified entry types.
- Statistics
- USY_AGESTATS
- Age demographics. Shows user ages, language use, computer systems, et cetera.
- USY_CLSSTATS
- Shows user class statistics.
- USY_GENSTATS
- Generates user defined bar-graphs plotting a number of quantities against another range of quantities, over a specified range of time and providing totals or averages.
- USY_LINSTATS
- UNIX/Linux statistics. Gives information on the system hosting the BBS.
- USY_MODSTATS
- Module usage statistics.
- USY_SYSTATS
- System-wide statistics: stuff like number of messages written, total number of connections, et cetera.
- USY_TOP
- Shows a wide range of top-Ns (where N is configurable) for things like the oldest user accounts, users with the most downloads or uploads, clubs with the most messages, et cetera.
- User classes and keys
- USY_CLASS
- Moves a user from one class to another.
- USY_CLASSED
- The class editor allows the operator to manage classes by creating new ones, editing existing ones, and deleting old ones. All aspects of classes can be controlled, and users can be mass-moved from one class to another.
- USY_KEYS
- Edit a user's personal keyring.
- Filing and command execution
- USY_COPY
- Copy a file, in a similar way to the shell command cp. Existing target files will be clobbered without confirmation!
- USY_DEL
- Remove a file, much like the shell command rm. No confirmation will be required!
- USY_DIR
- Show the files in a directory.
- USY_EDITOR
- Run the editor on a file.
- USY_REN
- Rename a file, just like the shell command mv.
- USY_SHELL
- Run a child UNIX shell. This is a gigantic security risk. Only operators of the utmost trust should be granted this command, and only those who can use UNIX. As you probably know, the shell isn't exactly forgiving!
- USY_SYS
- Execute a UNIX command. Give this command to the same people who'd get the one above. If you have this command, running a full-blown shell is trivial.
- USY_TYPE
- Print the contents of a file, like the shell command cat would do.
- Privileges and miscellaneous
- Filing and command execution
- USY_PAGEAUDIT
- Pages the operator with audit trail entries, whenever they are logged. Using this command, the operator can select which severities and types of messages will be paged. This removes unnecessary noise on a large system, where unimportant audit trail entries fly by all the time.
- USY_INVIS
- Denotes the presence of the invisibility privilege. Operators owning this privilege can use the /invis global command to become `invisible' by other users. Invisible operators can only be seen and paged by operators with the USY_SYSOP privilege. Thus, an operator with USY_INVIS but without USY_SYSOP can turn invisible, but is isolated from everyone. Not a particularly bad idea, when you need to do some work on a large system.
- USY_GDET
- Denotes the presence of the global detail privilege. This enables the command /l which is synonymous to the USY_DETAIL command here: it displays the specified user's account particulars. Some fields may be hidden depending on the operator's access levels. Global detail hides different fields from USY_DETAIL, due to the global nature of the command.
- USY_SYSOP, USY_MASTERKEY
- Implies that this operator is a full-blown Sysop of the system. Keys no longer apply to them, and they can bypass most restrictions. For all intents and purposes, they behave a bit like root does on a UNIX system. Of course, this does not imply that Sysops are the UNIX superuser! Only one user can actually run this command: the user with ID `Sysop' (or whatever is specified by the SYSOP macro in config.h). For all other users, it is a mere notification of the Sysop privilege. Sysop can use this command to grant and life privileges and commands to other users, promoting them to operators or demoting them back to ordinary users.