Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. user=$1
  4.  
  5. if [ $UID -ne 0 ]; then
  6.  
  7. echo "Dieses Skript benötigt Superuser-Rechte. Bitte nutzen Sie sudo oder melden Sie sich als root an."
  8. exit 1
  9.  
  10. fi
  11.  
  12. if [ -d /backup ]; then
  13.  
  14. echo "/backup existiert nicht... lege Verzeichnis an."
  15. mkdir /backup
  16.  
  17. fi
  18.  
  19. function create_vhdd()
  20. {
  21. echo "Lege Festplatte an..."
  22. dd if=/dev/zero of=/vhdd/$user.img bs=1M count=10
  23. echo "Schreibe ext4-Dateisystem auf /vhdd/$user.img"
  24. mkfs.ext4 /vhdd/$user.img
  25. echo "Festplatte angelegt... lege mount-Eintrag in die fstab..."
  26. echo "/vhdd/$user.img /home/$user ext4 defaults 0 0" >> /etc/myfstab
  27. echo "Kopiere den Inhalt des alten /home-Verzeichnisses auf das Laufwerk"
  28. mkdir /tmp/$user
  29. mount -t ext4 /vhdd/$user.img /tmp/$user
  30. cp -p /home/$user/.* /tmp/$user
  31. rm -r lost+found
  32. touch - vhdd_home_$user
  33. umount /tmp/$user
  34. mount -t ext4 /vhdd/$user.img /mnt
  35. ls -la /mnt
  36. umount /mnt
  37. # echo "mounte vhdd/$user.img als /home-Partition für $user..."
  38. # mount -t ext4 /vhdd/$user.img /home/$user
  39. }
  40.  
  41. function del_vhdd ()
  42. {
  43. echo "Lösche das Laufwerk von $user..."
  44. echo "Lege ein Backup-Archiv in /backup an"
  45. tar cvf /backup/content_home_$user_$(date + %F) /home/$user
  46. echo "Aushängen der Home-Partition von $user..."
  47. umount /home/$user
  48. echo "Löschen der virtuellen Festplatte..."
  49. rm /vhdd/$user.img
  50. echo "Entfernen des Eintrags aus der /etc/fstab..."
  51. sed -i.bak '/'$user'.img/d' /etc/myfstab
  52. echo "User $user hat nun wieder ein lokales /home-Verzeichnis. Seine Daten wurden als tar-Archiv unter /backup gespeichert."
  53. }
  54.  
  55. if grep $user /etc/passwd > /dev/null; then
  56.  
  57. if [ -f /vhdd/$user.img ]; then
  58.  
  59. echo "Dieser User existiert und hat eine Festplatte."
  60. read -p 'Möchten Sie die virtuelle Festplatte des Users $User löschen? (j/n)' antwort
  61.  
  62. case "$antwort" in
  63. j)
  64. #del_vhdd
  65. echo "Funktion create_vhdd"
  66. logger -p local1.debug -t vhdd "Die virtuelle Festplatte von User $user wurde gelöscht."
  67. ;;
  68. n)
  69. echo "Alles gut - nichts zu tun..."
  70. exit 0
  71. ;;
  72. *)
  73. echo "Was ist an (j/n) so schwer zu verstehen?"
  74. sleep 1
  75. exit 1
  76. ;;
  77. esac
  78.  
  79. else
  80.  
  81. echo "Dieser User existiert, hat aber noch keine Festplatte."
  82. # create_vhdd
  83. echo "Funktion create_vhdd"
  84. logger -p local1.debug -t vhdd "Für User $user wurde eine virtuelle Festplatte angelegt."
  85. fi
  86.  
  87. else
  88. echo "Dieser User ist nicht vorhanden! Wenn das nicht so sein sollte versuchen Sie \"grep <Username> /etc/passwd\"!"
  89. exit 1
  90. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement