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:
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:
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:
sshpass: SSH bağlantısında şifreyi komut satırından girmemizi sağlar.
netcat (nc): Tahtanın ağ üzerinde açık olup olmadığını kontrol eder.
Aşağıdaki komutla kurulumu yapalım:
sudo apt update
sudo apt install sshpass netcat-openbsd -yYö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:
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:
Listeden IP'yi okur.
Önce Kontrol Eder: Tahta açık mı ve SSH servisi cevap veriyor mu? (Netcat ile).
Eğer tahta kapalıysa 2 saniye içinde anlar ve vakit kaybetmeden diğer tahtaya geçer.
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:
#!/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.
Script dosyasına çalışma izni verin:
Bash:chmod +x toplu_sifre.shScripti ç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