Advertisement
Guest User

Untitled

a guest
Sep 28th, 2017
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. while [ ! -f $file ]
  4. do
  5.  
  6. #ask user for filename
  7. read -p "What is the filename? " username
  8.  
  9. if [ ! -f $file ]
  10. then
  11. echo "File not found!"
  12. else
  13. echo "File found!"
  14. fi
  15. done
  16.  
  17. #process each line and make a user from the data
  18. cat $file | while read line
  19.  
  20. do
  21. #line example:
  22. #tony.stark@stark.com;1970/05/29;sudo,avengers;/avengersData
  23.  
  24. #extract first name
  25. name=`echo $line | sed 's/^(.*)..*@.*$/1/g'`
  26. #name: tony
  27.  
  28. #extract surname
  29. surname=`echo $line | sed 's/^.*.(.*)@.*$/1/g'`
  30. #surname: stark
  31.  
  32. #extract birthdate
  33. bdate=`echo $line | sed 's/^.*;(.*);.*;.*$/1/g'`
  34. #bdate: 1970/05/29
  35.  
  36. #extract list groups to add into array
  37. groups=`echo $line`
  38. #groups: sudo, avengers
  39.  
  40. #extract name of shared folder
  41. folder=`echo $line`
  42. #folder: /avengersData
  43.  
  44.  
  45. #user = first letter of name, and full surname
  46. #get first letter
  47. temp1 = ${name:0:1}
  48.  
  49. #build username
  50. user="${temp1}${surname}"
  51. #user: tstark
  52.  
  53. #pass must be first month and year of birthdate arranged as MMYYYY
  54. passTemp1 = ${bdate:0:4}
  55. passTemp2 = ${bdate:6:7}
  56.  
  57. #build password
  58. password = "${passTemp2}${passTemp1}"
  59. #password: 051970
  60.  
  61. #tokenise group + add to array
  62. declare -a groupArray
  63.  
  64. IFS=','
  65. groupArray=(`echo $groups | tr "," " "`)
  66.  
  67. #create groups if not existing.
  68. for i in ${groupArray[@]}
  69. do
  70. if [ getent group $i ]
  71. then
  72. echo "group exists"
  73. else
  74. groupadd $i
  75. fi
  76. done
  77.  
  78.  
  79. #Create shared folders if not existing.
  80. if [ ! -d $folder ]
  81. then
  82. mkdir -p $folder
  83. fi
  84.  
  85. #Create groups for shared folders
  86. gname=`echo "${folder:1}"`
  87. groupadd $gname
  88.  
  89. #Set group as owner of directory and change permissions
  90. chgrp -R $gname $folder
  91. chmod -R 770 $folder
  92.  
  93. #create user and add to groups
  94. if [ grep "^${user}:" /etc/passwd ]
  95. then
  96. echo "user exists already!"
  97.  
  98. else
  99. #Create user
  100. useradd -m -d /home/$user -p $pass $user
  101.  
  102. #Add user to groups
  103. for i in ${groupArray[@]}
  104. do
  105. usermod -a -G $i $user
  106. done
  107.  
  108. #Add user to shared group
  109. usermod -a -G $gname $user
  110. fi
  111.  
  112. #force password change
  113. chage -d 0 $user
  114. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement