Minecraft sunucusunda OP verme işlemi, bir oyuncuyu sunucunun operatör listesine ekleyerek ona yönetici komutlarını açmak demektir. En kısa yol sunucu konsoluna op OyuncuAdi yazmak, oyun içinden yapılacaksa /op OyuncuAdi komutunu çalıştırmaktır. Verilen yetkiler sunucu klasöründeki ops.json dosyasında saklanır ve server.properties içindeki op-permission-level değeri bu yetkinin ne kadar ileri gideceğini belirler.
Bu sayfada OP vermenin her yolunu, dört yetki seviyesinin tam karşılığını, ops.json dosyasının yapısını, OP’nin neden ciddi bir güvenlik kararı olduğunu ve daha sağlıklı bir alternatif olan LuckPerms tabanlı rank sistemini anlatıyoruz. Anlatılanlar Vanilla, Paper 26.2, Purpur ve Spigot sunucularının hepsinde aynı biçimde geçerlidir; işletim sistemi fark etmez.
OP Nedir ve Sunucu Tarafında Ne Anlama Gelir?#
“OP”, operator kelimesinin kısaltmasıdır ve Minecraft’ın kendi içinde gelen en temel yetki mekanizmasıdır. Bir eklenti değildir; Vanilla sunucu jar’ının parçasıdır, dolayısıyla hiçbir plugin kurmadan da çalışır. Sunucu, operatör listesini bellekte tutar ve diske ops.json olarak yazar.
Önemli bir ayrım var: OP olmak “her şeye izinli olmak” anlamına gelmez, “belirli bir yetki seviyesine sahip olmak” anlamına gelir. Vanilla komutları bu seviyeye göre filtrelenir. Bukkit tabanlı sunucularda (Spigot, Paper, Purpur) ise durum biraz farklıdır: eklentilerin çoğu izin düğümlerini varsayılan olarak op değerine ayarlar, yani OP olan oyuncu o eklentinin komutlarını da otomatik kullanabilir. OP’nin bu kadar tehlikeli olmasının sebebi tam olarak budur.
Sunucu konsolu her zaman 4. seviye yetkiye sahiptir ve ops.json listesine bakmaz. Bu yüzden yeni kurduğunuz bir sunucuda ilk OP’yi mutlaka konsoldan vermeniz gerekir; oyun içinden veremezsiniz, çünkü henüz /op komutunu çalıştırabilecek kimse yoktur.
Sunucu Konsolundan OP Verme#
Konsol, hangi ortamda çalışırsanız çalışın en güvenilir yoldur. Bir web panel kullanıyorsanız panelin konsol kutusu, terminalden yönettiğiniz bir sunucuda ise sunucunun standart girişi bu işi görür. Konsolda komutların başına eğik çizgi koymak zorunlu değildir; Paper ve Spigot her iki yazımı da kabul eder.
op Oyuncu_Adi
deop Oyuncu_Adi
list
Komut başarılı olduğunda konsolda şu satırı görürsünüz:
[12:04:31] [Server thread/INFO]: Made Oyuncu_Adi a server operator
[12:07:02] [Server thread/INFO]: Made Oyuncu_Adi no longer a server operator
Oyuncu o sırada sunucudaysa yetkisi anında değişir; çıkış yapıp girmesine gerek yoktur. Oyuncu çevrimdışıysa ve sunucu online-mode=true ile çalışıyorsa, sunucu ismi Mojang hesap servisine sorup UUID’yi çözer. İnternet erişimi olmayan bir makinede bu adım başarısız olur ve konsolda “o isimde bir oyuncu bulunamadı” hatası alırsınız.
Oyun İçinden OP Verme ve Geri Alma#
Oyun içinden OP vermek için önce sizin en az 3. seviye yetkiye sahip olmanız gerekir. Bu şart sağlanıyorsa sohbet kutusuna aşağıdaki komutları yazabilirsiniz:
/op Oyuncu_Adi
/deop Oyuncu_Adi
/op @a
/deop @s
@a ve @s hedef seçicileri Vanilla’da çalışır ve sırasıyla “tüm oyuncular” ile “komutu çalıştıran” anlamına gelir. /op @a komutunu üretimdeki bir sunucuda asla çalıştırmayın; sunucudaki herkesi anında operatör yapar.
Kendi yetkinizi yanlışlıkla düşürdüyseniz (/deop @s gibi) panikleyecek bir şey yok: konsola geri dönüp op Kendi_Adiniz yazmanız yeterli. Konsol erişiminiz yoksa sunucuyu durdurup ops.json dosyasını elle düzenleyebilirsiniz.
ops.json Dosyasının Yapısı#
ops.json, sunucu jar dosyasıyla aynı dizinde bulunur; server.properties, whitelist.json, banned-players.json ve usercache.json ile yan yanadır. İçeriği düz bir JSON dizisidir:
[
{
"uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
"name": "Notch",
"level": 4,
"bypassesPlayerLimit": false
},
{
"uuid": "853c80ef-3c37-49fd-aa49-938b674adae6",
"name": "Jeb_",
"level": 2,
"bypassesPlayerLimit": true
}
]
- uuid
- Oyuncunun kalıcı kimliği. Asıl belirleyici alan budur; oyuncu ismini değiştirse bile yetkisi korunur.
- name
- Yalnızca okunabilirlik içindir. Elle değiştirmeniz yetkiyi etkilemez.
- level
- 1–4 arası kişiye özel yetki seviyesi. Bu alan
op-permission-leveldeğerini o oyuncu için ezer. - bypassesPlayerLimit
trueise oyuncu,max-playerssınırı dolu olsa bile sunucuya girebilir. Yetkili ekibi için kullanışlıdır.
ops.json dosyasını düzenlemeyin. Sunucu operatör listesini bellekte tutar ve kapanırken dosyayı bellekteki hâliyle yeniden yazar; elle yaptığınız tüm değişiklikler kaybolur. Ayrıca bozuk bir JSON (eksik virgül, fazladan köşeli parantez) sunucunun açılışta listeyi boş kabul etmesine ve herkesin yetkisini kaybetmesine yol açar.Dosyayı düzenlemenin doğru sırası şudur: sunucuyu stop ile kapatın, dosyayı düzenleyin, kaydedin, sunucuyu tekrar başlatın. Boş bir operatör listesi [] şeklinde yazılır, dosyayı tamamen silmeyin.
op-permission-level: Dört Yetki Seviyesi#
server.properties içindeki op-permission-level ayarı, OP verilen oyuncuların varsayılan seviyesini belirler. Varsayılan değer 4’tür. Seviyeler kümülatiftir: 3. seviye, 1 ve 2’nin haklarını da içerir.
| Seviye | Açılan yetkiler | Tipik kullanım |
|---|---|---|
| 1 | Spawn korumasını (spawn-protection) aşabilir. Komut açılmaz. | Spawn bölgesinde çalışan inşaatçılar |
| 2 | /gamemode, /give, /tp, /clear, /difficulty, /effect, /gamerule, /summon, /setblock, /kill ve komut bloğu düzenleme. | Harita yapımcıları, etkinlik ekibi |
| 3 | Yukarıdakilere ek olarak /ban, /kick, /pardon, /whitelist, /op ve /deop. | Moderatör ve yardımcı ekip |
| 4 | Tüm komutlar. /stop, /save-all, /save-off, /save-on, /debug dahil. | Yalnızca sunucu sahibi |
Buradaki en pratik bilgi şu: seviye ayarını global olarak düşürmek yerine, kişi bazında ops.json içindeki level alanını değiştirmek çoğu senaryoda daha doğrudur. Sahip hesabı 4’te kalır, moderatörler 3’e, etkinlik ekibi 2’ye çekilir.
function-permission-level ile karıştırmayın#
function-permission-level ayrı bir ayardır ve datapack fonksiyonlarının ile komut bloklarının hangi seviyeden çalışacağını belirler. Varsayılanı 2’dir. Bir datapack’in çalışması için 3 veya 4 istemesi genellikle o datapack’in oyuncu yönetimi komutları çalıştırmaya çalıştığı anlamına gelir; böyle bir paketi kurmadan önce içeriğini gözden geçirin. Konuya datapack kurulumu sayfasında ayrıntılı değiniyoruz.
server.properties’te Yetkiyi Etkileyen Diğer Ayarlar#
OP yönetimini tek başına op-permission-level belirlemez. Aşağıdaki ayarlar da doğrudan yetki davranışını değiştirir:
op-permission-level=4
function-permission-level=2
enable-command-block=false
spawn-protection=16
broadcast-console-to-ops=true
broadcast-rcon-to-ops=true
enable-rcon=false
white-list=true
enforce-whitelist=true
| Ayar | Önerilen | Neden |
|---|---|---|
enable-command-block | false | Açıkken 2. seviye OP’ler komut bloğu üzerinden dolaylı olarak daha yüksek yetkili işler yapabilir. |
spawn-protection | 16 veya üzeri | OP olmayan oyuncuların spawn bölgesini bozmasını engeller. WorldGuard kullanıyorsanız 0 yapıp bölgeyi eklentiyle yönetin. |
broadcast-console-to-ops | true | Konsoldan çalıştırılan komutları OP’lere gösterir; ekip içi denetim için faydalıdır. |
enable-rcon | false | RCON parolası ele geçerse saldırgan konsol seviyesinde, yani 4. seviye yetkiyle komut çalıştırır. |
white-list | true | Yetki sisteminden önceki ilk filtredir. Ayrıntı için whitelist kurulumu sayfasına bakın. |
Dosyadaki tüm satırların anlamını server.properties ayarları tam listesi sayfasında bulabilirsiniz. Değişiklikten sonra sunucuyu yeniden başlatmayı unutmayın; server.properties yalnızca açılışta okunur.
OP Vermenin Riskleri ve Güvenli Kullanım Kuralları#
OP’nin en büyük sorunu ince ayar yapılamamasıdır. Bir oyuncuya “sadece kick atabilsin” demek isterseniz OP bunu sağlayamaz; 3. seviye verdiğinizde /ban ve /op de gelir. Üstelik Bukkit tabanlı sunucularda kurulu eklentilerin çoğu OP’ye kendi komutlarını da açar, yani WorldEdit kuruluysa yeni OP’niz //set air ile büyük bir alanı boşaltabilir.
-
OP listesini olabildiğince kısa tutun#
Kalıcı OP sayısı ideal olarak birdir: sunucu sahibi. Geri kalan herkes izin eklentisi üzerinden yetkilendirilmelidir. Mevcut listeyi görmek için konsolda dosyayı okuyabilir ya da oyun içinde
/opkomutunu argümansız çalıştırıp tamamlanan isimlere bakabilirsiniz. -
Geçici yetkiyi işi biter bitmez alın#
Bir inşaatçıya bir akşamlığına yetki verdiyseniz, o gece
deopile geri alın. “Sonra hallederim” diye bırakılan OP’ler zamanla unutulur ve hesap ele geçirildiğinde sunucunun açık kapısı hâline gelir. -
Konsol loglarını saklayın#
logs/latest.logdosyasında her OP verme ve alma işlemi kayıtlıdır. Sunucuda beklenmedik bir şey olduğunda ilk bakılacak yer burasıdır. Düzenli yedek almak, kötüye kullanım durumunda geri dönebileceğiniz tek gerçek güvence. -
Griefing korumasını yetkiden bağımsız kurun#
CoreProtect gibi bir günlükleme eklentisi, OP’li bir kullanıcının yaptığı değişiklikleri de kaydeder ve geri alınabilir kılar. Griefing önleme rehberimizde hangi eklentiyle neyin geri alınabildiğini karşılaştırdık.
OP Yerine LuckPerms: Kademeli Yetki Sistemi#
Birden fazla yetkilinin olduğu her sunucuda doğru çözüm bir izin eklentisidir. LuckPerms bugün fiilî standarttır: Paper, Spigot, Purpur, Fabric, NeoForge, Velocity ve BungeeCord yapıları ayrı ayrı dağıtılır ve 5.5.57 sürümüyle Minecraft 26.2 tam desteklenir. Kurulumun genel adımları için plugin kurulumu rehberine, ayrıntılı yapılandırma için LuckPerms yetki sistemi kurma sayfasına bakabilirsiniz.
Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin. EssentialsX 2.22.0 resmî olarak 26.1.2’ye kadar destek belirtir; 26.2 sunucularında kurmadan önce test ortamında deneyin.
LuckPerms kurulduktan sonra tipik bir moderatör grubu şu komutlarla oluşturulur. Komutları sunucu konsolunda çalıştırabilirsiniz:
lp creategroup mod
lp group mod meta setprefix "&9[Mod] "
lp group mod permission set minecraft.command.kick true
lp group mod permission set minecraft.command.tp true
lp group mod permission set essentials.mute true
lp group default parent add mod false
lp user Oyuncu_Adi parent set mod
lp user Oyuncu_Adi info
Vanilla komutlarının izin düğümleri Bukkit tarafında minecraft.command.<komut> kalıbını kullanır. Yani /ban için minecraft.command.ban, /whitelist için minecraft.command.whitelist yazarsınız. Bu sayede oyuncuya OP vermeden yalnızca ihtiyaç duyduğu komutları açabilirsiniz.
| Kriter | OP | LuckPerms |
|---|---|---|
| Komut bazında yetki | Yok | Var |
| Grup ve kalıtım | Yok | Var |
| Süreli yetki (geçici rank) | Yok | Var |
| Dünya bazlı izin ayrımı | Yok | Var |
| Sunucu ağında merkezî yönetim | Her sunucuda ayrı | MySQL ile tek merkez |
| Değişiklik geçmişi | Yok | Var |
| Eklenti gerektirir mi | Hayır | Evet |
Sık Karşılaşılan OP Sorunları ve Çözümleri#
“That player does not exist” / oyuncu bulunamadı#
Sunucu, yazdığınız ismi UUID’ye çeviremiyor. Üç olası sebep var: isim yanlış yazılmış, sunucunun Mojang hesap servisine erişimi yok (giden 443 portu kapalı ya da DNS sorunu), veya sunucu online-mode=false ile çalışıyor ve oyuncu daha önce hiç bağlanmamış. Offline modda çözüm basittir: oyuncu bir kez giriş yapsın, sonra OP verin.
OP verildi ama eklenti komutları çalışmıyor#
Kurulu bir izin eklentisi varsa OP bayrağı çoğu zaman devre dışı kalır, çünkü izin eklentisi tüm izin sorgularını kendisi cevaplar. Konsolda lp user Oyuncu_Adi permission check essentials.gamemode komutuyla gerçek durumu görün. Ayrıca bazı eklentiler ayrı bir “admin” izni ister; eklentinin kendi belgesindeki düğüm listesine bakmak gerekir.
ops.json değişiklikleri kayboluyor#
Dosyayı sunucu çalışırken düzenlediniz. Sunucu kapanırken bellekteki listeyi diske yazar ve elle eklediğiniz satırlar silinir. Sunucuyu durdurun, düzenleyin, sonra başlatın. Panel kullanıyorsanız dosya yöneticisinde düzenleme yapmadan önce sunucunun durduğundan emin olun.
26.1 sonrası eklenti uyumsuzluğu#
Minecraft 26.1 ile Mojang obfuscated sunucu jar’ı yayınlamayı bıraktı; bu bir ABI kırılmasıdır. NMS kullanan eski izin ve yönetim eklentileri yeniden derlenmeden 26.1 ve 26.2 üzerinde çalışmaz. Bir yetki eklentisi “çalışıyor ama izinleri uygulamıyor” gibi davranıyorsa önce sürüm uyumunu kontrol edin, konsoldaki başlangıç uyarılarını okuyun.
Proxy arkasındaki sunucularda OP tutarsızlığı#
Velocity veya BungeeCord kullanıyorsanız her alt sunucunun kendi ops.json dosyası vardır. Lobby’de OP olan bir oyuncu survival sunucusunda OP olmayabilir. Doğru çözüm OP’yi hiç kullanmamak, yetkileri MySQL destekli tek bir LuckPerms kurulumundan yönetmektir.
Yetki Yönetimi İçin Hızlı Kontrol Listesi#
Küçük özel sunucu#
- Sadece sahip 4. seviye OP
- Arkadaşlara OP yerine whitelist
enable-command-block=falseenable-rcon=false
Halka açık sunucu#
- Tek OP: sahip hesabı
- Tüm ekip LuckPerms grupları üzerinden
- CoreProtect ile işlem günlüğü
- Günlük otomatik yedek
Sunucu ağı#
ops.jsontüm alt sunucularda boş- LuckPerms + MySQL merkezî yetki
- Proxy’de
player-info-forwardingdoğru ayarlı - Alt sunucular yalnızca proxy IP’sini kabul etsin
Bu listeye ek olarak, yetki dağıtımını sunucu güvenliğinin bütününden ayrı düşünmeyin. Minecraft sunucu güvenliği rehberinde parola politikası, port sıkılaştırma ve eklenti kaynağı doğrulama gibi konuları ele aldık. Komutların tam listesi ve söz dizimi için sunucu konsol komutları sayfası pratik bir başvuru kaynağıdır.
Özetle#
OP vermek tek satırlık bir iş: konsolda op OyuncuAdi, oyun içinde /op OyuncuAdi. Asıl mesele kime, hangi seviyede ve ne kadar süreyle verdiğinizdir. Yetkiler ops.json dosyasında saklanır, dosya yalnızca sunucu kapalıyken düzenlenmelidir ve op-permission-level ile kişi bazlı level alanı yetkinin sınırını belirler.
Tek kişilik bir dünyada OP fazlasıyla yeterlidir. Ekip büyüdüğü anda ise OP’nin “ya hep ya hiç” yapısı sorun çıkarmaya başlar. O noktada LuckPerms kurup grupları tanımlamak, ops.json dosyasını boşaltmak ve tek bir sahip hesabı dışında kimseye operatör yetkisi bırakmamak en sağlıklı düzendir. Yetki verirken attığınız her adımı geri alınabilir hâle getirin: log tutun, yedek alın, gerekmeyen yetkiyi aynı gün kaldırın.