Add regression test for 'usermod -rG' -- it should not add users to groups they did not previously belong to
This commit is contained in:
		
				
					committed by
					
						 Serge Hallyn
						Serge Hallyn
					
				
			
			
				
	
			
			
			
						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 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user