Raspberry Pi’de Her Açılışta Kullanıcıyı Varsayılan Hale Döndürme (rc.local + rsync)

Kutay Utku
3 dk okuma

Raspberry Pi sistemlerinde özellikle:

  • Eğitim laboratuvarları
  • Kiosk sistemleri
  • Ortak kullanım alanları
  • Deneme / test ortamları
  • Güvenlik amaçlı geçici kullanıcı hesapları

gibi senaryolarda, sistem her yeniden başlatıldığında kullanıcı ayarlarının otomatik olarak ilk haline dönmesi istenebilir.

Bu işlemi Linux tabanlı Raspberry Pi OS üzerinde /etc/rc.local dosyasını kullanarak gerçekleştirebiliriz.

📌 Mantık Nasıl Çalışır?

Sistem her açıldığında:

  1. /etc/rc.local dosyası çalışır.
  2. rsync komutu ile temiz bir kullanıcı yedeği /home klasörüne kopyalanır.
  3. chpasswd ile parola varsayılan hale getirilir.

Böylece kullanıcı yaptığı tüm değişiklikleri kaybeder ve sistem her zaman başlangıç durumuna döner.

🛠️ Adım 1: rc.local Dosyasını Açma

Root yetkisi gereklidir:

sudo nano /etc/rc.local

Dosya içinde exit 0 satırından önce şu komutları ekleyin:

rsync --delete -av /root/kullanici_adi/ /home/kullanici_adi/
echo 'kullanici_adi:parola' | chpasswd

⚠️ Önemli:

  • kullanici_adi yerine kendi kullanıcı adınızı yazın.
  • parola yerine varsayılan olarak atanmasını istediğiniz şifreyi yazın.
  • --delete parametresi home klasöründeki fazla dosyaları siler.
  • /root/kullanici_adi/ klasörü temiz şablon klasörünüz olmalıdır.

🔍 Komutların Detaylı Açıklaması

1️⃣ rsync Komutu

rsync --delete -av kaynak hedef

Parametreler:

ParametreAçıklama
-aArşiv modu (izinler, sahiplik, zaman bilgisi korunur)
-vAyrıntılı çıktı
--deleteHedefte olup kaynakta olmayan dosyaları siler

Bu komut sayesinde /root/kullanici_adi klasörü bir “master template” gibi çalışır.

2️⃣ chpasswd Komutu

echo 'kullanici:parola' | chpasswd

Bu komut kullanıcı şifresini otomatik olarak belirlenen değere döndürür.

🧠 Profesyonel Kullanım Senaryoları

🎓 Eğitim Ortamı

Öğrenciler sistem üzerinde değişiklik yapar ancak reboot sonrası her şey sıfırlanır.

🖥️ Kiosk / Dijital Tabela

Kullanıcı sistem ayarlarını değiştiremez.

🔐 Güvenlik Test Ortamı

Deneme ortamı her başlatmada temiz hale gelir.

⚠️ Güvenlik ve Riskler

Bu yöntemin bazı riskleri vardır:

❗ Parola düz metin olarak yazılır

rc.local içinde şifre açık şekilde görünür.

❗ Yanlış rsync kullanımı veri kaybına yol açabilir

--delete parametresi yanlış dizinde kullanılırsa kritik dosyalar silinebilir.

❗ Modern sistemlerde rc.local varsayılan olarak pasif olabilir

Yeni Raspberry Pi OS sürümlerinde systemd kullanılmaktadır.

🚀 Daha Profesyonel Alternatif: systemd Service Kullanımı

rc.local yerine systemd servis dosyası oluşturmak daha sağlıklıdır.

Örnek:

sudo nano /etc/systemd/system/reset-user.service

İçerik:

[Unit]
Description=Kullanıcıyı Resetle
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/rsync --delete -a /root/kullanici_adi/ /home/kullanici_adi/
ExecStart=/bin/bash -c "echo 'kullanici_adi:parola' | chpasswd"

[Install]
WantedBy=multi-user.target

Aktif etmek için:

sudo systemctl enable reset-user.service

Bu yöntem daha modern ve güvenlidir.

🔒 Daha Güvenli Parola Yöntemi (Önerilir)

Şifreyi düz metin yerine hash ile atamak:

echo 'kullanici_adi:$(openssl passwd -6 parola)' | chpasswd -e

Bu yöntem SHA-512 kullanır.

📦 Daha İleri Seviye Yöntemler

Eğer daha profesyonel bir çözüm istiyorsanız:

  • OverlayFS kullanarak sistemi salt-okunur yapmak
  • Immutable kullanıcı yapısı kurmak
  • Docker container tabanlı kullanıcı ortamı oluşturmak
  • tmpfs ile geçici home dizini kullanmak

🎯 Sonuç

Bu yapı sayesinde:

✅ Raspberry Pi her yeniden başlatıldığında temiz kullanıcı ortamı sunar
✅ Eğitim ve kiosk sistemleri için idealdir
✅ Sistem kararlılığı artar
⚠️ Ancak güvenlik açısından dikkatli yapılandırılmalıdır

💬 Yorum Bırak