You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.5 KiB
64 lines
2.5 KiB
#!/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: groupadd (not root)"
|
|
return 2>/dev/null
|
|
exit
|
|
fi
|
|
|
|
# 70 characters long string; hereafter, we will use it as per our need.
|
|
_s70="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
|
|
|
|
echo "# usage: addgroup [-g GID] [USER] GROUP
|
|
# Add a group or add a user to a group."
|
|
|
|
# Redirecting all output to /dev/null for grep and delgroup
|
|
arg="&>/dev/null"
|
|
|
|
#testing "name" "command" "result" "infile" "stdin"
|
|
|
|
testing "group_name (text)" "groupadd toyTestGroup &&
|
|
grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
|
|
echo 'yes'" "yes\n" "" ""
|
|
testing "group_name (alphanumeric)" "groupadd toy1Test2Group3 &&
|
|
grep '^toy1Test2Group3:' /etc/group $arg && groupdel toy1Test2Group3 $arg &&
|
|
echo 'yes'" "yes\n" "" ""
|
|
testing "group_name (numeric)" "groupadd 987654321 &&
|
|
grep '^987654321:' /etc/group $arg && groupdel 987654321 $arg &&
|
|
echo 'yes'" "yes\n" "" ""
|
|
testing "group_name (with ./-)" "groupadd toy.1Test-2Group.3 &&
|
|
grep '^toy.1Test-2Group.3:' /etc/group $arg &&
|
|
groupdel toy.1Test-2Group.3 $arg && echo 'yes'" "yes\n" "" ""
|
|
|
|
_s210=`echo $_s70$_s70$_s70`
|
|
testing "group_name (long string)" "groupadd $_s210 &&
|
|
grep '^$_s210:' /etc/group $arg && groupdel $_s210 $arg && echo 'yes'" \
|
|
"yes\n" "" ""
|
|
testing "group_name with group_id" "groupadd -g 49999 toyTestGroup &&
|
|
grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
|
|
echo 'yes'" "yes\n" "" ""
|
|
testing "group_name with group_id (system_group)" \
|
|
"groupadd -g 49999 -S toyTestGroup && grep '^toyTestGroup:' /etc/group $arg &&
|
|
groupdel toyTestGroup $arg && echo 'yes'" "yes\n" "" ""
|
|
testing "group_name (system_group)" "groupadd -S toyTestGroup &&
|
|
grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
|
|
echo 'yes'" "yes\n" "" ""
|
|
testing "group_name (add/del user)" "groupadd toyTestGroup &&
|
|
grep '^toyTestGroup:' /etc/group $arg && groupadd $USER toyTestGroup &&
|
|
grep '^toyTestGroup:.*:.*:.*$USER.*' /etc/group $arg &&
|
|
groupdel $USER toyTestGroup $arg || groupdel toyTestGroup &&
|
|
grep '^toyTestGroup:' /etc/group $arg || echo 'yes'" "yes\n" "" ""
|
|
|
|
echo "Testing to add single group multiple times after removing it..."
|
|
for each in {01..20}
|
|
do
|
|
testing "group_name ($each)" "groupadd toyTestGroup &&
|
|
grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
|
|
echo 'yes'" "yes\n" "" ""
|
|
done
|