PL/Access Control List: Difference between revisions
No edit summary |
No edit summary |
||
Line 16: | Line 16: | ||
*Zezwalanie zasobowi na używanie funkcji restartResource | *Zezwalanie zasobowi na używanie funkcji restartResource | ||
*Zezwalanie zasobowi na użycie wywołania (call) w celu użycia funkcji wyeksportowanych z innego skryptu | *Zezwalanie zasobowi na użycie wywołania (call) w celu użycia funkcji wyeksportowanych z innego skryptu | ||
===Domyślne grupy=== | |||
MTA dostarcza do listy ACL domyślne grupy z rosnącymi uprawnieniami. Te grupy to: | |||
*'''Everyone''' | |||
*'''Moderator''' | |||
*'''SuperModerator''' | |||
*'''Admin''' | |||
*'''Console''' - Kontroluje uprawnienia osób, które używają konsoli poprzez '''<object name = "user.Console" />''' | |||
*'''RPC''' - Zdalne wywołanie procedury. W szczególności przyznaje dostęp tylko do [[callRemote]] i wyłącza polecenia zasobów domyślnych. Sprawdź funkcję, aby uzyskać szczegółowe informacje. | |||
<br \> | |||
Aby dokładniej wyjaśnić, użyję grupy 'Everyone' jako przykładu. Domyślnie wygląda to tak: | |||
<syntaxhighlight lang="xml"> | |||
<group name="Everyone"> | |||
<acl name="Default" /> | |||
<object name="user.*" /> | |||
<object name="resource.*" /> | |||
</group> | |||
</syntaxhighlight> |
Revision as of 16:36, 6 December 2020
MTA zawiera pełną listę kontroli dostępu (ACL), która pozwala na zabezpieczenie i ograniczenie dostępu do serwera, jego funkcji i zasobów na wiele różnych sposobów.
Kluczową koncepcją ACL w MTA (i ogólnie list ACL) jest to, że nadajesz określonemu obiektowi zestaw praw. W przypadku MTA obiekty to jedna z dwóch rzeczy - zasoby lub użytkownicy. W MTA dostępnych jest wiele praw - dotyczą one głównie funkcji skryptowych po stronie serwera.
Zasadniczo oznacza to, że lista ACL pozwala dokładnie wybrać funkcje, które może wykonywać zasób lub użytkownik. Może to być oczywiście nieocenione - na przykład uniemożliwianie wszystkim graczom na serwerze możliwości blokowania się nawzajem lub uniemożliwienie tym samym nowym, nieprzetestowanym zasobom.
Oczywiście „z wielką mocą wiąże się wielka odpowiedzialność” i bardzo łatwo jest całkowicie zniszczyć zasoby - na przykład wyłączenie spawnPlayer dla wszystkich zasobów byłoby złą rzeczą. Aczkolwiek są sytuacje, w których możesz to zrobić - jeśli chcesz na przykład zmusić wszystkie swoje zasoby do korzystania z zasobu menedżera odradzania, ale nawet To jest nieco drakońskie.
Zrozumienie ACL
Lista ACL ma dwa główne składniki: grupy i listy ACL. Pojawiają się jako sekcje '<group name = "">' i '<acl name = "" />' . Ich celem jest:
1. Przyznanie użytkownikom uprawnień do kontrolowania serwera i używania poleceń dotyczących zasobów. Przykłady:
- Zezwalanie tylko administratorom na używanie funkcji giveweapon zasobu Freeroam
- Zezwalanie wszystkim użytkownikom na uruchamianie zasobu
2. Przyznaj zasobom uprawnienia do korzystania z funkcji skryptów i funkcji innych zasobów. Przykłady:
- Zezwalanie zasobowi na używanie funkcji restartResource
- Zezwalanie zasobowi na użycie wywołania (call) w celu użycia funkcji wyeksportowanych z innego skryptu
Domyślne grupy
MTA dostarcza do listy ACL domyślne grupy z rosnącymi uprawnieniami. Te grupy to:
- Everyone
- Moderator
- SuperModerator
- Admin
- Console - Kontroluje uprawnienia osób, które używają konsoli poprzez <object name = "user.Console" />
- RPC - Zdalne wywołanie procedury. W szczególności przyznaje dostęp tylko do callRemote i wyłącza polecenia zasobów domyślnych. Sprawdź funkcję, aby uzyskać szczegółowe informacje.
Aby dokładniej wyjaśnić, użyję grupy 'Everyone' jako przykładu. Domyślnie wygląda to tak:
<group name="Everyone"> <acl name="Default" /> <object name="user.*" /> <object name="resource.*" /> </group>