[Pkg-shadow-devel] [Git][debian/adduser][debian/latest] 5 commits: add test for deluser --group
Marc Haber (@zugschlus)
gitlab at salsa.debian.org
Tue Oct 14 06:21:08 BST 2025
Marc Haber pushed to branch debian/latest at Debian / adduser
Commits:
c1ea85e2 by Marc Haber at 2025-10-14T07:08:02+02:00
add test for deluser --group
Git-Dch: ignore
- - - - -
c68dcbb6 by Marc Haber at 2025-10-14T07:08:02+02:00
make deluser --group work as documented
This a drive-by fix 1109329, when another user reported an unrelated
issue
- - - - -
3d9569f1 by Marc Haber at 2025-10-14T07:08:02+02:00
add a test for deluser with a user-specific option
Git-Dch: ignore
- - - - -
d8e3b97d by Marc Haber at 2025-10-14T07:08:02+02:00
have delgroup reject user-specific command line options
This a drive-by fix 1109329, when another user reported an unrelated
issue
- - - - -
02ad950a by Marc Haber at 2025-10-14T07:08:02+02:00
correctly sanitize names in deluser
Thanks: Dagfinn Ilmari Mannsåker
Closes: #1109329
- - - - -
4 changed files:
- debian/tests/f/adduser_system.t
- deluser
- testsuite/test08.pl
- testsuite/test09.pl
Changes:
=====================================
debian/tests/f/adduser_system.t
=====================================
@@ -291,6 +291,7 @@ assert_command_success(
);
# clean up
+# en passant test delgroup and deluser --group
assert_command_success(
'/usr/sbin/deluser',
'--stdoutmsglevel=error', '--stderrmsglevel=error',
@@ -310,10 +311,15 @@ assert_command_success(
'aust'
);
assert_command_success(
- '/usr/sbin/delgroup',
+ '/usr/sbin/deluser',
+ '--group',
'--stdoutmsglevel=error', '--stderrmsglevel=error',
'--system',
'aust2'
);
+assert_user_does_not_exist('aust');
+assert_user_does_not_exist('aust2');
+assert_group_does_not_exist('aust');
+assert_group_does_not_exist('aust2');
# vim: tabstop=4 shiftwidth=4 expandtab
=====================================
deluser
=====================================
@@ -106,7 +106,7 @@ if ($encode_loaded) {
binmode(STDERR, ":encoding($charset)");
}
-our $action;
+our $action = "";
our $verbose;
our $stdoutmsglevel = "warn";
our $stderrmsglevel = "warn";
@@ -187,7 +187,9 @@ if( defined $verbose ) {
}
# detect the operation mode
-$action = $0 =~ /delgroup$/ ? "delgroup" : "deluser";
+if ($action eq "") {
+ $action = $0 =~ /delgroup$/ ? "delgroup" : "deluser";
+}
############################
# checks related to @names #
@@ -212,13 +214,13 @@ if ( (! defined $names[0]) || length($names[0]) == 0 || @names > 2) {
if(@names == 2) { # must be deluserfromgroup
$action = "deluserfromgroup";
- $user = sanitize_string( shift(@names) );
- $group = sanitize_string( shift(@names) );
+ $user = sanitize_string( shift(@names), anynamere );
+ $group = sanitize_string( shift(@names), anynamere );
} else { # 1 parameter, must be delgroup
if($action eq "delgroup") {
- $group = shift(@names);
+ $group = sanitize_string( shift(@names), anynamere );
} else {
- $user = shift(@names);
+ $user = sanitize_string( shift(@names), anynamere );
}
}
@@ -451,6 +453,10 @@ if($action eq "deluser") {
if ($action eq 'delgroup') {
+ if ( $pconfig{'remove_home'} || $pconfig{'remove_all_files'} || $pconfig{'backup'} || $pconfig{'backup_to'} || $pconfig{'backup_suffix'} || $no_preserve_root ) {
+ log_warn( mtx("incompatible options for deluser given to deluser --group or delgroup") );
+ exit( RET_EXCLUSIVE_PARAMETERS );
+ }
unless (exist_group($group)) {
if( $config{'system'} ) {
log_warn( mtx("The group `%s' does not exist."), $group);
=====================================
testsuite/test08.pl
=====================================
@@ -91,6 +91,34 @@ unless (!defined getgrnam($newgroup)) {
print "ok\n";
}
+my $newgroup = find_unused_name();
+
+$cmd = "adduser --group $newgroup";
+unless (defined getgrnam($newgroup)) {
+ print "Testing $cmd... ";
+ `$cmd`;
+ my $error = ($?>>8);
+ if ($error) {
+ print "failed\n addgroup returned an errorcode != 0 ($error)\n";
+ exit $error;
+ }
+ assert(check_group_exist ($newgroup));
+ print "ok\n";
+}
+
+$cmd = "deluser --group $newgroup";
+unless (!defined getgrnam($newgroup)) {
+ print "Testing $cmd... ";
+ `$cmd`;
+ my $error = ($?>>8);
+ if ($error) {
+ print "failed\n delgroup returned an errorcode != 0 ($error)\n";
+ exit $error;
+ }
+ assert(!check_group_exist ($newgroup));
+ print "ok\n";
+}
+
my $sysusername = find_unused_name();
$cmd = "adduser --system --comment test --disabled-password --add-extra-groups $sysusername";
=====================================
testsuite/test09.pl
=====================================
@@ -62,11 +62,24 @@ if ($output !~ /^err: The group `addusertest\d+' already exists and is not a sys
}
print "ok\n";
+# now testing whether trying to delete the group with --remove-home
+# fails as it should
+
+$cmd = "delgroup --system --remove-home $groupname";
+print "Testing (9.4) $cmd... ";
+$output=`$cmd 2>&1`;
+$error = ($?>>8);
+if ($error ne 53) {
+ print "failed\n $cmd returned an errorcode != 53 ($error)\n";
+ exit $error;
+}
+print "ok\n";
+
my $sysgroupname = find_unused_name();
$cmd = "addgroup --system $sysgroupname";
if (!defined (getgrnam($sysgroupname))) {
- print "Testing (9.4) $cmd... ";
+ print "Testing (9.5) $cmd... ";
$output=`$cmd 2>&1`;
$error = ($?>>8);
if ($error) {
@@ -82,7 +95,7 @@ if (!defined (getgrnam($sysgroupname))) {
# ("already exists as a system group")
$cmd = "addgroup --system $sysgroupname" ;
-print "Testing (9.5) $cmd... ";
+print "Testing (9.6) $cmd... ";
$output=`$cmd 2>&1`;
$error = ($?>>8);
if ($error) {
@@ -95,7 +108,7 @@ print "ok\n";
# fails as it should
$cmd = "addgroup $sysgroupname";
-print "Testing (9.6) $cmd... ";
+print "Testing (9.7) $cmd... ";
$output=`$cmd 2>&1`;
$error = ($?>>8);
if ($error ne 11) {
View it on GitLab: https://salsa.debian.org/debian/adduser/-/compare/77331713cece439372e2f081153bb87f356a6c4e...02ad950aafe8d7e09fc6987317654c41e8f15009
--
View it on GitLab: https://salsa.debian.org/debian/adduser/-/compare/77331713cece439372e2f081153bb87f356a6c4e...02ad950aafe8d7e09fc6987317654c41e8f15009
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-shadow-devel/attachments/20251014/09a1372a/attachment-0001.htm>
More information about the Pkg-shadow-devel
mailing list