Pardus ETAP Yöneticileri İçin Rehber: Ağ Üzerinden Toplu Şifre Değiştirme

Okullardaki Bilişim Teknolojileri Rehber Öğretmenleri ve sistem yöneticileri için en büyük zaman kaybı, basit bir işlem için onlarca sınıfı tek tek dolaşmaktır. Özellikle 30-40 adet Etkileşimli Tahtanın (ET) bulunduğu bir okulda, "ogretmen" veya "ogrenci" kullanıcısının şifresini değiştirmek için her sınıfa klavye taşımanız gerekmez.

Eğer okulunuzdaki tahtalar (ETAP 23.4 vb.) ile sizin bilgisayarınız aynı yerel ağdaysa (Örneğin: 10.46.xxx.xxx bloğu), bu işlemi oturduğunuz yerden, çayınızı yudumlarken saniyeler içinde halledebilirsiniz.

Bu makalede, Bash Script, SSH ve Netcat kullanarak, kapalı olan tahtaları otomatik algılayıp atlayan, açık olanlarda ise şifreyi anında değiştiren "akıllı" bir script hazırlayacağız.

Hazırlık Aşaması (Etap 23 Tahtalar İçin)

Adım 1: SSH Sunucusunun Yüklü Olduğundan Emin Olun

Pardus ETAP sürümlerinde güvenlik nedeniyle SSH sunucusu (openssh-server) varsayılan olarak yüklü gelmeyebilir veya yüklü olsa bile başlatılmamış olabilir.

Tahtada uçbirimi (terminal) açın ve şu komutu girin:

Bash:
sudo apt update
sudo apt install openssh-server -y

Adım 2: Servisi Başlatın ve Aktif Edin

SSH yüklü olsa bile servis "stop" durumundaysa bağlantı reddedilir. Servisi başlatmak ve her açılışta otomatik çalışmasını sağlamak için şu komutu girin:

Bash:
sudo systemctl enable --now ssh

(Bu komuttaki --now parametresi servisi hem hemen başlatır hem de başlangıca ekler.)

Hazırlık Aşaması (Yönetici Pardus PC)

Bu işlemleri yapabilmek için kendi bilgisayarınızda (Pardus/Linux) uçbirimi açarak gerekli iki küçük aracı yüklememiz gerekiyor:

  1. sshpass: SSH bağlantısında şifreyi komut satırından girmemizi sağlar.

  2. netcat (nc): Tahtanın ağ üzerinde açık olup olmadığını kontrol eder.

Aşağıdaki komutla kurulumu yapalım:

Bash
sudo apt update
sudo apt install sshpass netcat-openbsd -y

Yöntem 1: Scripti Hazırlama

Adım 1: Hedef Listesini Oluşturma (IP Listesi)

Hangi tahtalara işlem yapacağımızı belirlememiz gerekiyor. Masaüstünüzde veya çalışma klasörünüzde tahtalar.txt adında bir dosya oluşturun ve tahtaların IP adreslerini alt alta yazın.

İpucu: Eğer IP listesini bilmiyorsanız nmap -sn 10.46.197.0/24 komutu ile ağınızı tarayabilirsiniz.

tahtalar.txt örneği:

Plaintext:
10.46.197.2
10.46.197.3
10.46.197.4
...

Adım 2: Akıllı Scripti Hazırlama

Şimdi asıl sihirli dokunuşu yapalım. Aşağıdaki kodları kopyalayın, bir metin editörüne yapıştırın ve toplu_sifre.sh adıyla kaydedin.

Bu script şunları yapar:

  1. Listeden IP'yi okur.

  2. Önce Kontrol Eder: Tahta açık mı ve SSH servisi cevap veriyor mu? (Netcat ile).

  3. Eğer tahta kapalıysa 2 saniye içinde anlar ve vakit kaybetmeden diğer tahtaya geçer.

  4. Eğer tahta açıksa bağlanır, yönetici yetkisini alır ve hedef kullanıcının şifresini değiştirir.

Script içeriği:

Bash:
#!/bin/bash

# --- AYARLAR (Buraları Kendi Sisteminize Göre Düzenleyin) ---
ADMIN_USER="etapadmin"           # Tahtaya bağlanacak yetkili kullanıcı adı
MEVCUT_SSH_SIFRESI="MevcutAdminSifresi" # Tahtanın şu anki admin şifresi
HEDEF_KULLANICI="ogretmen"       # Şifresi değişecek kullanıcı (ogretmen, ogrenci vb.)
YENI_SIFRE="YeniGucluSifre123"   # Yeni belirlediğiniz şifre
# -----------------------------------------------------------

# Dosya kontrolü
if [ ! -f tahtalar.txt ]; then
    echo "Hata: tahtalar.txt dosyası bulunamadı!"
    exit 1
fi

echo "### Toplu Şifre Değiştirme İşlemi Başlıyor ###"
echo "----------------------------------------------"

while IFS= read -r IP; do
    # Boş satırları atla
    [[ -z "$IP" ]] && continue
    
    # ADIM A: SSH Port Kontrolü (Netcat)
    # -z: Sadece portu yokla (veri gönderme)
    # -w 2: 2 saniye bekle, cevap yoksa zaman aşımına uğra
    nc -z -w 2 "$IP" 22
    
    if [ $? -ne 0 ]; then
        echo "⚠️  $IP: Erişim yok veya SSH kapalı. (Hızla atlanıyor...)"
        echo "----------------------------------------------"
        continue
    fi

    # ADIM B: SSH ile bağlan ve şifreyi değiştir
    echo "🔄 $IP: Tahta açık, bağlantı kuruluyor..."
    
    # sshpass: Şifreyi otomatik girer
    # StrictHostKeyChecking=no: "Emin misiniz" sorusunu atlar
    # chpasswd: Şifreyi interaktif olmayan modda değiştirir
    
    sshpass -p "$MEVCUT_SSH_SIFRESI" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 $ADMIN_USER@$IP \
    "echo '$MEVCUT_SSH_SIFRESI' | sudo -S sh -c 'echo \"$HEDEF_KULLANICI:$YENI_SIFRE\" | chpasswd'"

    if [ $? -eq 0 ]; then
        echo "✅ $IP: Şifre BAŞARIYLA değiştirildi."
    else
        echo "❌ $IP: Bağlantı hatası veya şifre yanlış."
    fi
    echo "----------------------------------------------"

done < tahtalar.txt

echo "Tüm işlemler tamamlandı."

Adım 3: Scripti Çalıştırma

Terminali açın, scriptin olduğu klasöre gelin ve aşağıdaki komutları sırasıyla uygulayın.

  1. Script dosyasına çalışma izni verin:

    Bash:
    chmod +x toplu_sifre.sh
    
  2. Scripti çalıştırın:

    Bash:
    ./toplu_sifre.sh
    

Artık script çalışacak; açık olan tahtaların şifresini değiştirecek, kapalı olanları ise size bildirip pas geçecektir.


Alternatif Yöntem 2: Python Uygulaması: 

https://etappython.blogspot.com/2025/12/pardus-etap-yoneticileri-icin-ag.html


⚠️ Önemli Güvenlik Uyarıları

  • SSH Servisi: Bu işlemin yapılabilmesi için tahtalarda SSH servisinin aktif olması gerekir (systemctl enable ssh --now). İmaj hazırlarken SSH'ı aktif bırakmak işinizi kolaylaştırır.

  • Script Güvenliği: Hazırladığımız script dosyasının içinde yönetici şifreleri açık metin (plain text) olarak yazmaktadır. İşleminiz bittikten sonra güvenlik için bu script dosyasını bilgisayarınızdan silmeyi unutmayın.

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Başlangıç Onarma