Public repo to distribute scripts and config's
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

45 lignes
1.4 KiB

  1. #!/bin/bash
  2. set -euo pipefail
  3. # Idempotent: safe to re-run — skips existing users, refreshes SSH keys
  4. echo "=== Setting up TF Users ==="
  5. DEBIAN_FRONTEND=noninteractive apt-get install -y zsh >/dev/null 2>&1
  6. add_user() {
  7. local username="$1"
  8. local fullname="$2"
  9. local shell="$3"
  10. local github_user="$4"
  11. if id "$username" &>/dev/null; then
  12. echo "[OK] User '$username' already exists"
  13. else
  14. useradd -m -G sudo -s "$shell" \
  15. -p '$6$w6py6llD3P4FgJR4$EzDQ9yIrpNDskKLAPUQrsBqVnDeBbVaeOzRyJp2R8k7L8IC7SjZEXFYyhxywS7J9r5uw/tB1korefeEbJjUS31' \
  16. -c "$fullname" "$username"
  17. echo "[OK] Created user '$username'"
  18. fi
  19. mkdir -p "/home/$username/.ssh"
  20. chmod 700 "/home/$username/.ssh"
  21. # Refresh SSH keys from GitHub
  22. if wget -qO "/home/$username/.ssh/authorized_keys" "https://github.com/${github_user}.keys" 2>/dev/null; then
  23. chmod 600 "/home/$username/.ssh/authorized_keys"
  24. echo "[OK] Updated SSH keys for '$username' from github.com/${github_user}"
  25. else
  26. echo "[WARN] Could not fetch SSH keys for '$username' from github.com/${github_user}"
  27. fi
  28. chown -R "$username:$username" "/home/$username/.ssh"
  29. }
  30. add_user "delandtj" "Jan De Landtsheer" "/usr/bin/zsh" "delandtj"
  31. add_user "lee" "Lee Smet" "/usr/bin/zsh" "LeeSmet"
  32. add_user "nashaatp" "Peter Nashaat" "/bin/bash" "PeterNashaat"
  33. add_user "hossnys" "Samir Hossny" "/bin/bash" "hossnys"
  34. echo ""
  35. echo "[OK] TF Users setup complete"