[Pkg-shadow-devel] [Git][debian/adduser][master] 4 commits: add test to check for bug #1099073
Marc Haber (@zugschlus)
gitlab at salsa.debian.org
Mon Mar 3 18:18:20 GMT 2025
Marc Haber pushed to branch master at Debian / adduser
Commits:
e5c4b6ec by Marc Haber at 2025-03-03T19:02:06+01:00
add test to check for bug #1099073
Git-Dch: ignore
- - - - -
eeed860a by Marc Haber at 2025-03-03T19:02:06+01:00
dont issue warnings for --home /nonexistent
Thanks: Sven Joachim
Closes: #1099073
- - - - -
0ae94f1c by Marc Haber at 2025-03-03T19:02:06+01:00
add new test to check two argument adduser with underscores
Git-Dch: ignore
- - - - -
717ac5a2 by Marc Haber at 2025-03-03T19:02:06+01:00
allow adding system accounts to system groups
Closes: #1099397
- - - - -
3 changed files:
- adduser
- + debian/tests/f/addusertogroup_underscore.t
- + debian/tests/f/home-nonexistent-no-create-home.t
Changes:
=====================================
adduser
=====================================
@@ -281,8 +281,8 @@ if (@names == 2) { # must be addusertogroup
exit( RET_INVALID_CALL );
}
$action = "addusertogroup";
- $existing_user = sanitize_name( shift (@names) );
- $existing_group = sanitize_name( shift (@names) );
+ $existing_user = sanitize_string( shift (@names), anynamere );
+ $existing_group = sanitize_string( shift (@names), anynamere );
}
else { # 1 parameter, must be adduser
$new_name = sanitize_name( shift (@names) );
@@ -396,7 +396,7 @@ if ((defined($special_home)) && ($special_home !~ m+^/+ )) {
exit( RET_INVALID_HOME_DIRECTORY );
}
-if (defined($special_home)) {
+if (defined($special_home) && $special_home ne "/nonexistent" ) {
if (!defined($no_create_home) && -d $special_home) {
log_warn( mtx("The home dir %s you specified already exists.\n"), $special_home );
}
=====================================
debian/tests/f/addusertogroup_underscore.t
=====================================
@@ -0,0 +1,118 @@
+#! /usr/bin/perl -Idebian/tests/lib
+
+# check adduser username to group
+# Debian Bug #1099397
+
+use diagnostics;
+use strict;
+use warnings;
+
+use AdduserTestsCommon;
+
+# create user and group
+my $test_user="u1099397";
+my $test_sysuser="_u1099397";
+my $test_group="g1099397";
+my $test_sysgroup="_g1099397";
+my $nonexistent="/nonexistent";
+assert_user_does_not_exist($test_user);
+assert_user_does_not_exist($test_sysuser);
+assert_group_does_not_exist($test_group);
+assert_group_does_not_exist($test_sysgroup);
+assert_command_success('/usr/sbin/adduser',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ '--home', '/nonexistent',
+ '--ingroup', 'nogroup',
+ '--disabled-password',
+ '--comment', '',
+ $test_user);
+assert_user_exists($test_user);
+assert_command_success('/usr/sbin/adduser',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ '--system',
+ $test_sysuser);
+assert_user_exists($test_sysuser);
+assert_command_success('/usr/sbin/addgroup',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ $test_group);
+assert_group_exists($test_group);
+assert_command_success('/usr/sbin/addgroup',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ '--system',
+ $test_sysgroup);
+assert_group_exists($test_sysgroup);
+
+assert_group_membership_does_not_exist($test_user, $test_group);
+assert_group_membership_does_not_exist($test_user, $test_sysgroup);
+assert_group_membership_does_not_exist($test_sysuser, $test_group);
+assert_group_membership_does_not_exist($test_sysuser, $test_sysgroup);
+
+assert_command_success('/usr/sbin/adduser',
+ '--stdoutmsglevel=error', '--stderrmsglevel=error',
+ $test_user,
+ $test_group);
+assert_group_membership_exists($test_user, $test_group);
+assert_group_membership_does_not_exist($test_user, $test_sysgroup);
+assert_group_membership_does_not_exist($test_sysuser, $test_group);
+assert_group_membership_does_not_exist($test_sysuser, $test_sysgroup);
+
+
+assert_command_success('/usr/sbin/adduser',
+ '--stdoutmsglevel=error', '--stderrmsglevel=error',
+ $test_user,
+ $test_sysgroup);
+assert_group_membership_exists($test_user, $test_group);
+assert_group_membership_exists($test_user, $test_sysgroup);
+assert_group_membership_does_not_exist($test_sysuser, $test_group);
+assert_group_membership_does_not_exist($test_sysuser, $test_sysgroup);
+
+assert_command_success('/usr/sbin/adduser',
+ '--stdoutmsglevel=error', '--stderrmsglevel=error',
+ $test_sysuser,
+ $test_group);
+assert_group_membership_exists($test_user, $test_group);
+assert_group_membership_exists($test_user, $test_sysgroup);
+assert_group_membership_exists($test_sysuser, $test_group);
+assert_group_membership_does_not_exist($test_sysuser, $test_sysgroup);
+
+assert_command_success('/usr/sbin/adduser',
+ '--stdoutmsglevel=error', '--stderrmsglevel=error',
+ $test_sysuser,
+ $test_sysgroup);
+assert_group_membership_exists($test_user, $test_group);
+assert_group_membership_exists($test_user, $test_sysgroup);
+assert_group_membership_exists($test_sysuser, $test_group);
+assert_group_membership_exists($test_sysuser, $test_sysgroup);
+
+assert_command_success('/usr/sbin/delgroup',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ $test_group);
+assert_group_does_not_exist($test_group);
+assert_group_membership_does_not_exist($test_user, $test_group);
+assert_group_membership_exists($test_user, $test_sysgroup);
+assert_group_membership_does_not_exist($test_sysuser, $test_group);
+assert_group_membership_exists($test_sysuser, $test_sysgroup);
+
+
+assert_command_success('/usr/sbin/delgroup',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ $test_sysgroup);
+assert_group_does_not_exist($test_sysgroup);
+assert_group_membership_does_not_exist($test_user, $test_group);
+assert_group_membership_does_not_exist($test_user, $test_sysgroup);
+assert_group_membership_does_not_exist($test_sysuser, $test_group);
+assert_group_membership_does_not_exist($test_sysuser, $test_sysgroup);
+
+assert_command_success('/usr/sbin/deluser',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ $test_user);
+assert_user_does_not_exist($test_user);
+
+assert_command_success('/usr/sbin/deluser',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ $test_sysuser);
+assert_user_does_not_exist($test_sysuser);
+
+
+# end of test
+# vim: tabstop=4 shiftwidth=4 expandtab
=====================================
debian/tests/f/home-nonexistent-no-create-home.t
=====================================
@@ -0,0 +1,42 @@
+#! /usr/bin/perl -Idebian/tests/lib
+
+# check adduser with --home /nonexistent and explicit --no-create-home
+# Debian Bug #1099073
+
+use diagnostics;
+use strict;
+use warnings;
+
+use AdduserTestsCommon;
+
+# create user and group
+my $test_user="u1099073";
+my $test_home="/nonexistent";
+assert_user_does_not_exist($test_user);
+assert_command_success('/usr/sbin/adduser',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ '--home', '/nonexistent',
+ '--system',
+ $test_user);
+assert_user_exists($test_user);
+assert_user_has_home_directory($test_user, $test_home);
+assert_command_success('/usr/sbin/deluser',
+ '--stdoutmsglevel=error', '--stderrmsglevel=error',
+ $test_user);
+
+assert_command_success('/usr/sbin/adduser',
+ '--stdoutmsglevel=warn', '--stderrmsglevel=warn',
+ '--home', '/nonexistent',
+ '--no-create-home',
+ '--system',
+ $test_user);
+assert_user_exists($test_user);
+assert_user_has_home_directory($test_user, $test_home);
+assert_command_success('/usr/sbin/deluser',
+ '--stdoutmsglevel=error', '--stderrmsglevel=error',
+ $test_user);
+assert_user_does_not_exist($test_user);
+
+
+# end of test
+# vim: tabstop=4 shiftwidth=4 expandtab
View it on GitLab: https://salsa.debian.org/debian/adduser/-/compare/4b51c786bda7aa16496a3175b799daa142099115...717ac5a232876ecf0e3c34dcb0eed3989fe1ffd8
--
View it on GitLab: https://salsa.debian.org/debian/adduser/-/compare/4b51c786bda7aa16496a3175b799daa142099115...717ac5a232876ecf0e3c34dcb0eed3989fe1ffd8
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/20250303/16a4c44f/attachment-0001.htm>
More information about the Pkg-shadow-devel
mailing list