Sorry wrong file ... too many open windows :-( Ok, I did a quick rewrite of deluser.c ... that seems to work, but possibly messes with feature macros. I do not have the time to check this or do thorough testing ...
Looks like the old code tried to remove user NAME from group GROUP in files /etc/passwd and /etc/shadow :-(
/* vi: set sw=4 ts=4: */ /* * deluser/delgroup implementation for busybox * * Copyright (C) 1999 by Lineo, inc. and John Beppu * Copyright (C) 1999,2000,2001 by John Beppu <[email protected]> * Copyright (C) 2007 by Tito Ragusa <[email protected]> * * Licensed under GPL version 2, see file LICENSE in this tarball for details. * */ #include "libbb.h" int deluser_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int deluser_main(int argc, char **argv) { if (argc != 2 && (!ENABLE_FEATURE_DEL_USER_FROM_GROUP || (applet_name[3] != 'g' || argc != 3)) ) { bb_show_usage(); } if (geteuid()) bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); if (ENABLE_DELUSER && applet_name[3] == 'u') { if( update_passwd(bb_path_passwd_file, argv[1], NULL, NULL) < 0) return EXIT_FAILURE; if (ENABLE_FEATURE_SHADOWPASSWDS) { if( update_passwd(bb_path_shadow_file, argv[1], NULL, NULL) < 0) return EXIT_FAILURE; } } else if (ENABLE_DELGROUP && argc != 3 ) { if( update_passwd(bb_path_group_file, argv[1], NULL, NULL) < 0) return EXIT_FAILURE; if (ENABLE_FEATURE_SHADOWPASSWDS) { if( update_passwd(bb_path_gshadow_file, argv[1], NULL, NULL) < 0) return EXIT_FAILURE; } } else if (ENABLE_DELGROUP && ENABLE_FEATURE_DEL_USER_FROM_GROUP) { if( update_passwd(bb_path_group_file, argv[2], NULL, argv[1]) < 0) return EXIT_FAILURE; if (ENABLE_FEATURE_SHADOWPASSWDS) { if( update_passwd(bb_path_gshadow_file, argv[2], NULL, argv[1]) < 0) return EXIT_FAILURE; } } return EXIT_SUCCESS; }
_______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
