1ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari#!/bin/bash 2ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 3ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com> 4ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com> 5ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 6ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari[ -f testing.sh ] && . testing.sh 7ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 8268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhif [ "$(id -u)" -ne 0 ] 9268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhthen 103f3049c2f1b225f244fe3c1205935c48c542a055Rob Landley echo "$SHOWSKIP: useradd (not root)" 11268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh continue 2>/dev/null 12268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh exit 13268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhfi 14ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 15ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari# Redirecting all output to /dev/null for grep, adduser and deluser 16ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothariarg="&>/dev/null" 17ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 18ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari#testing "name" "command" "result" "infile" "stdin" 19ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 20ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari# Default password for adding user is: 'password' 21ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kotharipass=`echo -ne 'password\npassword\n'` 22ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 23268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuser="toyTestUser" 24336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "(text)" "useradd $user $arg || 25268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] && 26268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 27268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 28268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 29268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuser="toy1Test2User3" 30336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "(alphanumeric)" "useradd $user $arg || 31268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] && 32268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 33268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 34268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 35268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuser="987654321" 36336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "(numeric)" "useradd $user $arg || 37268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] && 38268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 39268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 40268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 41268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuser="toy.1Test-2User_3" 42336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "(with ./-/_)" "useradd $user $arg || 43268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] && 44268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 45268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 46ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 47268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh# 70 characters long string; hereafter, we will use it as per our need. 48268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuser="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789" 49336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "(long string)" "useradd $user $arg || 50268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] && 51268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 52268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 53268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 54268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuser="toyTestUser" 55336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "dir" "useradd -h $PWD/dir $user $arg || 56268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:.*dir' /etc/passwd $arg && [ -d $PWD/dir ] && 57268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 58268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 59268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhrm -rf $PWD/dir 60ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 61ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kotharigecos="aaa,bbb,ccc,ddd,eee" 62336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "gecos" "useradd -g '$gecos' $user $arg || 63268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:.*$gecos' /etc/passwd $arg && [ -d /home/$user ] && 64268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 65268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 66ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 67ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kotharishl="/bin/sh" 68336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "shell" "useradd -s $shl $user $arg || 69268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:.*$shl$' /etc/passwd $arg && [ -d /home/$user ] && 70268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 71268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 72ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 73ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kotharig_name="root" 74268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhg_id=`grep $g_name':.*:.*' /etc/group | cut -d : -f 3` 75336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "group" "useradd -G $g_name $user $arg || 76268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:.*:.*:$g_id:.*' /etc/passwd $arg && [ -d /home/$user ] && 77268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 78268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 79268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 80336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "(system user)" "useradd -S $user $arg || 81268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] && 82268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 83268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 84268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 85336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "-D" "useradd -D $user $arg || 86268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:.*:.*:.*' /etc/passwd $arg && [ -d /home/$user ] && 87268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 88268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 89268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 90336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "-H" "useradd -H $user $arg || 91268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] && 92268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 93268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 94268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 95336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "dir and -H" "useradd -H -h $PWD/dir $user $arg || 96268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:.*dir' /etc/passwd $arg && [ ! -e $PWD/dir ] && 97268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 98268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 99268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh 100336c44adca1768ada1e1e2f4d7dbbc33e994e582Rob Landleytesting "-u" "useradd -u 49999 $user $arg || 101268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh grep '^$user:x:49999:.*' /etc/passwd $arg && [ -d /home/$user ] && 102268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suh echo 'yes'" "yes\n" "" "$pass" 103268330739fd7ab6313b9d7096b9bc0aa9a25f321Yeongdeok Suhuserdel -r $user $arg 104ef0ed68d5ba5794c1352e64273d4c5039e62476bDivya Kothari 105