Bei Passwortänderungsscript den Aufruf aus der Shell-History raushalten

Für einen OPSI-Server habe ich ein kleines Script geschrieben, mit dem mit einem Aufruf die Paßwörter für das System selber, Samba und OPSI in einem Rutsch neu gesetzt werden kann. Bei Nutzung des OPSI-Server mit einer etwas größeren Zahl von Admins bzw. Paket-Zuweisern und Systemaufsetzern ist es ab und zu mal notwendig, daß auch ohne Root-Zugang für Zweite die Paßwörter in allen 3 Systembereichen durch Dritte neu gesetzt werden können:

/usr/local/bin/opsipasswd.sh:

#!/bin/bash
#
# Dirk Dettmering
#
# Script zur gleichzeitigen Aenderung des Passwortes eines Users fuer System, OPSI und Samba
# Beim Aufruf des Scriptes muss der Username und das gewuenschtes Paßwort uebergeben werden.
#
if [ "$2" == "" ]; then
    echo ""
    echo ""
    echo "           Ohne Parameter mag ich aber nicht! ;-) ..."
    echo ""
    echo "Dem Script muss Username und gewünschtes Paßwort übergeben werden"
    echo "Die Reihenfolge ist dabei nicht egal sondern immer erst Username und"
    echo "dann das Paßwort!"
    echo "Also bitte so: [sudo] opsipasswd.sh <username> <password>"
    echo "sudo ist erforderlich, wenn man das Script nicht als root-User aufruft!"
    echo ""
    exit 1
fi
WERBINICH=`whoami | id -u`
if [ "$WERBINICH" != "0" ]; then
    echo ""
    echo "                      Du kleiner Depp, du Depperter! "
    echo "     Muttu root sein oder das Script via sudo aufrufen, damit es funktioniert!"
    echo ""
    exit 1
fi
# System-Passwort setzen:
/usr/local/sbin/passwd.exp $1 $2 > /dev/null 2>&1
clear
    if [ $? -gt 0 ]; then
        echo "Achtung, das Neusetzen des System-Paßwortes war nicht erfolgreich!"
    fi
# Samba-Passwort setzen:
/usr/local/sbin/smbpasswd.exp $1 $2 > /dev/null 2>&1
clear
    if [ $? -gt 0 ]; then
        echo "Achtung, das Neusetzen des Samba-Paßwortes mit war nicht erfolgreich!"
    fi

/usr/bin/opsi-admin -d task setPcpatchPassword -u $1 -p $2
clear
if [ $? -gt 0 ]; then
    echo "Achtung, das Neusetzen des OPSI-Paßwortes war nicht erfolgreich!"
fi

/usr/local/sbin/smbpasswd.exp:

#!/usr/bin/expect -f
   set password [lindex $argv 1]
    spawn smbpasswd -a [lindex $argv 0]
    expect {
      -re "password:" {sleep 1; send "$password\r"; exp_continue}
     -re "password:" {sleep 1; send "$password\r";}
   }

Das Speichern des Scriptaufrufs in der History verhindere ich dann durch Setzen folgender Shellvariabelen in der /etc/bash.bashrc:

export HISTIGNORE="opsipasswd.sh *:passwd *:smbpasswd *"

 

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.