user management for wulftp serverside
Authored by
mfwolffe <wolffemf@dukes.jmu.edu>
- SHA
0cf6d3c9cee86dde4046b55d7e50e4aed1e90da9- Parents
-
c6f0356 - Tree
4f0539f
0cf6d3c
0cf6d3c9cee86dde4046b55d7e50e4aed1e90da9c6f0356
4f0539f| Status | File | + | - |
|---|---|---|---|
| A |
Script/wulftp-user-mgtmt
|
60 | 0 |
Script/wulftp-user-mgtmtadded@@ -0,0 +1,60 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# wulftp-user - Manage wulftp backup users | |
| 3 | + | |
| 4 | +set -e | |
| 5 | + | |
| 6 | +ACTION=$1 | |
| 7 | +USERNAME=$2 | |
| 8 | + | |
| 9 | +create_user() { | |
| 10 | + if id "$USERNAME" &>/dev/null; then | |
| 11 | + echo "User $USERNAME already exists" | |
| 12 | + exit 1 | |
| 13 | + fi | |
| 14 | + | |
| 15 | + # Create user | |
| 16 | + useradd -m -d /home/$USERNAME -s /usr/sbin/nologin -G backup $USERNAME | |
| 17 | + | |
| 18 | + # Create backup directories | |
| 19 | + mkdir -p /srv/backups/$USERNAME/{devices,shared} | |
| 20 | + chown root:root /srv/backups/$USERNAME | |
| 21 | + chmod 755 /srv/backups/$USERNAME | |
| 22 | + | |
| 23 | + chown $USERNAME:backup /srv/backups/$USERNAME/{devices,shared} | |
| 24 | + chmod 750 /srv/backups/$USERNAME/{devices,shared} | |
| 25 | + | |
| 26 | + # Setup SSH key | |
| 27 | + mkdir -p /home/$USERNAME/.ssh | |
| 28 | + touch /home/$USERNAME/.ssh/authorized_keys | |
| 29 | + chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh | |
| 30 | + chmod 700 /home/$USERNAME/.ssh | |
| 31 | + chmod 600 /home/$USERNAME/.ssh/authorized_keys | |
| 32 | + | |
| 33 | + echo "User $USERNAME created. Add their SSH public key to:" | |
| 34 | + echo "/home/$USERNAME/.ssh/authorized_keys" | |
| 35 | +} | |
| 36 | + | |
| 37 | +delete_user() { | |
| 38 | + read -p "Delete user $USERNAME and all their backups? [y/N] " -n 1 -r | |
| 39 | + echo | |
| 40 | + if [[ $REPLY =~ ^[Yy]$ ]]; then | |
| 41 | + userdel $USERNAME | |
| 42 | + rm -rf /home/$USERNAME | |
| 43 | + # Keep backups by default, uncomment to delete: | |
| 44 | + # rm -rf /srv/backups/$USERNAME | |
| 45 | + echo "User $USERNAME deleted (backups preserved)" | |
| 46 | + fi | |
| 47 | +} | |
| 48 | + | |
| 49 | +case $ACTION in | |
| 50 | + create) | |
| 51 | + create_user | |
| 52 | + ;; | |
| 53 | + delete) | |
| 54 | + delete_user | |
| 55 | + ;; | |
| 56 | + *) | |
| 57 | + echo "Usage: $0 {create|delete} username" | |
| 58 | + exit 1 | |
| 59 | + ;; | |
| 60 | +esac | |