123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #!/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 "$SHOWSKIP: useradd (not root)"
- return 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 "(text)" "useradd $user $arg ||
- grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
- echo 'yes'" "yes\n" "" "$pass"
- userdel -r $user $arg
- user="toy1Test2User3"
- testing "(alphanumeric)" "useradd $user $arg ||
- grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
- echo 'yes'" "yes\n" "" "$pass"
- userdel -r $user $arg
- user="987654321"
- testing "(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 "(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 "(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 "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 "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 "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 "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 "(system user)" "useradd -S $user $arg ||
- grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
- echo 'yes'" "yes\n" "" "$pass"
- userdel -r $user $arg
- testing "-D" "useradd -D $user $arg ||
- grep '^$user:.*:.*:.*' /etc/passwd $arg && [ -d /home/$user ] &&
- echo 'yes'" "yes\n" "" "$pass"
- userdel -r $user $arg
- testing "-H" "useradd -H $user $arg ||
- grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
- echo 'yes'" "yes\n" "" "$pass"
- userdel -r $user $arg
- testing "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 "-u" "useradd -u 49999 $user $arg ||
- grep '^$user:x:49999:.*' /etc/passwd $arg && [ -d /home/$user ] &&
- echo 'yes'" "yes\n" "" "$pass"
- userdel -r $user $arg
|