Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- user=$1
- if [ $UID -ne 0 ]; then
- echo "Dieses Skript benötigt Superuser-Rechte. Bitte nutzen Sie sudo oder melden Sie sich als root an."
- exit 1
- fi
- if [ -d /backup ]; then
- echo "/backup existiert nicht... lege Verzeichnis an."
- mkdir /backup
- fi
- function create_vhdd()
- {
- echo "Lege Festplatte an..."
- dd if=/dev/zero of=/vhdd/$user.img bs=1M count=10
- echo "Schreibe ext4-Dateisystem auf /vhdd/$user.img"
- mkfs.ext4 /vhdd/$user.img
- echo "Festplatte angelegt... lege mount-Eintrag in die fstab..."
- echo "/vhdd/$user.img /home/$user ext4 defaults 0 0" >> /etc/myfstab
- echo "Kopiere den Inhalt des alten /home-Verzeichnisses auf das Laufwerk"
- mkdir /tmp/$user
- mount -t ext4 /vhdd/$user.img /tmp/$user
- cp -p /home/$user/.* /tmp/$user
- rm -r lost+found
- touch - vhdd_home_$user
- umount /tmp/$user
- mount -t ext4 /vhdd/$user.img /mnt
- ls -la /mnt
- umount /mnt
- # echo "mounte vhdd/$user.img als /home-Partition für $user..."
- # mount -t ext4 /vhdd/$user.img /home/$user
- }
- function del_vhdd ()
- {
- echo "Lösche das Laufwerk von $user..."
- echo "Lege ein Backup-Archiv in /backup an"
- tar cvf /backup/content_home_$user_$(date + %F) /home/$user
- echo "Aushängen der Home-Partition von $user..."
- umount /home/$user
- echo "Löschen der virtuellen Festplatte..."
- rm /vhdd/$user.img
- echo "Entfernen des Eintrags aus der /etc/fstab..."
- sed -i.bak '/'$user'.img/d' /etc/myfstab
- echo "User $user hat nun wieder ein lokales /home-Verzeichnis. Seine Daten wurden als tar-Archiv unter /backup gespeichert."
- }
- if grep $user /etc/passwd > /dev/null; then
- if [ -f /vhdd/$user.img ]; then
- echo "Dieser User existiert und hat eine Festplatte."
- read -p 'Möchten Sie die virtuelle Festplatte des Users $User löschen? (j/n)' antwort
- case "$antwort" in
- j)
- #del_vhdd
- echo "Funktion create_vhdd"
- logger -p local1.debug -t vhdd "Die virtuelle Festplatte von User $user wurde gelöscht."
- ;;
- n)
- echo "Alles gut - nichts zu tun..."
- exit 0
- ;;
- *)
- echo "Was ist an (j/n) so schwer zu verstehen?"
- sleep 1
- exit 1
- ;;
- esac
- else
- echo "Dieser User existiert, hat aber noch keine Festplatte."
- # create_vhdd
- echo "Funktion create_vhdd"
- logger -p local1.debug -t vhdd "Für User $user wurde eine virtuelle Festplatte angelegt."
- fi
- else
- echo "Dieser User ist nicht vorhanden! Wenn das nicht so sein sollte versuchen Sie \"grep <Username> /etc/passwd\"!"
- exit 1
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement