9.0 KiB
Operator Configuration Guide
TechIRCd features a sophisticated hierarchical operator system with separate configuration files and granular permission control.
Overview
The operator system consists of:
- Operator Classes: Define ranks, permissions, and inheritance
- Individual Operators: Specific users with assigned classes
- Permission System: Granular control over what operators can do
- Rank Hierarchy: Higher ranks can operate on lower ranks
Configuration Files
Main Config (config.json)
"oper_config": {
"config_file": "configs/opers.conf",
"enable": true
}
Operator Config (configs/opers.conf)
Contains the complete operator hierarchy and individual operator definitions.
Operator Classes
Customizable Rank Names
TechIRCd allows you to completely customize the names of operator ranks. Instead of using the standard Helper/Moderator/Operator names, you can create themed naming schemes:
"rank_names": {
"rank_1": "Cadet", // Instead of "Helper"
"rank_2": "Sergeant", // Instead of "Moderator"
"rank_3": "Lieutenant", // Instead of "Operator"
"rank_4": "Captain", // Instead of "Administrator"
"rank_5": "General", // Instead of "Owner"
"custom_ranks": {
"Field Marshal": 6, // Custom ranks beyond 5
"Supreme Commander": 10
}
}
Popular Naming Themes
Gaming/Military Theme
- Rank 1:
Cadet,Recruit,Private - Rank 2:
Sergeant,Corporal,Specialist - Rank 3:
Lieutenant,Captain,Major - Rank 4:
Colonel,General,Commander - Rank 5:
Admiral,Marshal,Supreme Commander
Corporate/Business Theme
- Rank 1:
Intern,Assistant,Associate - Rank 2:
Specialist,Senior Associate,Team Lead - Rank 3:
Manager,Senior Manager,Department Head - Rank 4:
Director,VP,Executive - Rank 5:
CEO,President,Chairman
Fantasy/Medieval Theme
- Rank 1:
Apprentice,Squire,Page - Rank 2:
Guardian,Warrior,Mage - Rank 3:
Knight,Paladin,Wizard - Rank 4:
Lord,Baron,Archmage - Rank 5:
King,Emperor,Divine Ruler
Sci-Fi Theme
- Rank 1:
Ensign,Technician,Cadet - Rank 2:
Engineer,Pilot,Specialist - Rank 3:
Commander,Captain,Leader - Rank 4:
Admiral,Fleet Commander,Director - Rank 5:
Supreme Admiral,Galactic Emperor,AI Overlord
Built-in Classes (Default Names)
Helper (Rank 1)
- Symbol:
% - Color: Green
- Permissions: Basic moderation
kick- Kick users from channelstopic- Change channel topicsmode_channel- Change channel modes
Moderator (Rank 2)
- Symbol:
@ - Color: Blue
- Inherits: Helper permissions
- Additional Permissions:
ban/unban- Manage channel bansmute- Mute usersmode_user- Change user modeswho_override- See hidden users in WHO
Operator (Rank 3)
- Symbol:
* - Color: Red
- Inherits: Moderator permissions
- Additional Permissions:
kill- Kill user connectionsgline- Global bansrehash- Reload configurationconnect/squit- Server linkingwallops/operwall- Send operator messages
Administrator (Rank 4)
- Symbol:
& - Color: Purple
- Permissions:
*(All permissions)
Owner (Rank 5)
- Symbol:
~ - Color: Gold
- Special Permissions:
*- All permissionsoverride_rank- Can operate on same/higher ranksshutdown/restart- Server control
Custom Classes
Create your own operator classes:
{
"name": "security",
"rank": 3,
"description": "Security Officer - Network protection",
"permissions": [
"kill",
"gline",
"scan_network",
"access_logs"
],
"inherits": "moderator",
"color": "orange",
"symbol": "!"
}
Individual Operators
Basic Operator Definition
{
"name": "alice",
"password": "secure_password_here",
"host": "*@trusted.example.com",
"class": "moderator",
"flags": ["extra_channels"],
"max_clients": 500,
"contact": "alice@example.com"
}
Advanced Features
{
"name": "bob",
"password": "another_secure_password",
"host": "admin@192.168.1.*",
"class": "admin",
"flags": ["debug_access", "special_channels"],
"max_clients": 1000,
"expires": "2025-12-31",
"contact": "bob@company.com",
"last_seen": "2025-07-30T10:30:00Z"
}
Permission System
Standard Permissions
Channel Management
kick- Kick users from channelsban/unban- Manage channel banstopic- Change channel topicsmode_channel- Change channel modesmode_user- Change user modes
User Management
kill- Disconnect usersgline- Global network bansmute- Silence userswho_override- See hidden information
Server Management
rehash- Reload configurationconnect/squit- Server linkingwallops/operwall- Operator communicationsshutdown/restart- Server control
Special Permissions
*- All permissions (wildcard)override_rank- Ignore rank restrictionsdebug_access- Debug commandslog_access- View server logs
Custom Permissions
Add your own permissions for custom commands:
"permissions": [
"custom_report",
"special_database_access",
"network_monitoring"
]
Security Features
Settings Configuration
"settings": {
"require_ssl": true,
"max_failed_attempts": 3,
"lockout_duration_minutes": 30,
"log_oper_actions": true,
"notify_on_oper_up": true,
"auto_expire_inactive_days": 365,
"require_two_factor": false
}
Security Options
- SSL Requirement: Force SSL for operator authentication
- Failed Attempt Tracking: Lock accounts after failed attempts
- Action Logging: Log all operator actions
- Auto-Expiration: Remove inactive operators
- Two-Factor Authentication: (Future feature)
Rank System
How Ranks Work
- Higher numbers = Higher authority
- Same rank cannot operate on each other
- Override permission bypasses rank restrictions
Example Hierarchy
Owner (5) -> Can do anything to anyone
Admin (4) -> Can operate on Operator (3) and below
Operator (3) -> Can operate on Moderator (2) and below
Moderator (2) -> Can operate on Helper (1) and below
Helper (1) -> Can only operate on regular users
WHOIS Integration
The operator system integrates with WHOIS to show:
- Operator status with custom symbols
- Class names and descriptions
- Custom rank names based on your configuration
- Permission levels
Example WHOIS output with custom rank names:
[313] alice is an IRC operator (moderator - Channel and user management) [Sergeant]
[313] bob is an IRC operator (captain - Senior officer with full authority) [Captain]
With fantasy theme:
[313] merlin is an IRC operator (lord - Ruler of vast territories) [Lord]
Configuration Examples
Quick Setup - Gaming Theme
{
"rank_names": {
"rank_1": "Cadet",
"rank_2": "Sergeant",
"rank_3": "Lieutenant",
"rank_4": "Captain",
"rank_5": "General"
},
"classes": [
{
"name": "cadet",
"rank": 1,
"description": "New recruit with basic training",
"permissions": ["kick", "topic"],
"symbol": "+",
"color": "green"
}
]
}
See /configs/examples/ for complete themed configurations:
opers-gaming-theme.conf- Military/Gaming ranksopers-corporate-theme.conf- Business hierarchyopers-fantasy-theme.conf- Medieval/Fantasy theme
Migration from Legacy
TechIRCd automatically falls back to the legacy operator system if:
oper_config.enableisfalse- The opers.conf file cannot be loaded
- No matching operator is found in the new system
Legacy operators get basic permissions and rank 1.
Commands for Operators
Checking Permissions
/WHOIS operator_name # See operator class and rank
/OPERLIST # List all operators (future)
/OPERHELP # Show operator commands (future)
Management Commands
/OPER name password # Become an operator
/OPERWALL message # Send message to all operators
/REHASH # Reload configuration
Best Practices
Security
- Use strong passwords for all operators
- Restrict host masks to trusted IPs
- Enable SSL requirement for sensitive ranks
- Regularly audit operator lists
- Set expiration dates for temporary operators
Organization
- Create classes that match your network structure
- Use inheritance to avoid permission duplication
- Document custom permissions clearly
- Use descriptive class names and descriptions
- Assign appropriate symbols and colors
Maintenance
- Review operator activity regularly
- Remove inactive operators
- Update permissions as needed
- Monitor operator actions through logs
- Keep opers.conf in version control
This operator system makes TechIRCd extremely flexible for networks of any size, from small communities to large networks with complex hierarchies!