Structura de permisiuni în Rust: De unde începem?
Dacă administrezi un server de Rust, probabil ai instalat deja Oxide (cunoscut acum sub numele de uMod) pentru a rula pluginuri. Totuși, instalarea pluginurilor este doar prima parte a muncii. Adevărata provocare pentru mulți administratori începe atunci când jucătorii se plâng că nu pot folosi comenzile sau, mai rău, când jucătorii obișnuiți capătă acces la comenzi destinate exclusiv staff-ului.
Oxide folosește un sistem de permisiuni bazat pe grupuri și utilizatori. În loc să modifici fișiere de configurare complexe pentru fiecare jucător în parte, poți controla totul direct din consola serverului sau prin fișierele JSON din folderul oxide/data.
Grupurile implicite (Default) din Oxide
Atunci când instalezi Oxide pe server, acesta creează automat două grupuri de bază:
- default: Fiecare jucător care se conectează la server este adăugat automat în acest grup. Permisiunile generale (cum ar fi teleportarea de bază sau accesul la comenzi publice) ar trebui acordate acestui grup.
- admin: Acest grup este destinat administratorilor serverului. Atenție: doar pentru că ai
ownerid sau moderatorid setat în fișierele de sistem ale serverului de Rust, nu înseamnă că ești adăugat automat și în grupul admin de la Oxide. Trebuie să te adaugi manual.
Comenzile esențiale: Grant și Revoke
Administrarea permisiunilor se face prin patru comenzi simple executate în consola serverului (sau în joc, dacă ai drepturi de administrator):
1. Acordarea unei permisiuni
Pentru a oferi unei întregi categorii de jucători acces la o funcție:
oxide.grant group <nume_grup> <permisiune>
Exemplu pentru a permite tuturor jucătorilor să folosească un plugin de chat:
oxide.grant group default betterchat.use
Pentru a oferi permisiune unui singur jucător:
oxide.grant user <SteamID64> <permisiune>
2. Retragerea unei permisiuni
Dacă vrei să dezactivezi o funcție pentru un grup sau utilizator:
oxide.revoke group <nume_grup> <permisiune>
oxide.revoke user <SteamID64> <permisiune>
Exemplu practic: Configurare ierarhie pentru un plugin de Teleport
Să luăm un caz clasic: instalarea unui plugin de teleport (de exemplu, NTeleportation). Jucătorii normali ar trebui să aibă acces la comenzi de bază, în timp ce VIP-urile ar trebui să poată stabili mai multe puncte de salvare (“homes”).
Oferă acces de bază jucătorilor obișnuiți:
oxide.grant group default nteleportation.home
Creează un grup nou pentru VIP:
oxide.group add vip
Oferă permisiunile superioare grupului nou creat:
oxide.grant group vip nteleportation.vip
oxide.grant group vip nteleportation.home (sau poți folosi moștenirea de grupuri, despre care discutăm mai jos).
Adaugă un jucător în grupul VIP:
oxide.usergroup add <SteamID64> vip
Cum eviți conflictele de acces și erorile frecvente
- Nu folosi wildcard-ul (*) decât dacă știi sigur ce faci. Comanda
oxide.grant group admin * oferă grupului admin toate permisiunile existente pe server. Deși pare util, poate genera erori mari sau conflicte între pluginuri care folosesc aceleași denumiri de permisiuni.
- Folosește moștenirea (Inheritance). În loc să adaugi aceleași permisiuni de bază pentru fiecare grup nou de VIP sau Moderator, poți face un grup să moștenească permisiunile altui grup:
oxide.group parent vip default
În acest mod, grupul vip va avea automat toate drepturile grupului default, plus cele specifice pe care le atribui manual grupului vip.
- Verifică permisiunile unui jucător. Dacă un jucător se plânge că nu îi funcționează o comandă, verifică ce permisiuni active are cu:
oxide.show user <nume_sau_SteamID64>
De asemenea, poți vedea ce permisiuni sunt înregistrate de un anumit plugin folosind comanda oxide.show perm <nume_plugin> (de exemplu, oxide.show perm NTeleportation).
Concluzie
Sistemul de permisiuni Oxide este extrem de stabil dacă este configurat curat de la început. Evită să acorzi permisiuni individuale pe SteamID; folosește întotdeauna grupurile (default, vip, moderator) pentru a păstra folderul oxide/data organizat și ușor de întreținut după wipe-uri.
Tu ce experiență ai avut cu configurarea permisiunilor pe Rust?
Ai întâmpinat conflicte de pluginuri sau comenzi care refuzau să funcționeze deși permisiunile păreau corecte?
Spune-ne părerea ta și hai să discutăm pe forum!