🔧

Root Ownership Fixer

Otomatik Düzeltme Aracı

tuufi.com
5 Ocak 2026
🚨

Sorun: Root-Owned Dosyalar

Laravel uygulamasında Claude Code ile yapılan dosya işlemleri (Write/Edit tool) root:root ownership ile oluşturuluyor. Bu da PHP-FPM'in bu dosyalara erişememesine neden oluyor.

❌ Sorunlar
  • • Permission Denied hataları
  • • Composer autoload erişilemiyor
  • • Config cache oluşturulamıyor
  • • Console komutları çalışmıyor
✅ Çözüm
  • • Tüm dosyalar → tuufi.com_:psaserv
  • • Dosya izinleri → 644
  • • Klasör izinleri → 755
  • • Storage özel izinler → 777

📝 Basit Anlatım (Herkes İçin)

Ne yapıyor bu script?
Sistemde "root" kullanıcısı tarafından oluşturulmuş dosyaları bulup, doğru kullanıcıya (tuufi.com_) çeviriyor. Böylece web sunucusu ve PHP bu dosyalara sorunsuz erişebiliyor.

Neden önemli?
Root kullanıcısının dosyalarına normal kullanıcı (PHP) erişemez. Bu da sitenin bazı özelliklerinin çalışmamasına neden olur. Bu script sayesinde tek komutla tüm izinler düzeltilebiliyor.

Ne zaman kullanmalı?
Claude Code ile dosya oluşturduktan sonra veya "Permission Denied" hatası aldığınızda çalıştırın. Script otomatik olarak sorunları tespit edip düzeltir.

🔧 Teknik Detaylar (Geliştiriciler İçin)

Script Özellikleri:
  • Otomatik Kullanıcı Tespiti: composer.json dosyasının owner'ından doğru kullanıcıyı bulur
  • Manuel Kullanıcı Desteği: İsteğe bağlı kullanıcı:grup parametresi
  • Git Koruması: .git klasörü hiç dokunulmaz (git için root gerekli)
  • Paralel İşlem: xargs -P 4 ile hızlı toplu düzeltme
  • İzin Düzeltme: Dosya 644, klasör 755, storage 777
  • Renkli Çıktı: Terminal'de görsel feedback
  • Onay Mekanizması: İşlem öncesi kullanıcı onayı
Script Konumu:
/var/www/vhosts/tuufi.com/httpdocs/public/readme/2026/01/05/root-ownership-fixer/v1/fix-root-ownership.sh
İşlem Adımları:
  1. Doğru kullanıcıyı tespit et (composer.json owner'ı)
  2. Root-owned dosyaları say (.git hariç)
  3. Kullanıcıdan onay al
  4. Tüm dosya ownership'lerini düzelt (tuufi.com_:psaserv)
  5. Tüm klasör ownership'lerini düzelt
  6. Dosya izinlerini düzelt (644)
  7. Klasör izinlerini düzelt (755)
  8. Storage özel izinleri uygula (777/775)
  9. Symlink ownership düzelt
  10. Sonuç raporu göster

📖 Kullanım Kılavuzu

🤖

Yöntem 1: Otomatik Kullanıcı Tespiti (Önerilen)

Script otomatik olarak doğru kullanıcıyı tespit eder (composer.json owner'ı).

# Script'i çalıştırılabilir yap
chmod +x public/readme/2026/01/05/root-ownership-fixer/v1/fix-root-ownership.sh
# Script'i çalıştır
./public/readme/2026/01/05/root-ownership-fixer/v1/fix-root-ownership.sh
👤

Yöntem 2: Manuel Kullanıcı Belirtme

Kullanıcı ve grubu manuel olarak belirlemek isterseniz:

./public/readme/2026/01/05/root-ownership-fixer/v1/fix-root-ownership.sh tuufi.com_ psaserv

Yöntem 3: Kısa Yol (Alias)

Hızlı kullanım için alias oluşturun:

# .bashrc veya .zshrc dosyanıza ekleyin
alias fix-root='sudo /var/www/vhosts/tuufi.com/httpdocs/public/readme/2026/01/05/root-ownership-fixer/v1/fix-root-ownership.sh'
# Kullanım
fix-root

📺 Örnek Çıktı

╔════════════════════════════════════════════════════════════════╗
║ Root Ownership Fixer - Laravel Multi-Tenant ║
╚════════════════════════════════════════════════════════════════╝
🔍 Otomatik kullanıcı tespiti yapılıyor...
✅ Tespit edilen kullanıcı: tuufi.com_:psaserv
📊 Root-owned dosyalar taranıyor...
🔴 Toplam 4442 root-owned dosya bulundu!
Tüm root-owned dosyalar tuufi.com_:psaserv olarak değiştirilsin mi? [E/h]:
E
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 DÜZELTİLİYOR...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 [1/6] Dosya ownership düzeltiliyor...
✅ Dosyalar düzeltildi
📂 [2/6] Klasör ownership düzeltiliyor...
✅ Klasörler düzeltildi
🔐 [3/6] Dosya izinleri düzeltiliyor (644)...
✅ Dosya izinleri düzeltildi
🔓 [4/6] Klasör izinleri düzeltiliyor (755)...
✅ Klasör izinleri düzeltildi
💾 [5/6] Storage klasörü özel izinleri...
✅ Storage izinleri düzeltildi
🔗 [6/6] Symlink ownership düzeltiliyor...
✅ Symlink'ler düzeltildi
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ TÜM İŞLEMLER TAMAMLANDI!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎉 Hiç root-owned dosya kalmadı!

⚙️ İşlem Sonrası Öneriler

1. Cache Temizleme:

composer dump-autoload
php artisan config:clear
php artisan cache:clear
php artisan view:clear

2. Site Testi:

curl -I https://ixtif.com/
curl -I https://muzibu.com/

3. Log Kontrolü:

tail -50 storage/logs/laravel.log | grep -i error

⚠️ Önemli Notlar

💡
Git Klasörü Korunur: .git klasörü hiç dokunulmaz. Git komutları için root ownership gerekli olabilir.
🔒
Güvenli İşlem: Script sadece ownership ve izinleri değiştirir, hiçbir dosya içeriği değiştirilmez veya silinmez.
Paralel İşlem: xargs -P 4 ile 4 paralel process çalışır, büyük projelerde hızlı sonuç alırsınız.
🔄
Tekrar Çalıştırılabilir: İstediğiniz kadar çalıştırabilirsiniz, zarar vermez. Her Claude Code işleminden sonra çalıştırmanız önerilir.

Hızlı Başvuru Komutları

🔧 Tek Komutla Düzelt
chmod +x public/readme/2026/01/05/root-ownership-fixer/v1/fix-root-ownership.sh && ./public/readme/2026/01/05/root-ownership-fixer/v1/fix-root-ownership.sh
📊 Root Dosya Sayısı
find . -user root -not -path "*/.git/*" | wc -l
👤 Mevcut Kullanıcı
stat -c '%U:%G' composer.json
🧹 Cache Temizle
php artisan optimize:clear