useradd.test 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #!/bin/bash
  2. # Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
  3. # Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
  4. [ -f testing.sh ] && . testing.sh
  5. if [ "$(id -u)" -ne 0 ]
  6. then
  7. echo "$SHOWSKIP: useradd (not root)"
  8. return 2>/dev/null
  9. exit
  10. fi
  11. # Redirecting all output to /dev/null for grep, adduser and deluser
  12. arg="&>/dev/null"
  13. #testing "name" "command" "result" "infile" "stdin"
  14. # Default password for adding user is: 'password'
  15. pass=`echo -ne 'password\npassword\n'`
  16. user="toyTestUser"
  17. testing "(text)" "useradd $user $arg ||
  18. grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
  19. echo 'yes'" "yes\n" "" "$pass"
  20. userdel -r $user $arg
  21. user="toy1Test2User3"
  22. testing "(alphanumeric)" "useradd $user $arg ||
  23. grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
  24. echo 'yes'" "yes\n" "" "$pass"
  25. userdel -r $user $arg
  26. user="987654321"
  27. testing "(numeric)" "useradd $user $arg ||
  28. grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
  29. echo 'yes'" "yes\n" "" "$pass"
  30. userdel -r $user $arg
  31. user="toy.1Test-2User_3"
  32. testing "(with ./-/_)" "useradd $user $arg ||
  33. grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
  34. echo 'yes'" "yes\n" "" "$pass"
  35. userdel -r $user $arg
  36. # 70 characters long string; hereafter, we will use it as per our need.
  37. user="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
  38. testing "(long string)" "useradd $user $arg ||
  39. grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
  40. echo 'yes'" "yes\n" "" "$pass"
  41. userdel -r $user $arg
  42. user="toyTestUser"
  43. testing "dir" "useradd -h $PWD/dir $user $arg ||
  44. grep '^$user:.*dir' /etc/passwd $arg && [ -d $PWD/dir ] &&
  45. echo 'yes'" "yes\n" "" "$pass"
  46. userdel -r $user $arg
  47. rm -rf $PWD/dir
  48. gecos="aaa,bbb,ccc,ddd,eee"
  49. testing "gecos" "useradd -g '$gecos' $user $arg ||
  50. grep '^$user:.*$gecos' /etc/passwd $arg && [ -d /home/$user ] &&
  51. echo 'yes'" "yes\n" "" "$pass"
  52. userdel -r $user $arg
  53. shl="/bin/sh"
  54. testing "shell" "useradd -s $shl $user $arg ||
  55. grep '^$user:.*$shl$' /etc/passwd $arg && [ -d /home/$user ] &&
  56. echo 'yes'" "yes\n" "" "$pass"
  57. userdel -r $user $arg
  58. g_name="root"
  59. g_id=`grep $g_name':.*:.*' /etc/group | cut -d : -f 3`
  60. testing "group" "useradd -G $g_name $user $arg ||
  61. grep '^$user:.*:.*:$g_id:.*' /etc/passwd $arg && [ -d /home/$user ] &&
  62. echo 'yes'" "yes\n" "" "$pass"
  63. userdel -r $user $arg
  64. testing "(system user)" "useradd -S $user $arg ||
  65. grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
  66. echo 'yes'" "yes\n" "" "$pass"
  67. userdel -r $user $arg
  68. testing "-D" "useradd -D $user $arg ||
  69. grep '^$user:.*:.*:.*' /etc/passwd $arg && [ -d /home/$user ] &&
  70. echo 'yes'" "yes\n" "" "$pass"
  71. userdel -r $user $arg
  72. testing "-H" "useradd -H $user $arg ||
  73. grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
  74. echo 'yes'" "yes\n" "" "$pass"
  75. userdel -r $user $arg
  76. testing "dir and -H" "useradd -H -h $PWD/dir $user $arg ||
  77. grep '^$user:.*dir' /etc/passwd $arg && [ ! -e $PWD/dir ] &&
  78. echo 'yes'" "yes\n" "" "$pass"
  79. userdel -r $user $arg
  80. testing "-u" "useradd -u 49999 $user $arg ||
  81. grep '^$user:x:49999:.*' /etc/passwd $arg && [ -d /home/$user ] &&
  82. echo 'yes'" "yes\n" "" "$pass"
  83. userdel -r $user $arg