Oyun Sunucuları 8 dk okuma

MTA Admin Yetkisi: ACL, aclrequest ve Temel Admin Komutları Rehberi

MTA admin yetkisi nasıl verilir? Yönetici hesabına giriş, acl.xml grupları, kaynak yetkilerini aclrequest ile onaylama, authserial koruması ve en çok kullanılan konsol komutları.

MTA Admin Yetkisi: ACL, aclrequest ve Temel Admin Komutları Rehberi
AnkSOFT
Yayıncı

MTA:SA sunucunuz açıldı, ama oyuncuları atamıyor, kaynak başlatamıyor ya da yönetim paneli P tuşuyla açılmıyorsa sorun neredeyse her zaman yetkidir. MTA admin yetkisi, sunucudaki bir hesabın acl.xml dosyasındaki Admin grubuna eklenmesiyle verilir ve sunucunun hangi kaynağın, hangi hesabın neyi yapabileceğini bu dosya belirler.

Bu rehberde yönetici hesabına nasıl giriş yapılacağını, ACL grupları ve hakların nasıl çalıştığını, bir kaynağın istediği yetkiyi aclrequest ile nasıl onaylayacağınızı, yeni bir bilgisayardan girişte karşılaşılan seri numarası korumasını ve en çok kullanılan konsol komutlarını anlatıyoruz. Komutların tamamı test sunucusunda çalıştırılıp çıktılarıyla doğrulandı.


Yönetici Hesabı: Hazır Gelen Admin

Sunucu kurulduğunda panelin Startup (Başlangıç) sekmesinde iki alan bulunur: Yönetici Kullanıcı Adı (varsayılan admin) ve Yönetici Şifresi (siparişte rastgele üretilir). Sunucu her açıldığında küçük bir yardımcı kaynak bu hesabı oluşturur, şifresini panel değeriyle eşitler ve hesabı Admin grubuna ekler. Konsolda şu satırları görürsünüz:

ACL: anksoft_panel: Object 'user.admin' added to group 'Admin'
[AnkSOFT] Yonetici hesabi hazir: admin (oyunda /login admin <sifre>)

Oyunda sunucuya bağlandıktan sonra sohbete /login admin sifreniz yazın. Giriş başarılı olunca yönetim kaynağı P tuşunu yönetim paneline bağlar.

Şifreyi değiştirmek istediğinizde Startup sekmesindeki Yönetici Şifresi alanına 8 ile 32 karakter arası harf ve rakamdan oluşan yeni şifreyi yazıp sunucuyu yeniden başlatın. Oyun içinden chgmypass ile değiştirdiğiniz şifre bir sonraki açılışta panel değerine döner; kalıcı değişikliği her zaman panelden yapın. Kullanıcı adını değiştirirseniz yeni hesap Admin grubuna eklenir, eski hesap gruptan çıkarılır.


ACL Nedir? Gruplar ve Haklar

ACL (Access Control List), mods/deathmatch/acl.xml dosyasında tutulur ve iki parçadan oluşur:

  • ACL'ler: hak listeleridir. Her hak command.kick ya da function.addAccount gibi bir addır ve access="true" ya da false değeri taşır.
  • Gruplar: nesneleri (hesaplar ve kaynaklar) ACL'lerle eşleştirir. Bir hesap user.hesapadi, bir kaynak resource.kaynakadi biçiminde gruba eklenir.

Varsayılan dosyada en sık işinize yarayacak gruplar şunlardır:

Varsayılan ACL grupları

Bir nesne birden fazla grupta bulunabilir; aynı hak için gruplar farklı sonuç veriyorsa MTA'nın kuralları ACL belgesinde ayrıntılı anlatılır. Pratikte yönetici hesaplarını Admin, yardımcı moderatörleri Moderator ya da SuperModerator grubuna eklemek yeterlidir.

Bir hesabı moderatör yapmak için sunucuyu durdurup acl.xml içinde ilgili grubun içine bir satır ekleyebilirsiniz:

<group name="Moderator">
   <acl name="Moderator" />
   <object name="user.oyuncuadi" />
</group>

Hesabın önce sunucuda var olması gerekir. Konsolda addaccount oyuncuadi Sifre1234 komutu hesap oluşturur; oyuncu da sunucuya bağlanıp kendi hesabını açabilir. Dosyayı düzenlerken sunucu açıksa MTA çalışırken ACL'i yeniden kaydedebileceği için değişikliği sunucu kapalıyken yapın, ya da yönetim panelinin ACL ekranını kullanın.


Kaynak Yetkileri ve aclrequest

Bazı kaynaklar çalışmak için normalde kapalı olan bir hakka ihtiyaç duyar ve bunu meta.xml dosyasında ister. Varsayılan kurulumda bunun bir örneği hazır gelir: ülke bilgisini indiren ip2c kaynağı. İlk açılışta konsolda şu uyarıyı görürsünüz:

Resource 'ip2c' requests some acl rights. Use the command 'aclrequest list ip2c'
WARNING: [admin]/ip2c/server.lua:230: Access denied @ 'fetchRemote'

Test sunucusunda bu isteği şu komutlarla inceleyip onayladık:

aclrequest ile kaynak yetkisi onaylama

Sıra her zaman aynıdır: önce aclrequest list kaynakadi ile istenen hakları görün, kaynağın ne yaptığını bildiğinizden emin olun, sonra aclrequest allow kaynakadi all ya da tek bir hak için aclrequest allow kaynakadi function.fetchRemote ile onaylayın ve kaynağı restart kaynakadi ile yeniden başlatın. Tanımadığınız bir kaynağa function.fetchRemote ya da general.ModifyOtherObjects gibi geniş haklar vermeyin; bu haklar dış adreslere istek atma ya da diğer kaynakların dosyalarını değiştirme yetkisi verir.


Yeni Bilgisayardan Giriş: authserial

Admin grubu varsayılan olarak seri numarası korumasıyla gelir. Konsolda açılışta şu satırı görürsünüz:

Authorized serial account protection is enabled for the ACL group(s): `Admin`

Bu koruma, korunan bir hesaba daha önce görülmemiş bir MTA seri numarasından (başka bir bilgisayardan) giriş yapılmasını, siz onaylayana kadar engeller. Şifreniz bir yerde sızmış olsa bile başka biri yönetici olarak giremez. Yeni bilgisayarınızdan giriş denedikten sonra konsolda şu komutları kullanın:

  • authserial admin son denenen seri numarasını onaylar.
  • authserial admin list hesabın onaylı seri numaralarını listeler.
  • authserial admin remove en son onaylanan seri numarasını kaldırır.

Konsolu panelin Console sekmesinden kullandığınız için bu onayı oyuna girmeden verebilirsiniz.


En Çok Kullanılan Konsol Komutları

Panelin Console sekmesindeki komut satırı sunucu konsoluna yazar ve konsol tam yetkilidir. help komutu kullanılabilir komutların listesini verir. En çok işinize yarayacaklar:

Temel MTA konsol komutları

Oyun içinde aynı komutları sohbete eğik çizgiyle yazabilirsiniz; örneğin /start kaynakadi. Oyunda komutun çalışması için hesabınızın o komut için ACL hakkı olmalıdır. Konsoldan gönderilen komutlar ise her zaman Console adına çalışır.

Test sunucusunda help çıktısının bir kısmı:

start        stop         stopall      restart
refresh      refreshall   list         info
addaccount   delaccount   chgpass      shutdown
whois        aclrequest   authserial   reloadacl

Yönetim Paneli ile Neler Yapılır?

Resmi admin kaynağı, giriş yapan yöneticiye P tuşuyla açılan bir yönetim paneli sunar. Panelin sekmelerinden oyuncuları, kaynakları, haritaları, yasakları ve ACL ayarlarını yönetirsiniz. Sık kullanılan işlemler:

  • Oyuncular: bir oyuncuyu sunucudan atma, susturma, yasaklama, ışınlama, can ve zırh verme, araç verme ya da izleme (spectate).
  • Kaynaklar: kaynakları listeleme, başlatma, durdurma ve yeniden başlatma. Konsoldaki start, stop ve restart komutlarının görsel karşılığıdır.
  • Harita ve mod: harita yöneticisi üzerinden oyun modunu ve haritayı değiştirme.
  • Yasaklar: yasaklı oyuncuları görme ve yasağı kaldırma.
  • ACL: grupları ve hakları görme, bir hesabı gruba ekleme.

Paneldeki her işlem, hesabınızın ACL haklarıyla sınırlıdır. Moderator grubundaki bir hesap panele girebilir ama yalnız grubunun izin verdiği işlemleri yapabilir.


AnkSOFT Panelinde MTA Yönetimi Ekranı

Oyuna girmeden de yönetebilirsiniz. AnkSOFT panelinde sunucu sayfanızın sağ altındaki MTA Yönetimi düğmesi bu rehberdeki işlerin çoğunu komut yazmadan yapar:

  • Yetkililer: bekleyen aclrequest isteklerini hak hak listeler, tek tıkla izin verir ya da reddeder; Admin, Süper Moderatör ya da Moderatör hesabı ekler, şifresini yeniler ve yetkiyi kaldırır. Şifre konsola yazılmadığı için panel kayıtlarında görünmez.
  • Oyuncular: çevrimiçi oyuncuları listeler, oyuncuyu sunucudan atar, MTA seri numarasıyla süreli ya da kalıcı yasaklar ve yasağı kaldırır.
  • Kaynaklar ve konsol: kaynakları başlatır, durdurur ve yeniden başlatır; canlı konsol çıktısı ve oyunculara duyuru sunar.

Başlangıç sekmesindeki panel yönetici hesabı bu ekrandan değiştirilmez; onun şifresini yine Başlangıç sekmesinden yönetin. Ekrandaki işlemler panel izinlerine bağlıdır, alt kullanıcılarınız yalnız verdiğiniz izinlerle işlem yapabilir.


Tarayıcıdan Yönetim: webadmin

Sunucunuz, kaynak indirme için kullandığı HTTP portundan basit bir web arayüzü de sunar. webadmin kaynağı açıkken tarayıcıda sunucunuzun IP adresini ve portunu açtığınızda yönetici hesabınızla giriş yapıp oyuncuları, kaynakları ve ACL ayarlarını görebilirsiniz.

Varsayılan ayarlarda auth_serial_http açıktır: korunan bir hesabın web arayüzüne girişi, yalnız o hesabın yakın zamanda oyunda kullandığı IP adresinden kabul edilir. Bu yüzden web arayüzüne girmeden önce aynı bağlantıdan oyuna girip yönetici hesabınızla giriş yapmanız gerekir. Bu ayarı kapatmak sunucu listesindeki görünürlüğü de etkileyebileceği için açık bırakmanızı öneririz.


Hesap ve Şifre Güvenliği

Yönetici hesabı sunucunuzdaki her şeye erişebildiği için birkaç basit kural büyük fark yaratır:

  • Herkese ayrı hesap: yöneticiler aynı hesabı paylaşmasın. Her kişiye addaccount ile ayrı hesap açın ve gerektiği kadar yetki verin; ayrılan birini yalnız kendi hesabını gruptan çıkararak uzaklaştırırsınız.
  • Güçlü şifre: panel yönetici şifresi için en az 8 karakter ister; uzun ve rastgele bir şifre seçin, başka sitelerde kullandığınız şifreyi kullanmayın.
  • Giriş günlüğü: mods/deathmatch/logs/server_auth.log başarılı ve başarısız girişleri tutar. Tanımadığınız denemeler görürseniz şifreyi panelden değiştirin.
  • Seri numarası koruması: Admin grubundaki korumayı kapatmayın; kapatmak hem güvenliği zayıflatır hem de sunucu listesindeki görünürlüğü etkileyebilir.
  • Kaynak yetkileri: üçüncü taraf kaynakları Admin grubuna eklemeyin. Bir kaynağın gerçekten ihtiyaç duyduğu tek hakkı aclrequest ile verin.

ACL Hakları Nasıl Okunur?

acl.xml dosyasının alt kısmında her ACL için hak listesi bulunur. Hak adları üç önekle başlar:

  • command. önekli haklar konsol ve sohbet komutlarını kapsar. Örneğin command.kick atma, command.start kaynak başlatma komutudur.
  • function. önekli haklar betiklerin çağırabileceği fonksiyonları kapsar. Örneğin function.addAccount hesap oluşturma, function.fetchRemote dış adrese istek atma yetkisidir.
  • general. önekli haklar genel yetkilerdir. general.ModifyOtherObjects bir kaynağın başka kaynakların dosyalarına dokunabilmesini sağlar.

Varsayılan dosyada Default ACL bu hakların çoğunu false yapar ve herkese uygulanır; Moderator, SuperModerator ve Admin ACL'leri ise hakları kademeli olarak açar. Örneğin command.kick Moderator ACL'inde yoktur, SuperModerator ACL'inde açıktır; command.shutdown yalnız Admin ACL'indedir. Bir yetkiyi neden kullanamadığınızı merak ediyorsanız hesabınızın hangi grupta olduğuna, o grubun hangi ACL'leri içerdiğine ve hakkın o ACL'de açık olup olmadığına sırayla bakın.

Konsolun kendisi user.Console olarak Console grubundadır ve Admin ACL'ine sahiptir. Bu yüzden panelin Console sekmesinden yazdığınız komutlar her zaman tam yetkiyle çalışır.


Hesap Kurtarma ve Hesap İşlemleri

Bir oyuncu ya da moderatör şifresini unuttuysa konsoldan yeni şifre verebilirsiniz:

chgpass oyuncuadi YeniSifre123

Bir hesabı tamamen silmek için delaccount oyuncuadi kullanılır. Hesaplar sunucunun mods/deathmatch/internal.db dosyasında tutulur; bu dosya yönetici hesabınız dahil tüm hesapları içerdiği için yedeklerinizde mutlaka bulunsun. Yönetici hesabınızın şifresini ise konsoldan değil, panelin Startup sekmesinden değiştirin; aksi halde bir sonraki açılışta panel değeri yeniden uygulanır.

Atılan ve yasaklanan oyuncular yönetim panelinin oyuncu ve yasak sekmelerinden yönetilir. Yasak listesi mods/deathmatch/banlist.xml dosyasındadır; dosyayı elle düzenlediyseniz konsolda reloadbans komutuyla yeniden yükleyin.


Moderatör Ekibi Kurmak: Adım Adım

Topluluğunuz büyüdükçe yönetimi tek hesapla yürütmek zorlaşır. Test sunucusunda da uyguladığımız yöntemle bir moderatör ekibi şöyle kurulur:

  1. Hesap açın: panelin Console sekmesinde her moderatör için addaccount kullaniciadi GeciciSifre123 yazın. Konsol hesabın oluşturulduğunu bildirir.
  2. Sunucuyu durdurun: Stop düğmesiyle sunucuyu kapatın.
  3. Gruba ekleyin: Files sekmesinde mods/deathmatch/acl.xml dosyasını açın ve hesabı Moderator ya da SuperModerator grubunun içine <object name="user.kullaniciadi" /> satırıyla ekleyin.
  4. Sunucuyu başlatın: açılışta konsolda hata olmadığını kontrol edin.
  5. Şifreyi değiştirtin: moderatör oyuna girip /login kullaniciadi GeciciSifre123 ile giriş yapsın ve kendi şifresini chgmypass ile değiştirsin.

Seri numarası koruması varsayılan olarak yalnız Admin grubuna uygulanır (auth_serial_groups ayarı). Moderatörlerinizi Admin grubuna eklerseniz her biri yeni bir bilgisayardan girdiğinde authserial ile onay vermeniz gerekir. Gerçekten tam yetki gerekmiyorsa moderatörleri Admin'e değil, Moderator ya da SuperModerator grubuna ekleyin.

Ekipten ayrılan birinin yetkisini kaldırmak için aynı yolu tersinden izleyin: sunucuyu durdurup acl.xml içindeki user.kullaniciadi satırını silin ve sunucuyu başlatın. Hesabın tamamen kapanmasını istiyorsanız ardından konsolda delaccount kullaniciadi yazın. Yetkisi alınan hesabın açık oturumu sunucu yeniden başladığında sona erer.


Oyuncu Yönetimi: Atma, Susturma ve Yasaklama

Günlük moderasyonun büyük kısmı yönetim panelinin oyuncu sekmesinden yapılır. P tuşuyla paneli açın, listeden oyuncuyu seçin ve sağdaki düğmeleri kullanın:

  • Kick (at): oyuncuyu sunucudan çıkarır, tekrar bağlanabilir. Kural ihlalinde ilk uyarı için uygundur.
  • Mute (sustur): oyuncunun sohbete yazmasını engeller. Spam ya da hakaret durumunda atmaktan daha yumuşak bir önlemdir.
  • Ban (yasakla): oyuncunun yeniden bağlanmasını engeller. Panel süre ve gerekçe sorar; süreli yasaklar kendiliğinden kalkar.

Her işlemde bir gerekçe yazmak, ekibinizdeki diğer yöneticilerin neden işlem yapıldığını görmesini sağlar. Yasağı kaldırmak için panelin yasak sekmesinden kaydı seçip kaldırmanız yeterlidir. Oyuncu bağlıyken konsolda whois oyuncuadi komutu oyuncunun IP adresini gösterir; bu bilgi yalnız yönetici yetkisiyle görülür, başkalarıyla paylaşmayın.

Bir moderatörün bu düğmelerden hangilerini kullanabileceği, hesabının bulunduğu grubun ACL haklarına bağlıdır. Ekibinize grup vermeden önce acl.xml dosyasında Moderator ve SuperModerator ACL'lerinde hangi hakların açık olduğuna bakın.


En Sık Yapılan Hatalar

  1. Giriş yapmadan P tuşuna basmak: yönetim paneli yalnız Admin grubundaki bir hesapla giriş yapıldıktan sonra açılır. Önce /login kullaniciadi sifre yazın.
  2. Şifreyi oyun içinden değiştirip kalıcı sanmak: panel her açılışta Startup sekmesindeki yönetici şifresini uygular. Şifreyi panelden değiştirin.
  3. Her kaynağa all yetkisi vermek: aclrequest allow kaynak all kolaydır ama tanımadığınız bir kaynağa dış istek ya da dosya yazma hakkı vermek güvenlik açığıdır. Önce aclrequest list ile bakın.
  4. acl.xml dosyasını sunucu açıkken düzenlemek: sunucu çalışırken ACL'i kaydeden bir işlem elle yaptığınız değişikliğin üzerine yazabilir. Düzenlemeyi sunucu kapalıyken yapın.
  5. Yeni bilgisayardan giremeyince şifreyi sıfırlamak: sorun şifre değil seri numarası korumasıdır. Konsolda authserial kullaniciadi ile yeni seri numarasını onaylayın.

Özet

  1. Yönetici hesabı kurulumda hazır gelir; kullanıcı adı ve şifre Startup sekmesindedir, oyunda /login ile girilir.
  2. Yetkiler acl.xml dosyasında gruplar ve haklarla tanımlanır; yöneticiler Admin, yardımcılar Moderator grubuna eklenir.
  3. Kaynakların istediği haklar aclrequest list ile incelenir, gerekiyorsa aclrequest allow ile onaylanır.
  4. Yeni bilgisayardan yönetici girişi authserial ile konsoldan onaylanır.

Sunucunuzu ilk kez kuruyorsanız MTA sunucu kurulumu ve ilk ayarlar rehberine, hazır yönetici hesabıyla gelen paketler için MTA sunucu kiralama sayfasına bakabilirsiniz.

Sıkça Sorulan Sorular

MTA'da P tuşu yönetim panelini neden açmıyor?

Yönetim paneli yalnız Admin grubundaki bir hesapla giriş yapıldığında P tuşuna bağlanır. Sohbete /login kullaniciadi sifre yazarak giriş yapın; hesap Admin grubunda değilse panel açılmaz.

Bir oyuncuyu nasıl moderatör yaparım?

Oyuncunun sunucuda bir hesabı olmalı. Sunucu kapalıyken acl.xml içinde Moderator grubuna user.hesapadi satırını ekleyin ve sunucuyu başlatın; ya da yönetim panelinin ACL ekranından hesabı gruba ekleyin.

aclrequest allow komutu güvenli mi?

Kaynağın ne yaptığını biliyorsanız güvenlidir. Önce aclrequest list ile hangi hakları istediğine bakın; tanımadığınız bir kaynağa dış adrese istek atma ya da diğer kaynakları değiştirme gibi geniş haklar vermeyin.

Yeni bilgisayarımdan yönetici hesabına giremiyorum, ne yapmalıyım?

Admin grubu seri numarası korumasıyla gelir. Yeni bilgisayardan giriş denedikten sonra panelin Console sekmesinde authserial kullaniciadi komutunu çalıştırın; son denenen seri numarası onaylanır ve giriş yapabilirsiniz.

Yönetici şifremi oyunda değiştirdim, yeniden başlatınca eskisine döndü, neden?

Panel her açılışta Startup sekmesindeki yönetici şifresini hesaba uygular. Kalıcı değişiklik için şifreyi Startup sekmesindeki Yönetici Şifresi alanından değiştirip sunucuyu yeniden başlatın.

TR| EN