create_user.sh 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. SLURM=0
  2. FILENAME=''
  3. DEFAULT=''
  4. while [[ $# -gt 1 ]]
  5. do
  6. key="$1"
  7. case $key in
  8. -s|--slurm)
  9. SLURM=1
  10. ;;
  11. -f|--file)
  12. FILENAME="$2"
  13. shift # past argument
  14. ;;
  15. --default)
  16. DEFAULT=YES
  17. ;;
  18. *)
  19. # unknown option
  20. ;;
  21. esac
  22. shift # past argument or value
  23. done
  24. echo Add Slurm Account = "${SLURM}"
  25. echo FILENAME = "${FILENAME}"
  26. #input file is in the form:
  27. #username First Last
  28. INFILE=${FILENAME}
  29. while IFS='' read -r line; do
  30. IFS=" " read -ra ACCOUNT <<< "$line"
  31. user=${ACCOUNT[0]}
  32. password="changeme"
  33. pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
  34. echo "Creating account for $user"
  35. useradd -m -p $pass $user
  36. pdsh "useradd -m -p $pass $user"
  37. #force reset on login
  38. chage -d 0 $user
  39. #useradd -m -p $pass $user
  40. #become user to create home directory
  41. sudo su - $user "exit"
  42. #generate ssh-keys
  43. sudo -u $user ssh-keygen -N "" -t rsa -f /home/$user/.ssh/id_rsa
  44. sudo -u $user cat /home/$user/.ssh/id_rsa.pub > /home/$user/.ssh/authorized_keys
  45. chown $user:$user /home/$user/.ssh/authorized_keys
  46. sudo -u $user chmod 0644 /home/$user/.ssh/authorized_keys
  47. done < $INFILE