blob: a954e72b634a8f1ca149ffe081e012168f61ecb2 [file] [log] [blame]
Divya Kotharief0ed682014-07-04 21:20:02 -05001#!/bin/bash
2
3# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
4# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
5
6[ -f testing.sh ] && . testing.sh
7
Yeongdeok Suh26833072015-02-18 13:06:26 -06008if [ "$(id -u)" -ne 0 ]
9then
Elliott Hughes2ee0cd92015-03-01 15:35:48 -060010 echo "SKIPPED: useradd (not root)"
Yeongdeok Suh26833072015-02-18 13:06:26 -060011 continue 2>/dev/null
12 exit
13fi
Divya Kotharief0ed682014-07-04 21:20:02 -050014
15# Redirecting all output to /dev/null for grep, adduser and deluser
16arg="&>/dev/null"
17
18#testing "name" "command" "result" "infile" "stdin"
19
20# Default password for adding user is: 'password'
21pass=`echo -ne 'password\npassword\n'`
22
Yeongdeok Suh26833072015-02-18 13:06:26 -060023user="toyTestUser"
24testing "adduser user_name (text)" "useradd $user $arg ||
25 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
26 echo 'yes'" "yes\n" "" "$pass"
27userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050028
Yeongdeok Suh26833072015-02-18 13:06:26 -060029user="toy1Test2User3"
30testing "adduser user_name (alphanumeric)" "useradd $user $arg ||
31 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
32 echo 'yes'" "yes\n" "" "$pass"
33userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050034
Yeongdeok Suh26833072015-02-18 13:06:26 -060035user="987654321"
36testing "adduser user_name (numeric)" "useradd $user $arg ||
37 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
38 echo 'yes'" "yes\n" "" "$pass"
39userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050040
Yeongdeok Suh26833072015-02-18 13:06:26 -060041user="toy.1Test-2User_3"
42testing "adduser user_name (with ./-/_)" "useradd $user $arg ||
43 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
44 echo 'yes'" "yes\n" "" "$pass"
45userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050046
Yeongdeok Suh26833072015-02-18 13:06:26 -060047# 70 characters long string; hereafter, we will use it as per our need.
48user="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
49testing "adduser user_name (long string)" "useradd $user $arg ||
50 grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
51 echo 'yes'" "yes\n" "" "$pass"
52userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050053
Yeongdeok Suh26833072015-02-18 13:06:26 -060054user="toyTestUser"
55testing "adduser user_name with dir" "useradd -h $PWD/dir $user $arg ||
56 grep '^$user:.*dir' /etc/passwd $arg && [ -d $PWD/dir ] &&
57 echo 'yes'" "yes\n" "" "$pass"
58userdel -r $user $arg
59rm -rf $PWD/dir
Divya Kotharief0ed682014-07-04 21:20:02 -050060
61gecos="aaa,bbb,ccc,ddd,eee"
Yeongdeok Suh26833072015-02-18 13:06:26 -060062testing "adduser user_name with gecos" "useradd -g '$gecos' $user $arg ||
63 grep '^$user:.*$gecos' /etc/passwd $arg && [ -d /home/$user ] &&
64 echo 'yes'" "yes\n" "" "$pass"
65userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050066
67shl="/bin/sh"
Yeongdeok Suh26833072015-02-18 13:06:26 -060068testing "adduser user_name with shell" "useradd -s $shl $user $arg ||
69 grep '^$user:.*$shl$' /etc/passwd $arg && [ -d /home/$user ] &&
70 echo 'yes'" "yes\n" "" "$pass"
71userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050072
73g_name="root"
Yeongdeok Suh26833072015-02-18 13:06:26 -060074g_id=`grep $g_name':.*:.*' /etc/group | cut -d : -f 3`
75testing "adduser user_name with group" "useradd -G $g_name $user $arg ||
76 grep '^$user:.*:.*:$g_id:.*' /etc/passwd $arg && [ -d /home/$user ] &&
77 echo 'yes'" "yes\n" "" "$pass"
78userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050079
Yeongdeok Suh26833072015-02-18 13:06:26 -060080testing "adduser user_name (system user)" "useradd -S $user $arg ||
81 grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
82 echo 'yes'" "yes\n" "" "$pass"
83userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050084
Yeongdeok Suh26833072015-02-18 13:06:26 -060085testing "adduser user_name with -D" "useradd -D $user $arg ||
86 grep '^$user:.*:.*:.*' /etc/passwd $arg && [ -d /home/$user ] &&
87 echo 'yes'" "yes\n" "" "$pass"
88userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050089
Yeongdeok Suh26833072015-02-18 13:06:26 -060090testing "adduser user_name with -H" "useradd -H $user $arg ||
91 grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
92 echo 'yes'" "yes\n" "" "$pass"
93userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050094
Yeongdeok Suh26833072015-02-18 13:06:26 -060095testing "adduser user_name with 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"
98userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -050099
Yeongdeok Suh26833072015-02-18 13:06:26 -0600100testing "adduser user_name with user_id" "useradd -u 49999 $user $arg ||
101 grep '^$user:x:49999:.*' /etc/passwd $arg && [ -d /home/$user ] &&
102 echo 'yes'" "yes\n" "" "$pass"
103userdel -r $user $arg
Divya Kotharief0ed682014-07-04 21:20:02 -0500104