3 # Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
4 # Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
6 [ -f testing.sh ] && . testing.sh
8 if [ "$(id -u)" -ne 0 ]
10 echo "$SHOWSKIP: useradd (not root)"
15 # Redirecting all output to /dev/null for grep, adduser and deluser
18 #testing "name" "command" "result" "infile" "stdin"
20 # Default password for adding user is: 'password'
21 pass=`echo -ne 'password\npassword\n'`
24 testing "(text)" "useradd $user $arg ||
25 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
26 echo 'yes'" "yes\n" "" "$pass"
30 testing "(alphanumeric)" "useradd $user $arg ||
31 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
32 echo 'yes'" "yes\n" "" "$pass"
36 testing "(numeric)" "useradd $user $arg ||
37 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
38 echo 'yes'" "yes\n" "" "$pass"
41 user="toy.1Test-2User_3"
42 testing "(with ./-/_)" "useradd $user $arg ||
43 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
44 echo 'yes'" "yes\n" "" "$pass"
47 # 70 characters long string; hereafter, we will use it as per our need.
48 user="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
49 testing "(long string)" "useradd $user $arg ||
50 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
51 echo 'yes'" "yes\n" "" "$pass"
55 testing "dir" "useradd -h $PWD/dir $user $arg ||
56 grep '^$user:.*dir' /etc/passwd $arg && [ -d $PWD/dir ] &&
57 echo 'yes'" "yes\n" "" "$pass"
61 gecos="aaa,bbb,ccc,ddd,eee"
62 testing "gecos" "useradd -g '$gecos' $user $arg ||
63 grep '^$user:.*$gecos' /etc/passwd $arg && [ -d /home/$user ] &&
64 echo 'yes'" "yes\n" "" "$pass"
68 testing "shell" "useradd -s $shl $user $arg ||
69 grep '^$user:.*$shl$' /etc/passwd $arg && [ -d /home/$user ] &&
70 echo 'yes'" "yes\n" "" "$pass"
74 g_id=`grep $g_name':.*:.*' /etc/group | cut -d : -f 3`
75 testing "group" "useradd -G $g_name $user $arg ||
76 grep '^$user:.*:.*:$g_id:.*' /etc/passwd $arg && [ -d /home/$user ] &&
77 echo 'yes'" "yes\n" "" "$pass"
80 testing "(system user)" "useradd -S $user $arg ||
81 grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
82 echo 'yes'" "yes\n" "" "$pass"
85 testing "-D" "useradd -D $user $arg ||
86 grep '^$user:.*:.*:.*' /etc/passwd $arg && [ -d /home/$user ] &&
87 echo 'yes'" "yes\n" "" "$pass"
90 testing "-H" "useradd -H $user $arg ||
91 grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
92 echo 'yes'" "yes\n" "" "$pass"
95 testing "dir and -H" "useradd -H -h $PWD/dir $user $arg ||
96 grep '^$user:.*dir' /etc/passwd $arg && [ ! -e $PWD/dir ] &&
97 echo 'yes'" "yes\n" "" "$pass"
100 testing "-u" "useradd -u 49999 $user $arg ||
101 grep '^$user:x:49999:.*' /etc/passwd $arg && [ -d /home/$user ] &&
102 echo 'yes'" "yes\n" "" "$pass"
103 userdel -r $user $arg