🔐 Permission Kuralları: Root YASAK!

📅 Tarih: 2025-11-18 | 🎯 Amaç: Permission hatalarını önlemek | ⚠️ KRİTİK: Root kullanımı site çöktürür!

🔴 KRİTİK KURAL: Root ASLA Kullanma!

❌ ROOT KULLANIMI YASAK!

Dosya oluştururken ASLA root kullanıcısı olarak işlem yapma!

❌ YANLIŞ (Site çöker!): # Root kullanıcısı olarak dosya oluşturma touch /path/to/file.php echo "content" > /path/to/file.php Sonuç: - Owner: root:root → Nginx okuyamaz! - Permission: 644 bile olsa → Nginx/PHP-FPM erişemez! - Site: 500 Internal Server Error!

✅ DOĞRU: tuufi.com_ Kullanıcısı İle İşlem Yap!

TÜM dosya işlemleri tuufi.com_ kullanıcısı ile yapılmalı!

✅ DOĞRU: # tuufi.com_ kullanıcısı olarak işlem yap sudo -u tuufi.com_ touch /path/to/file.php sudo -u tuufi.com_ bash -c 'echo "content" > /path/to/file.php' Sonuç: - Owner: tuufi.com_:psaserv → Nginx okuyabilir! - Permission: Otomatik doğru → PHP-FPM çalışır! - Site: Çalışır! ✅

⚠️ Neden Root Kullanımı Tehlikeli?

Problem 1: Ownership Hatası

Root ile oluşturulan dosyalar root:root owner'ına sahip olur. Nginx ve PHP-FPM bu dosyaları okuyamaz!

# Root ile dosya oluştur touch /var/www/vhosts/tuufi.com/httpdocs/test.php # Owner kontrolü ls -la /var/www/vhosts/tuufi.com/httpdocs/test.php -rw-r--r-- 1 root root 0 Nov 18 14:30 test.php # Nginx çalışır mı? ❌ HAYIR! 403 Forbidden veya 500 Error!

Problem 2: Permission Cascade

Root ile klasör oluşturursan, içindeki TÜM dosyalar root:root olur!

# Root ile klasör oluştur mkdir -p /var/www/vhosts/tuufi.com/httpdocs/public/readme/2025/11/18/test/ # İçine dosya oluştur touch /var/www/vhosts/tuufi.com/httpdocs/public/readme/2025/11/18/test/index.html # SONUÇ: TÜM DOSYALAR ROOT:ROOT! ls -la /var/www/vhosts/tuufi.com/httpdocs/public/readme/2025/11/18/test/ drwxr-xr-x 2 root root ... test/ -rw-r--r-- 1 root root ... index.html

Problem 3: Güvenlik Riski

Root ile yazılan dosyalar, sadece root tarafından değiştirilebilir. Bu da deployment ve güncelleme sorunlarına yol açar!

✅ Doğru Permission Workflow

Adım 1: ASLA Root Kullanma!

❌ YAPMA: mkdir /path/to/directory touch /path/to/file.php ✅ YAP: sudo -u tuufi.com_ mkdir /path/to/directory sudo -u tuufi.com_ touch /path/to/file.php

Adım 2: Claude Write/Edit Tool Kullandıysan → chown/chmod Gerekli!

Claude'un Write/Edit tool'u root olarak çalıştığı için, oluşturduğu dosyalar root:root olur. MUTLAKA düzelt!

# 1. Owner değiştir (ZORUNLU!) sudo chown tuufi.com_:psaserv /path/to/file.php # 2. Permission düzelt (ZORUNLU!) sudo chmod 644 /path/to/file.php # Dosyalar için # 3. Klasör ise sudo chmod 755 /path/to/directory/ # 4. Test et curl -I https://ixtif.com/path/to/file.php # Beklenen: HTTP/2 200

Adım 3: Toplu Düzeltme (Klasör İçindeki Tüm Dosyalar)

# Tüm klasörü düzelt sudo chown -R tuufi.com_:psaserv /path/to/directory/ # Dosyaları 644 yap sudo find /path/to/directory/ -type f -exec chmod 644 {} \; # Klasörleri 755 yap sudo find /path/to/directory/ -type d -exec chmod 755 {} \;

📋 Karşılaştırma Tablosu

❌ Root Kullanımı (YANLIŞ)

# Dosya oluştur mkdir -p public/readme/2025/11/18/test/ touch public/readme/2025/11/18/test/index.html # Owner ls -la public/readme/2025/11/18/test/ root:root # Sonuç ❌ 500 Error ❌ Nginx okuyamaz ❌ Site çöker

✅ tuufi.com_ Kullanımı (DOĞRU)

# Dosya oluştur sudo -u tuufi.com_ mkdir -p public/readme/2025/11/18/test/ sudo -u tuufi.com_ touch public/readme/2025/11/18/test/index.html # Owner ls -la public/readme/2025/11/18/test/ tuufi.com_:psaserv # Sonuç ✅ 200 OK ✅ Nginx okur ✅ Site çalışır

🛠️ Pratik Örnekler

Örnek 1: HTML Rapor Oluşturma

❌ YANLIŞ (Root): mkdir -p public/readme/2025/11/18/blog-analiz/v1/ echo "content" > public/readme/2025/11/18/blog-analiz/v1/index.html ✅ DOĞRU (tuufi.com_): sudo -u tuufi.com_ mkdir -p public/readme/2025/11/18/blog-analiz/v1/ sudo -u tuufi.com_ bash -c 'echo "content" > public/readme/2025/11/18/blog-analiz/v1/index.html' VEYA (Claude Write tool kullandıysan): # Write tool ile oluştur (root:root olur) # Sonra düzelt: sudo chown tuufi.com_:psaserv public/readme/2025/11/18/blog-analiz/v1/index.html sudo chmod 644 public/readme/2025/11/18/blog-analiz/v1/index.html

Örnek 2: MD TODO Dosyası Oluşturma

❌ YANLIŞ (Root): mkdir -p readme/claude-docs/todo/2025/11/18/ touch readme/claude-docs/todo/2025/11/18/todo-14-30-payment.md ✅ DOĞRU (tuufi.com_): sudo -u tuufi.com_ mkdir -p readme/claude-docs/todo/2025/11/18/ sudo -u tuufi.com_ touch readme/claude-docs/todo/2025/11/18/todo-14-30-payment.md VEYA (Claude Write tool kullandıysan): sudo chown tuufi.com_:psaserv readme/claude-docs/todo/2025/11/18/todo-14-30-payment.md sudo chmod 644 readme/claude-docs/todo/2025/11/18/todo-14-30-payment.md

Örnek 3: Blade Dosyası Oluşturma

✅ DOĞRU Workflow: # 1. Claude Write tool ile dosya oluştur # (resources/views/components/blog/author.blade.php) # 2. Permission düzelt (ZORUNLU!) sudo chown tuufi.com_:psaserv resources/views/components/blog/author.blade.php sudo chmod 644 resources/views/components/blog/author.blade.php # 3. OPcache reset (PHP dosyaları için) curl -s -k https://ixtif.com/opcache-reset.php > /dev/null # 4. Test et curl -I https://ixtif.com/blog/test-post # Beklenen: HTTP/2 200

🎯 Özet Kurallar

✅ ZORUNLU KURALLAR

  • ASLA root kullanma! → Tüm işlemler tuufi.com_ ile
  • Claude Write/Edit tool kullandıysan → chown + chmod yap!
  • Her dosya oluşturduktan sonra → Permission kontrol et!
  • Owner: tuufi.com_:psaserv (ZORUNLU!)
  • Permission: 644 (dosya), 755 (klasör)
  • Test et: curl -I ile 200 OK kontrolü

❌ YASAK İŞLEMLER

  • Root olarak dosya oluşturma
  • Root olarak klasör oluşturma
  • root:root ownership bırakma
  • Permission düzeltmeyi unutma
  • Test etmeden devam etme