ETAP Pardus Açılışında Kullanıcı Parolalarının Sıfırlanması/Rastgele Belirlenmesi

Aşağıdaki betik her açılışta tüm kullanıcıların parolalarının rasgele bir parola ile ayarlanmasını sağlıyor. Böylece EBA QR veya USB Key ile oturum açıldığında oluşan kullanıcı hesaplarının parolaları her başlatmada rasgele bir değere ayarlanacak.

Betik yalnızca user id’si 1000’den büyük olan kullanıcı hesaplarının parolalarının değiştirilmesini sağlıyor. etapadmin ve root kullanıcılarının parolalarında bir değişiklik yapmıyor. Kullanıcıların user id’lerini görmek için passwd dosyasına bakabilirsiniz.

cat /etc/passwd 

Aşağıdaki adımları gerçekleştirebilmek için öncelikle root kullanıcısına geçiş yapın.

sudo su etapadmin
sudo su

1. Script’in oluşturulması

nano /usr/local/sbin/randomize_passwords.sh
#!/bin/bash

# Minimum UID değeri (örnek: 1000 normal kullanıcılar için)
MIN_UID=1000

LOG_FILE="/var/log/randomize_passwords.log"

echo "==== $(date) - Password rotation started ====" >> $LOG_FILE

# UID'si MIN_UID'den büyük kullanıcıları al
awk -F: -v min_uid="$MIN_UID" '
{
    if ($3 > min_uid && $3 < 65534) 
        print $1
}' /etc/passwd | while read user; do

    # Rastgele 16 karakter parola üret
    NEW_PASS=$(openssl rand -base64 16)

    # Parolayı değiştir
    echo "$user:$NEW_PASS" | chpasswd

    echo "User: $user Password changed." >> $LOG_FILE

done

echo "==== Completed ====" >> $LOG_FILE

2.Script’e Çalıştırma Yetkisi Ver

sudo chmod +x /usr/local/sbin/randomize_passwords.sh

3. systemd Servisi Oluştur

sudo nano /etc/systemd/system/randomize-passwords.service
[Unit]
Description=Randomize User Passwords at Boot
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/randomize_passwords.sh
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

Bu script’in açılışta otomatik çalışmasını sağlayarak EBA QR veya USB Key (usb-login) ile oluşturulan kullanıcı hesaplarının parolalarının da değiştirilmesini sağlamış olduk.

4. Servisi Aktifleştir

sudo systemctl daemon-reload
sudo systemctl enable randomize-passwords.service

Test etmek için:

sudo systemctl start randomize-passwords.service
cat /var/log/randomize_passwords.log

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site istenmeyenleri azaltmak için Akismet kullanır. Yorum verilerinizin nasıl işlendiğini öğrenin.