Add regression test for 'usermod -rG' -- it should not add users to groups they did not previously belong to
This commit is contained in:
parent
899f7a43b1
commit
20f8ead9ec
@ -0,0 +1,4 @@
|
|||||||
|
user foo, in group users (only in /etc/group)
|
||||||
|
user bar, in group users (only in /etc/group)
|
||||||
|
user foo, in group floppy
|
||||||
|
user bar, in group fax
|
@ -0,0 +1,36 @@
|
|||||||
|
# Default values for useradd(8)
|
||||||
|
#
|
||||||
|
# The SHELL variable specifies the default login shell on your
|
||||||
|
# system.
|
||||||
|
# Similar to DHSELL in adduser. However, we use "sh" here because
|
||||||
|
# useradd is a low level utility and should be as general
|
||||||
|
# as possible
|
||||||
|
SHELL=/bin/foobar
|
||||||
|
#
|
||||||
|
# The default group for users
|
||||||
|
# 100=users on Debian systems
|
||||||
|
# Same as USERS_GID in adduser
|
||||||
|
# This argument is used when the -n flag is specified.
|
||||||
|
# The default behavior (when -n and -g are not specified) is to create a
|
||||||
|
# primary user group with the same name as the user being added to the
|
||||||
|
# system.
|
||||||
|
GROUP=10
|
||||||
|
#
|
||||||
|
# The default home directory. Same as DHOME for adduser
|
||||||
|
HOME=/tmp
|
||||||
|
#
|
||||||
|
# The number of days after a password expires until the account
|
||||||
|
# is permanently disabled
|
||||||
|
INACTIVE=12
|
||||||
|
#
|
||||||
|
# The default expire date
|
||||||
|
EXPIRE=2007-12-02
|
||||||
|
#
|
||||||
|
# The SKEL variable specifies the directory containing "skeletal" user
|
||||||
|
# files; in other words, files such as a sample .profile that will be
|
||||||
|
# copied to the new user's home directory when it is created.
|
||||||
|
# SKEL=/etc/skel
|
||||||
|
#
|
||||||
|
# Defines whether the mail spool should be created while
|
||||||
|
# creating the account
|
||||||
|
# CREATE_MAIL_SPOOL=yes
|
@ -0,0 +1,43 @@
|
|||||||
|
root:x:0:
|
||||||
|
daemon:x:1:
|
||||||
|
bin:x:2:
|
||||||
|
sys:x:3:root
|
||||||
|
adm:x:4:root
|
||||||
|
tty:x:5:
|
||||||
|
disk:x:6:
|
||||||
|
lp:x:7:root
|
||||||
|
mail:x:8:
|
||||||
|
news:x:9:
|
||||||
|
uucp:x:10:
|
||||||
|
man:x:12:
|
||||||
|
proxy:x:13:
|
||||||
|
kmem:x:15:
|
||||||
|
dialout:x:20:
|
||||||
|
fax:x:21:bar
|
||||||
|
voice:x:22:
|
||||||
|
cdrom:x:24:
|
||||||
|
floppy:x:25:foo
|
||||||
|
tape:x:26:
|
||||||
|
sudo:x:27:
|
||||||
|
audio:x:29:
|
||||||
|
dip:x:30:
|
||||||
|
www-data:x:33:
|
||||||
|
backup:x:34:
|
||||||
|
operator:x:37:
|
||||||
|
list:x:38:
|
||||||
|
irc:x:39:
|
||||||
|
src:x:40:
|
||||||
|
gnats:x:41:
|
||||||
|
shadow:x:42:
|
||||||
|
utmp:x:43:
|
||||||
|
video:x:44:
|
||||||
|
sasl:x:45:
|
||||||
|
plugdev:x:46:
|
||||||
|
staff:x:50:
|
||||||
|
games:x:60:
|
||||||
|
users:x:100:foo,bar
|
||||||
|
nogroup:x:65534:
|
||||||
|
crontab:x:101:
|
||||||
|
Debian-exim:x:102:
|
||||||
|
foo:x:1000:
|
||||||
|
bar:x:1001:
|
@ -0,0 +1,42 @@
|
|||||||
|
root:*::
|
||||||
|
daemon:*::
|
||||||
|
bin:*::
|
||||||
|
sys:*::root
|
||||||
|
adm:*::root
|
||||||
|
tty:*::
|
||||||
|
disk:*::
|
||||||
|
lp:*::root
|
||||||
|
mail:*::
|
||||||
|
news:*::
|
||||||
|
uucp:*::
|
||||||
|
man:*::
|
||||||
|
proxy:*::
|
||||||
|
kmem:*::
|
||||||
|
dialout:*::
|
||||||
|
fax:*::bar
|
||||||
|
voice:*::
|
||||||
|
cdrom:*::
|
||||||
|
floppy:*::foo
|
||||||
|
tape:*::
|
||||||
|
sudo:*::
|
||||||
|
audio:*::
|
||||||
|
dip:*::
|
||||||
|
www-data:*::
|
||||||
|
backup:*::
|
||||||
|
operator:*::
|
||||||
|
list:*::
|
||||||
|
irc:*::
|
||||||
|
src:*::
|
||||||
|
gnats:*::
|
||||||
|
shadow:*::
|
||||||
|
utmp:*::
|
||||||
|
video:*::
|
||||||
|
sasl:*::
|
||||||
|
plugdev:*::
|
||||||
|
staff:*::
|
||||||
|
games:*::
|
||||||
|
users:*::
|
||||||
|
nogroup:*::
|
||||||
|
crontab:x::
|
||||||
|
Debian-exim:x::
|
||||||
|
foo:*::
|
@ -0,0 +1,21 @@
|
|||||||
|
root:x:0:0:root:/root:/bin/bash
|
||||||
|
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
|
||||||
|
bin:x:2:2:bin:/bin:/bin/sh
|
||||||
|
sys:x:3:3:sys:/dev:/bin/sh
|
||||||
|
sync:x:4:65534:sync:/bin:/bin/sync
|
||||||
|
games:x:5:60:games:/usr/games:/bin/sh
|
||||||
|
man:x:6:12:man:/var/cache/man:/bin/sh
|
||||||
|
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
|
||||||
|
mail:x:8:8:mail:/var/mail:/bin/sh
|
||||||
|
news:x:9:9:news:/var/spool/news:/bin/sh
|
||||||
|
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
|
||||||
|
proxy:x:13:13:proxy:/bin:/bin/sh
|
||||||
|
www-data:x:33:33:www-data:/var/www:/bin/sh
|
||||||
|
backup:x:34:34:backup:/var/backups:/bin/sh
|
||||||
|
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
|
||||||
|
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
|
||||||
|
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
|
||||||
|
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
|
||||||
|
Debian-exim:x:102:102::/var/spool/exim4:/bin/false
|
||||||
|
foo:x:1000:1000::/home/foo:/bin/false
|
||||||
|
bar:x:1001:1001::/home/foo:/bin/false
|
@ -0,0 +1,21 @@
|
|||||||
|
root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7:::
|
||||||
|
daemon:*:12977:0:99999:7:::
|
||||||
|
bin:*:12977:0:99999:7:::
|
||||||
|
sys:*:12977:0:99999:7:::
|
||||||
|
sync:*:12977:0:99999:7:::
|
||||||
|
games:*:12977:0:99999:7:::
|
||||||
|
man:*:12977:0:99999:7:::
|
||||||
|
lp:*:12977:0:99999:7:::
|
||||||
|
mail:*:12977:0:99999:7:::
|
||||||
|
news:*:12977:0:99999:7:::
|
||||||
|
uucp:*:12977:0:99999:7:::
|
||||||
|
proxy:*:12977:0:99999:7:::
|
||||||
|
www-data:*:12977:0:99999:7:::
|
||||||
|
backup:*:12977:0:99999:7:::
|
||||||
|
list:*:12977:0:99999:7:::
|
||||||
|
irc:*:12977:0:99999:7:::
|
||||||
|
gnats:*:12977:0:99999:7:::
|
||||||
|
nobody:*:12977:0:99999:7:::
|
||||||
|
Debian-exim:!:12977:0:99999:7:::
|
||||||
|
foo:!:12977:0:99999:7:::
|
||||||
|
bar:!:12977:0:99999:7:::
|
@ -0,0 +1,43 @@
|
|||||||
|
root:x:0:
|
||||||
|
daemon:x:1:
|
||||||
|
bin:x:2:
|
||||||
|
sys:x:3:root
|
||||||
|
adm:x:4:root
|
||||||
|
tty:x:5:
|
||||||
|
disk:x:6:
|
||||||
|
lp:x:7:root
|
||||||
|
mail:x:8:
|
||||||
|
news:x:9:
|
||||||
|
uucp:x:10:
|
||||||
|
man:x:12:
|
||||||
|
proxy:x:13:
|
||||||
|
kmem:x:15:
|
||||||
|
dialout:x:20:
|
||||||
|
fax:x:21:bar
|
||||||
|
voice:x:22:
|
||||||
|
cdrom:x:24:
|
||||||
|
floppy:x:25:
|
||||||
|
tape:x:26:
|
||||||
|
sudo:x:27:
|
||||||
|
audio:x:29:
|
||||||
|
dip:x:30:
|
||||||
|
www-data:x:33:
|
||||||
|
backup:x:34:
|
||||||
|
operator:x:37:
|
||||||
|
list:x:38:
|
||||||
|
irc:x:39:
|
||||||
|
src:x:40:
|
||||||
|
gnats:x:41:
|
||||||
|
shadow:x:42:
|
||||||
|
utmp:x:43:
|
||||||
|
video:x:44:
|
||||||
|
sasl:x:45:
|
||||||
|
plugdev:x:46:
|
||||||
|
staff:x:50:
|
||||||
|
games:x:60:
|
||||||
|
users:x:100:foo,bar
|
||||||
|
nogroup:x:65534:
|
||||||
|
crontab:x:101:
|
||||||
|
Debian-exim:x:102:
|
||||||
|
foo:x:1000:
|
||||||
|
bar:x:1001:
|
@ -0,0 +1,42 @@
|
|||||||
|
root:*::
|
||||||
|
daemon:*::
|
||||||
|
bin:*::
|
||||||
|
sys:*::root
|
||||||
|
adm:*::root
|
||||||
|
tty:*::
|
||||||
|
disk:*::
|
||||||
|
lp:*::root
|
||||||
|
mail:*::
|
||||||
|
news:*::
|
||||||
|
uucp:*::
|
||||||
|
man:*::
|
||||||
|
proxy:*::
|
||||||
|
kmem:*::
|
||||||
|
dialout:*::
|
||||||
|
fax:*::bar
|
||||||
|
voice:*::
|
||||||
|
cdrom:*::
|
||||||
|
floppy:*::
|
||||||
|
tape:*::
|
||||||
|
sudo:*::
|
||||||
|
audio:*::
|
||||||
|
dip:*::
|
||||||
|
www-data:*::
|
||||||
|
backup:*::
|
||||||
|
operator:*::
|
||||||
|
list:*::
|
||||||
|
irc:*::
|
||||||
|
src:*::
|
||||||
|
gnats:*::
|
||||||
|
shadow:*::
|
||||||
|
utmp:*::
|
||||||
|
video:*::
|
||||||
|
sasl:*::
|
||||||
|
plugdev:*::
|
||||||
|
staff:*::
|
||||||
|
games:*::
|
||||||
|
users:*::
|
||||||
|
nogroup:*::
|
||||||
|
crontab:x::
|
||||||
|
Debian-exim:x::
|
||||||
|
foo:*::
|
43
tests/usertools/62_usermod_remove_supplementary_groups/usermod.test
Executable file
43
tests/usertools/62_usermod_remove_supplementary_groups/usermod.test
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
|
||||||
|
. ../../common/config.sh
|
||||||
|
. ../../common/log.sh
|
||||||
|
|
||||||
|
log_start "$0" "usermod can remove users from supplementary groups"
|
||||||
|
|
||||||
|
save_config
|
||||||
|
|
||||||
|
# restore the files on exit
|
||||||
|
trap 'log_status "$0" "FAILURE"; restore_config' 0
|
||||||
|
|
||||||
|
change_config
|
||||||
|
|
||||||
|
echo -n "Remove user foo from the 'floppy' group (usermod -rG \"floppy\" foo)..."
|
||||||
|
usermod -rG "floppy" foo
|
||||||
|
echo "OK"
|
||||||
|
|
||||||
|
echo -n "Remove user foo from the 'fax' group (usermod -rG \"fax\" foo)..."
|
||||||
|
usermod -rG "fax" foo
|
||||||
|
echo "OK"
|
||||||
|
|
||||||
|
echo -n "Check the passwd file..."
|
||||||
|
../../common/compare_file.pl config/etc/passwd /etc/passwd
|
||||||
|
echo "OK"
|
||||||
|
echo -n "Check the group file..."
|
||||||
|
../../common/compare_file.pl data/group /etc/group
|
||||||
|
echo "OK"
|
||||||
|
echo -n "Check the shadow file..."
|
||||||
|
../../common/compare_file.pl config/etc/shadow /etc/shadow
|
||||||
|
echo "OK"
|
||||||
|
echo -n "Check the gshadow file..."
|
||||||
|
../../common/compare_file.pl data/gshadow /etc/gshadow
|
||||||
|
echo "OK"
|
||||||
|
|
||||||
|
log_status "$0" "SUCCESS"
|
||||||
|
restore_config
|
||||||
|
trap '' 0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user