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:
/etc/rc.localdosyası çalışır.rsynckomutu ile temiz bir kullanıcı yedeği/homeklasörüne kopyalanır.chpasswdile 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_adiyerine kendi kullanıcı adınızı yazın.parolayerine varsayılan olarak atanmasını istediğiniz şifreyi yazın.--deleteparametresi 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:
| Parametre | Açıklama |
|---|---|
-a | Arşiv modu (izinler, sahiplik, zaman bilgisi korunur) |
-v | Ayrıntılı çıktı |
--delete | Hedefte 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