blob: a954e72b634a8f1ca149ffe081e012168f61ecb2 [file] [log] [blame]
#!/bin/bash
# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
[ -f testing.sh ] && . testing.sh
if [ "$(id -u)" -ne 0 ]
then
echo "SKIPPED: useradd (not root)"
continue 2>/dev/null
exit
fi
# Redirecting all output to /dev/null for grep, adduser and deluser
arg="&>/dev/null"
#testing "name" "command" "result" "infile" "stdin"
# Default password for adding user is: 'password'
pass=`echo -ne 'password\npassword\n'`
user="toyTestUser"
testing "adduser user_name (text)" "useradd $user $arg ||
grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
user="toy1Test2User3"
testing "adduser user_name (alphanumeric)" "useradd $user $arg ||
grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
user="987654321"
testing "adduser user_name (numeric)" "useradd $user $arg ||
grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
user="toy.1Test-2User_3"
testing "adduser user_name (with ./-/_)" "useradd $user $arg ||
grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
# 70 characters long string; hereafter, we will use it as per our need.
user="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
testing "adduser user_name (long string)" "useradd $user $arg ||
grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
user="toyTestUser"
testing "adduser user_name with dir" "useradd -h $PWD/dir $user $arg ||
grep '^$user:.*dir' /etc/passwd $arg && [ -d $PWD/dir ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
rm -rf $PWD/dir
gecos="aaa,bbb,ccc,ddd,eee"
testing "adduser user_name with gecos" "useradd -g '$gecos' $user $arg ||
grep '^$user:.*$gecos' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
shl="/bin/sh"
testing "adduser user_name with shell" "useradd -s $shl $user $arg ||
grep '^$user:.*$shl$' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
g_name="root"
g_id=`grep $g_name':.*:.*' /etc/group | cut -d : -f 3`
testing "adduser user_name with group" "useradd -G $g_name $user $arg ||
grep '^$user:.*:.*:$g_id:.*' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
testing "adduser user_name (system user)" "useradd -S $user $arg ||
grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
testing "adduser user_name with -D" "useradd -D $user $arg ||
grep '^$user:.*:.*:.*' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
testing "adduser user_name with -H" "useradd -H $user $arg ||
grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
testing "adduser user_name with dir and -H" "useradd -H -h $PWD/dir $user $arg ||
grep '^$user:.*dir' /etc/passwd $arg && [ ! -e $PWD/dir ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
testing "adduser user_name with user_id" "useradd -u 49999 $user $arg ||
grep '^$user:x:49999:.*' /etc/passwd $arg && [ -d /home/$user ] &&
echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg