💼 Mülakat S&C
Mülakat S&C: 🎬 Linux Senaryo Sorusuna Güçlü Cevap Anatomisi Mülakatçı soruyor: "CI pipeline'ında script Permission denied veriyor ama local'de çalışıyor — ne yaparsın?" Bu filmd
🎬 Linux Senaryo Sorusuna Güçlü Cevap Anatomisi
Mülakatçı soruyor: "CI pipeline'ında script Permission denied veriyor ama local'de çalışıyor — ne yaparsın?" Bu filmde aynı soruya iki cevabın farkını izleyeceksin: refleks ile yapılandırılmış cevap.
Zayıf refleks: "chmod 777 atarım, kesin çözülür." Evet — çalışır. Ama mülakatçının gördüğü şey çözüm değil: paylaşılan bir makinede herkese yazma yetkisi açan bir GÜVENLİK KÖRLÜĞÜdür.
Güçlü cevabın 1. katmanı — KANIT: "Önce `ls -l` ile izin string'ine, `whoami` ile CI'ın hangi kullanıcıyla koştuğuna bakarım. Local'de ben owner'ım; CI muhtemelen başka bir kullanıcı — fark buradan doğuyor olabilir."
2. katman — komut + GEREKÇE: "`chmod u+x` derim, çünkü ihtiyaç yalnızca owner'ın çalıştırabilmesi. 777'yi bilerek REDDEDERİM — herkese yazma yetkisi, paylaşılan CI'da güvenlik açığıdır." Reddettiğin alternatifi söylemek, komutun kendisinden değerlidir.
3. katman — KÖK neden: "chmod geçici bir yara bandı; taze checkout biti yine düşürebilir. Kalıcı çözüm, biti repoya işlemek: `git update-index --chmod=+x`. Böylece hata bir daha HİÇ dönmez." Bu cümle, yangın söndüren ile yangını önleyeni ayırır.
4. katman — Java köprüsü: "Linux izinleri, Java erişim modifier'larının dosya sistemi hali: 700 ≈ private, 644 ≈ herkese-okunur public alan. 777 vermek, her field'ı public yapıp 'artık çalışıyor' demek gibidir." Bildiğin dünyaya köprü, cevabı kalıcı yapar.
Final — formül: kanıt komutları → komut + gerekçe (reddettiğin alternatifle) → kalıcı kök çözüm → Java analojisi. Aşağıdaki her mülakat sorusunda cevabını bu 4 katmandan geçir; sıralı düşünen aday, komut ezberleyeni her zaman geçer.
Adım Adım: Linux Senaryo Cevabı Kurma
Cevaba koşulları netleştirerek başla: hangi kullanıcı koşuyor, hangi dağıtım, container mı VM mi? "Local'de çalışıyor" cümlesindeki local ile CI arasındaki farkı sorgulamak, cevabın ilk puanıdır.
Kanıt komutlarını sırala
"Önce `ls -l`, `whoami`, `echo $PATH` ile bakarım" de — hangi komutun hangi katmanı kanıtladığını söylemek, komut ezberinden ayrışmanın yoludur.
Komutu gerekçesiyle ver
Seçtiğin komutu NEDENiyle ve reddettiğin alternatifle söyle: "u+x yeter, 777 paylaşılan makinede güvenlik açığı olurdu". Gerekçesiz cevap, ezberden ayırt edilemez.