�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`� 0x0x
PHP 8.1.31
Preview: deluser Size: 16.11 KB
//sbin/deluser
#!/usr/bin/perl

# deluser -- a utility to remove users from the system
# delgroup -- a utilty to remove groups from the system
my $version = "3.118ubuntu2";

# Copyright (C) 2000 Roland Bauerschmidt <rb@debian.org>
# Based on 'adduser' as pattern by
#     Guy Maor <maor@debian.org>
#     Ted Hajek <tedhajek@boombox.micro.umn.edu>
#     Ian A. Murdock <imurdock@gnu.ai.mit.edu>

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

####################
# See the usage subroutine for explanation about how the program can be called
####################

use warnings;
use strict;
use Getopt::Long;
use Debian::AdduserCommon;

my $install_more_packages ;

BEGIN {
    local $ENV{PERL_DL_NONLAZY}=1;
    eval 'use File::Find';
    if ($@) {
      $install_more_packages = 1;
    }
    #no warnings "File::Find";
    eval 'use File::Temp';
    if ($@) {
      $install_more_packages = 1;
    }
}


BEGIN {
    eval 'use Locale::gettext';
    if ($@) {
        *gettext = sub { shift };
        *textdomain = sub { "" };
        *LC_MESSAGES = sub { 5 };
    }
    eval {
        require POSIX;
        import POSIX qw(setlocale);
    };
    if ($@) {
        *setlocale = sub { return 1 };
    }
}

setlocale(LC_MESSAGES, "");
textdomain("adduser");

my $action = $0 =~ /delgroup$/ ? "delgroup" : "deluser";
our $verbose = 1;
my %pconfig = ();
my %config = ();
my $configfile;
my @defaults;
my $force;


unless ( GetOptions ("quiet|q" => sub {$verbose = 0; },
            "debug" => sub {$verbose = 2; },
	    "version|v" => sub { &version(); exit 0; },
	    "help|h" => sub { &usage(); exit 0;},
	    "group" => sub { $action = "delgroup";},
	    "conf=s" => \$configfile,
	    "system" => \$pconfig{"system"},
	    "only-if-empty" => \$pconfig{"only_if_empty"},
	    "remove-home" => \$pconfig{"remove_home"},
	    "remove-all-files" => \$pconfig{"remove_all_files"},
	    "backup" => \$pconfig{"backup"},
	    "backup-to=s" => \$pconfig{"backup_to"},
            "force" => \$force
       ) ) {
    &usage;
    exit 1;
}

# everyone can issue "--help" and "--version", but only root can go on
dief (gtx("Only root may remove a user or group from the system.\n")) if ($> != 0);

if (!defined($configfile)) { 
    @defaults = ("/etc/adduser.conf", "/etc/deluser.conf");
} else {
    @defaults = ($configfile);
}

# explicitly set PATH, because super (1) cleans up the path and makes deluser unusable;
# this is also a good idea for sudo (which doesn't clean up)
$ENV{"PATH"}="/bin:/usr/bin:/sbin:/usr/sbin";

my @names = ();
my ($user,$group);

######################
# handling of @names #
######################

while (defined(my $arg = shift(@ARGV))) {
  if (defined($names[0]) && $arg =~ /^--/) {
      dief (gtx("No options allowed after names.\n"));
    } else {			# it's a username
	push (@names, $arg);
    }
}

if(@names == 0) {
    if($action eq "delgroup") {
	print (gtx("Enter a group name to remove: "));
    } else {
	print (gtx("Enter a user name to remove: "));
    }
    chomp(my $answer=<STDIN>);
    push(@names, $answer);
}

if (length($names[0]) == 0 || @names > 2) {
    dief (gtx("Only one or two names allowed.\n"));
}

if(@names == 2) {      # must be deluserfromgroup
    $action = "deluserfromgroup";
    $user = shift(@names);
    $group = shift(@names);
} else {
    if($action eq "delgroup") {
	$group = shift(@names);
    } else {
	$user = shift(@names);
    }
}

undef(@names);


##########################################################
# (1) preseed the config
# (2) read the default /etc/adduser.conf configuration.
# (3) read the default /etc/deluser.conf configuration.
# (4) process commmand line settings
# last match wins
##########################################################

preseed_config (\@defaults,\%config);

foreach(keys(%pconfig)) {
    $config{$_} = $pconfig{$_} if ($pconfig{$_});
}

if (($config{remove_home} || $config{remove_all_files} || $config{backup}) && ($install_more_packages)) {
    fail (8, gtx("In order to use the --remove-home, --remove-all-files, and --backup features,
you need to install the `perl' package. To accomplish that, run
apt-get install perl.\n"));
}

 
my ($pw_uid, $pw_gid, $pw_homedir, $gr_gid, $maingroup);

if(defined($user)) {
    my @passwd = getpwnam($user);
    $pw_uid = $passwd[2];
    $pw_gid = $passwd[3];
    $pw_homedir = $passwd[7];
    
    $maingroup = $pw_gid ? getgrgid($pw_gid) : "";
}
if(defined($group)) {
    #($gr_name,$gr_passwd,$gr_gid,$gr_members) = getgrnam($group);
    my @group = getgrnam($group);
    $gr_gid = $group[2];
}

# arguments are processed:
#
#  $action = "deluser"
#     $user          name of the user to remove
#
#  $action = "delgroup"
#     $group         name of the group to remove
#
#  $action = "deluserfromgroup"
#     $user          the user to be remove
#     $group         the group to remove him/her from


if($action eq "deluser") {
    &invalidate_nscd();
    
    my($dummy1,$dummy2,$uid);



    # Don't allow a non-system user to be deleted when --system is given
    # Also, "user does not exist" is only a warning with --system, but an
    # error without --system.
    if( $config{"system"} ) {
	if( ($dummy1,$dummy2,$uid) = getpwnam($user) ) {
	    if ( ($uid < $config{"first_system_uid"} ||
		$uid > $config{"last_system_uid" } ) ) {
		printf (gtx("The user `%s' is not a system user. Exiting.\n"), $user) if $verbose;
		exit 1;
	    }
        } else {
	    printf (gtx("The user `%s' does not exist, but --system was given. Exiting.\n"), $user) if $verbose;
	    exit 0;
	}
    }
    
    unless(exist_user($user)) {
	fail (2,gtx("The user `%s' does not exist.\n"),$user);
    }
    
    # Warn in any case if you want to remove the root account 
    if ((defined($pw_uid)) && ($pw_uid == 0) && (!defined($force)))  {
        printf (gtx("WARNING: You are just about to delete the root account (uid 0)\n"));
        printf (gtx("Usually this is never required as it may render the whole system unusable\n"));
        printf (gtx("If you really want this, call deluser with parameter --force\n"));
        printf (gtx("Stopping now without having performed any action\n"));
        exit 9;
    }

    # consistency check
    # if --backup-to is specified, --backup should be set too
    if ($pconfig{"backup_to"}) {
        $config{"backup"} = 1;
    }

    if($config{"remove_home"} || $config{"remove_all_files"}) {
      s_print (gtx("Looking for files to backup/remove ...\n"));
      my @mountpoints;
      open(MOUNT, "mount |")
	      || fail (4 ,gtx("fork for `mount' to parse mount points failed: %s\n", $!));
      while (<MOUNT>) {
	      my @temparray = split;
	      my $fstype = $temparray[4];
	      my $exclude_fstypes = $config{"exclude_fstypes"};
	      if (defined($exclude_fstypes)) {
	      	next if ($fstype =~ /$exclude_fstypes/);
	      }
	      push @mountpoints,$temparray[2];
      }
      close(MOUNT) or dief (gtx("pipe of command `mount' could not be closed: %s\n",$!));
      my(@files,@dirs);
      if($config{"remove_home"} && ! $config{"remove_all_files"}) {

        # collect all files in user home
	sub home_match {
	  # according to the manpage
	  foreach my $mount (@mountpoints) {
	    if( $File::Find::name eq $mount ) {
	      s_printf (gtx("Not backing up/removing `%s', it is a mount point.\n"),$File::Find::name);
	      $File::Find::prune=1;
	      return;
	    }
	  }
	  foreach my $re ( split ' ', $config{"no_del_paths"} ) {
	    if( $File::Find::name =~ qr/$re/ ) {
	      s_printf (gtx("Not backing up/removing `%s', it matches %s.\n"),$File::Find::name,$re);
	      $File::Find::prune=1;
	      return;
	    }
	  }

	  push(@files, $File::Find::name) 
	    if(-f $File::Find::name || -l $File::Find::name);
	  push(@dirs, $File::Find::name)
	    if(-d $File::Find::name);
	} # sub home_match

	# collect ecryptfs config files not stored in $HOME
	sub ecryptfs_match {
	  if ( $File::Find::name !~ m[^/var/lib/ecryptfs/\Q$user] &&  $File::Find::name !~ m[^/home/\.ecryptfs/\Q$user]) {
	    $File::Find::prune=1;
	    return;
	  }
	  push(@files, $File::Find::name)
	    if(-f $File::Find::name || -l $File::Find::name);
	  push(@dirs, $File::Find::name)
	    if(-d $File::Find::name);
	} # sub ecryptfs_match

	File::Find::find({wanted => \&home_match, untaint => 1, no_chdir => 1}, $pw_homedir)
	  if(-d "$pw_homedir");
	if(-d "/var/lib/ecryptfs/$user") {
	  File::Find::find({wanted => \&ecryptfs_match, untaint => 1, no_chdir => 1}, "/var/lib/ecryptfs/$user");
	} elsif (-d "/home/.ecryptfs/$user") {
	  File::Find::find({wanted => \&ecryptfs_match, untaint => 1, no_chdir => 1}, "/home/.ecryptfs/$user");
	}
	push(@files, "/var/mail/$user")
	  if(-e "/var/mail/$user");
      } else {

        # collect all files on system belonging to that user
	sub find_match {
	  my ($dev,$ino,$mode,$nlink,$uid,$gid);
	  (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
	    ($uid == $pw_uid) &&
	      (
		($File::Find::name =~ /^\/proc\// && ($File::Find::prune = 1)) ||
		(-f $File::Find::name && push(@files, $File::Find::name)) ||
                (-l $File::Find::name && push(@files, $File::Find::name)) ||
		(-d $File::Find::name && push(@dirs, $File::Find::name)) ||
                (-S $File::Find::name && push(@dirs, $File::Find::name)) || 
                (-p $File::Find::name && push(@dirs, $File::Find::name))
	      );
              if ( -b $File::Find::name || -c $File::Find::name ) {
               warnf (gtx("Cannot handle special file %s\n"),$File::Find::name);
              }
	} # sub find_match
	
	File::Find::find({wanted => \&find_match, untaint => 1, no_chdir => 1}, '/');
      }

      if($config{"backup"}) {
	 s_printf (gtx("Backing up files to be removed to %s ...\n"),$config{"backup_to"});
	 my $filesfile = new File::Temp(TEMPLATE=>"deluser.XXXXX", DIR=>"/tmp");
	 my $filesfilename = $filesfile->filename;
	 my $backup_name = $config{"backup_to"} . "/$user.tar";
	 print "backup_name = $backup_name\n";
	 print $filesfile join("\n",@files);
	 $filesfile->close();
         my $tar = &which('tar');
         my $bzip2 = &which('bzip2', 1);
         my $gzip = &which('gzip', 1);
         my $options = '';
	 if($bzip2) {
             $backup_name = "$backup_name.bz2";
             $options = "--bzip2";
	 } elsif($gzip) {
             $backup_name = "$backup_name.gz";
             $options = "--gzip";
	 }
	 &systemcall($tar, $options, "-cf", $backup_name, "--files-from", $filesfilename);
	 chmod 0600, $backup_name;
         my $rootid = 0;
	 chown $rootid, $rootid, $backup_name;
	 unlink($filesfilename);
      }

      if(@files || @dirs) {
	  s_print (gtx("Removing files ...\n"));
	  unlink(@files) if(@files);
	  foreach(reverse(sort(@dirs))) {
	      rmdir($_);
	  }
      }
    }

    if (system("crontab -l $user >/dev/null 2>&1") == 0) {
      # crontab -l returns 1 if there is no crontab
      my $crontab = &which('crontab');
      &systemcall($crontab, "-r", $user);
      s_print (gtx("Removing crontab ...\n"));
    }

    s_printf (gtx("Removing user `%s' ...\n"),$user);
    my @members = get_group_members($maingroup);
    if (@members == 0) {
        s_printf (gtx("Warning: group `%s' has no more members.\n"), $maingroup);    
    }
    my $userdel = &which('userdel');
    &systemcall($userdel, $user);
    &invalidate_nscd();

    systemcall('/usr/local/sbin/deluser.local', $user, $pw_uid,
                $pw_gid, $pw_homedir) if (-x "/usr/local/sbin/deluser.local");

    s_print (gtx("Done.\n"));
    exit 0;
}

    
if($action eq "delgroup") {
    &invalidate_nscd();
    unless(exist_group($group)) {
	printf( gtx("The group `%s' does not exist.\n"),$group) if $verbose;
        exit 3;
    }
    my($dummy,$gid,$members);
    if( !(($dummy, $dummy, $gid, $members ) = getgrnam($group)) ) {
	fail (4 ,gtx("getgrnam `%s' failed. This shouldn't happen.\n"), $group);
    }
    if( $config{"system"} && 
	($gid < $config{"first_system_gid"} ||
	 $gid > $config{"last_system_gid" } )) {
        printf (gtx("The group `%s' is not a system group. Exiting.\n"), $group) if $verbose;
	exit 3;
    }
    if( $config{"only_if_empty"} && $members ne "") {
	fail (5, gtx("The group `%s' is not empty!\n"),$group);
    }
    
    setpwent;
    while ((my $acctname,my $primgrp) = (getpwent)[0,3]) {
	if( $primgrp eq $gr_gid ) {
	    fail (7, gtx("`%s' still has `%s' as their primary group!\n"),$acctname,$group);
	}
    }
    endpwent;

    s_printf (gtx("Removing group `%s' ...\n"),$group);
    my $groupdel = &which('groupdel');
    &systemcall($groupdel,$group);
    &invalidate_nscd();
    s_print (gtx("Done.\n"));
    exit 0;
}


if($action eq "deluserfromgroup")
{
    &invalidate_nscd();
    unless(exist_user($user)) {
	fail (2, gtx("The user `%s' does not exist.\n"),$user);
    }
    unless(exist_group($group)) {
	fail (3, gtx("The group `%s' does not exist.\n"),$group);
    }
    if($maingroup eq $group) {
	fail (7, gtx("You may not remove the user from their primary group.\n"));
    }

    my @members = get_group_members($group);
    my $ismember = 0;

    for(my $i = 0; $i <= $#members; $i++) {
	if($members[$i] eq $user) {
	    $ismember = 1;
	    splice(@members,$i,1);
	}
    }

    unless($ismember) {
	fail (6, gtx("The user `%s' is not a member of group `%s'.\n"),$user,$group);
    }

    s_printf (gtx("Removing user `%s' from group `%s' ...\n"),$user,$group);
    #systemcall("usermod","-G", join(",",@groups), $user );
    my $gpasswd = &which('gpasswd');
    &systemcall($gpasswd,'-M', join(',',@members), $group);
    &invalidate_nscd();
    s_print (gtx("Done.\n"));
}


######

sub fail {
  my ($errorcode, $format, @args) = @_;
  printf STDERR "$0: $format",@args;
  exit $errorcode;

}

sub version {
    printf (gtx("deluser version %s\n\n"), $version);
    printf (gtx("Removes users and groups from the system.\n"));
    
    printf gtx("Copyright (C) 2000 Roland Bauerschmidt <roland\@copyleft.de>\n\n");

    printf gtx("deluser is based on adduser by Guy Maor <maor\@debian.org>, Ian Murdock\n".
	  "<imurdock\@gnu.ai.mit.edu> and Ted Hajek <tedhajek\@boombox.micro.umn.edu>\n\n");

    printf gtx("This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License, /usr/share/common-licenses/GPL, for more details.\n");
}

sub usage {
    printf gtx(
"deluser USER
  remove a normal user from the system
  example: deluser mike

  --remove-home             remove the users home directory and mail spool
  --remove-all-files        remove all files owned by user
  --backup                  backup files before removing.
  --backup-to <DIR>         target directory for the backups.
                            Default is the current directory.
  --system                  only remove if system user

delgroup GROUP
deluser --group GROUP
  remove a group from the system
  example: deluser --group students

  --system                  only remove if system group
  --only-if-empty           only remove if no members left

deluser USER GROUP
  remove the user from a group
  example: deluser mike students

general options:
  --quiet | -q      don't give process information to stdout
  --help | -h       usage message
  --version | -v    version number and copyright
  --conf | -c FILE  use FILE as configuration file\n\n");
}

sub exist_user {
    my $exist_user = shift;
    return(defined getpwnam($exist_user));
}

sub exist_group {
    my $exist_group = shift;
    return(defined getgrnam($exist_group));
}

# vim:set ai et sts=4 sw=4 tw=0:

Directory Contents

Dirs: 0 × Files: 473
Name Size Perms Modified Actions
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
9.64 KB lrwxr-xr-x 2025-04-02 18:34:29
Edit Download
3.00 KB lrwxr-xr-x 2024-03-06 18:40:00
Edit Download
8.63 KB lrwxr-xr-x 2024-03-06 18:40:00
Edit Download
139 B lrwxr-xr-x 2019-06-17 23:55:38
Edit Download
14.38 KB lrwxr-xr-x 2020-02-25 17:13:45
Edit Download
860 B lrwxr-xr-x 2019-12-07 02:13:44
Edit Download
3.00 KB lrwxr-xr-x 2025-06-26 16:57:26
Edit Download
36.90 KB lrwxr-xr-x 2020-04-16 14:12:53
Edit Download
36.90 KB lrwxr-xr-x 2020-04-16 14:12:53
Edit Download
67.38 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
692.07 KB lrwxr-xr-x 2025-04-02 18:34:29
Edit Download
7.06 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
7.06 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
1.46 MB lrwxr-xr-x 2024-03-06 18:40:00
Edit Download
8.63 KB lrwxr-xr-x 2024-03-06 18:40:00
Edit Download
2.17 KB lrwxr-xr-x 2025-06-26 16:57:26
Edit Download
78.27 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
13.22 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
30.01 KB lrwxr-xr-x 2018-11-12 17:11:53
Edit Download
38.38 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
34.32 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
14.15 KB lrwxr-xr-x 2020-07-23 00:33:50
Edit Download
27.20 KB lrwxr-xr-x 2019-12-23 17:56:41
Edit Download
14.49 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
34.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
118.26 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
70.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
66.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
102.30 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
30.30 KB lrwxr-xr-x 2025-02-20 16:01:08
Edit Download
102.59 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
206.48 KB lrwxr-xr-x 2020-02-20 09:44:58
Edit Download
46.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
952 B lrwxr-xr-x 2011-04-26 15:10:00
Edit Download
66.20 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
62.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
58.20 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
42.34 KB lrwxr-xr-x 2019-09-05 10:38:40
Edit Download
60.34 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
60.34 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
54.63 KB lrwxr-xr-x 2020-02-13 20:44:42
Edit Download
1.51 KB lrwxr-xr-x 2020-02-04 13:11:12
Edit Download
844 B lrwxr-xr-x 2020-02-04 13:11:12
Edit Download
135.54 KB lrwxr-xr-x 2022-01-18 17:36:47
Edit Download
105.32 KB lrwxr-xr-x 2022-01-18 17:36:47
Edit Download
38.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
225.80 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
16.11 KB lrwxr-xr-x 2020-04-16 14:12:53
Edit Download
16.11 KB lrwxr-xr-x 2020-04-16 14:12:53
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
150.47 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
508.98 KB lrwxr-xr-x 2023-01-31 22:10:35
Edit Download
15.92 KB lrwxr-xr-x 2023-01-31 22:10:35
Edit Download
50.23 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
119.00 KB lrwxr-xr-x 2019-12-23 17:56:41
Edit Download
171.02 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
171.02 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
58.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
54.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
98.40 KB lrwxr-xr-x 2024-09-11 12:08:49
Edit Download
3.58 KB lrwxr-xr-x 2019-08-03 10:51:13
Edit Download
4.34 KB lrwxr-xr-x 2019-08-03 10:51:13
Edit Download
30.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
18.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
327.21 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
42.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
106.55 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
30.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
7.13 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
5.27 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
22.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
30.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
34.30 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
375.05 KB lrwxr-xr-x 2020-01-30 16:25:08
Edit Download
11.03 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
10.28 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
148.03 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
4.74 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
72.76 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
18.31 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
26.33 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
34.33 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
18.30 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
26.33 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
8.08 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
59.25 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
5.19 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
5.04 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
4.34 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
14.15 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
54.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
34.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
150.27 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
18.33 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
74.48 KB lrwxr-xr-x 2020-02-20 09:44:58
Edit Download
23.54 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
54.27 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
1.16 KB lrwxr-xr-x 2020-02-15 15:52:17
Edit Download
38.26 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
327.21 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
327.21 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
327.21 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
58.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
122.25 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
58.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
58.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
1.92 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
14.30 KB lrwxr-xr-x 2020-02-13 18:38:21
Edit Download
70.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
34.67 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
32.20 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
23.45 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
14.15 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
12.15 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
210.48 KB lrwxr-xr-x 2020-02-20 09:44:58
Edit Download
82.29 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
14.30 KB lrwxr-xr-x 2025-02-20 16:01:08
Edit Download
14.30 KB lrwxr-xr-x 2025-02-20 16:01:08
Edit Download
67.38 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
90.95 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
86.77 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
62.24 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
94.86 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
62.18 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
58.05 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
58.05 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
909.34 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
1.11 MB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
897.03 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
8.54 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
215.70 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
905.28 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
4.73 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
3.47 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
140.34 KB lrwxr-xr-x 2019-08-21 12:36:14
Edit Download
14.15 KB lrwxr-xr-x 2025-04-02 18:34:29
Edit Download
102.35 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
30.40 KB lrwxr-xr-x 2025-05-26 08:09:37
Edit Download
1.02 MB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
1.55 MB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
2.58 KB lrwxr-xr-x 2019-12-07 02:13:44
Edit Download
60.23 KB lrwxr-xr-x 2022-01-18 17:36:47
Edit Download
16.64 KB lrwxr-xr-x 2019-06-21 18:56:55
Edit Download
597.62 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
6.89 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
6.89 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
62.92 KB lrwxr-xr-x 2020-02-13 19:39:57
Edit Download
34.38 KB lrwxr-xr-x 2020-02-13 19:39:57
Edit Download
18.15 KB lrwxr-xr-x 2023-07-25 14:33:19
Edit Download
394.10 KB lrwxr-xr-x 2023-07-25 14:33:19
Edit Download
410.30 KB lrwxr-xr-x 2023-07-25 14:33:19
Edit Download
366.29 KB lrwxr-xr-x 2023-07-25 14:33:19
Edit Download
5.16 KB lrwxr-xr-x 2016-09-29 18:33:24
Edit Download
30.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
15.39 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
13.99 KB lrwxr-xr-x 2019-05-09 15:22:51
Edit Download
26.38 KB lrwxr-xr-x 2020-02-13 18:38:21
Edit Download
46.16 KB lrwxr-xr-x 2023-11-07 21:20:27
Edit Download
34.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
387 B lrwxr-xr-x 2025-05-26 08:09:37
Edit Download
1.00 MB lrwxr-xr-x 2025-05-26 08:09:37
Edit Download
4.30 KB lrwxr-xr-x 2023-07-26 07:44:39
Edit Download
82.09 KB lrwxr-xr-x 2019-01-21 10:11:39
Edit Download
14.16 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
110.34 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
3.32 KB lrwxr-xr-x 2020-02-04 13:11:12
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
10.07 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
232.05 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
78.19 KB lrwxr-xr-x 2020-03-20 14:12:10
Edit Download
22.23 KB lrwxr-xr-x 2020-07-23 00:33:50
Edit Download
3.78 KB lrwxr-xr-x 2017-04-28 19:58:22
Edit Download
589.65 KB lrwxr-xr-x 2020-09-28 16:29:11
Edit Download
325.49 KB lrwxr-xr-x 2020-09-28 16:29:11
Edit Download
34.50 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
134.62 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
34.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
451.53 KB lrwxr-xr-x 2020-02-15 15:52:17
Edit Download
42.16 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
134.62 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
134.62 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
134.62 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
34.50 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
106.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
34.50 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
86.27 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
34.50 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
366.24 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
22.17 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
11.55 KB lrwxr-xr-x 2022-01-26 17:11:24
Edit Download
14.30 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
86.27 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
106.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
1.83 MB lrwxr-xr-x 2022-04-08 09:37:10
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
14.15 KB lrwxr-xr-x 2020-03-07 11:09:49
Edit Download
118.86 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
158.89 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
158.89 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
46.48 KB lrwxr-xr-x 2025-05-06 13:36:15
Edit Download
31.05 KB lrwxr-xr-x 2023-11-07 21:20:27
Edit Download
34.15 KB lrwxr-xr-x 2023-11-07 21:20:27
Edit Download
126.20 KB lrwxr-xr-x 2023-11-07 21:20:27
Edit Download
69.27 MB lrwxr-xr-x 2024-03-27 20:24:33
Edit Download
1.04 KB lrwxr-xr-x 2021-12-10 12:55:20
Edit Download
798 B lrwxr-xr-x 2024-06-28 16:59:34
Edit Download
98.80 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
18.30 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
1.50 MB lrwxr-xr-x 2024-04-23 15:42:29
Edit Download
1.67 MB lrwxr-xr-x 2024-04-23 15:42:29
Edit Download
14.30 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
58.27 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
42.26 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
34.26 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
78.27 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
54.26 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
2.18 KB lrwxr-xr-x 2019-07-20 15:43:51
Edit Download
2.45 KB lrwxr-xr-x 2021-11-02 14:33:46
Edit Download
14.45 KB lrwxr-xr-x 2019-12-23 17:56:41
Edit Download
19.86 KB lrwxr-xr-x 2021-09-17 06:05:34
Edit Download
42.16 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
42.16 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
2.82 KB lrwxr-xr-x 2020-08-12 00:15:04
Edit Download
14.16 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
18.16 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
14.15 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
4.07 KB lrwxr-xr-x 2019-06-25 22:04:32
Edit Download
86.25 KB lrwxr-xr-x 2020-12-01 15:18:05
Edit Download
14.23 KB lrwxr-xr-x 2020-12-01 15:18:05
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
4.55 MB lrwxr-xr-x 2025-03-25 18:57:03
Edit Download
5.41 MB lrwxr-xr-x 2025-03-13 18:12:52
Edit Download
7.11 KB lrwxr-xr-x 2020-03-27 07:44:39
Edit Download
7.11 KB lrwxr-xr-x 2020-03-27 07:44:39
Edit Download
6.24 KB lrwxr-xr-x 2020-03-27 07:44:39
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
146.41 KB lrwxr-xr-x 2020-11-02 10:02:17
Edit Download
543 B lrwxr-xr-x 2020-02-13 23:04:46
Edit Download
5.23 KB lrwxr-xr-x 2020-02-13 23:04:46
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
1.02 MB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
1.64 KB lrwxr-xr-x 2020-02-27 19:30:14
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
58.17 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
54.05 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
54.05 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
22.26 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
2.86 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
2.86 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
904 B lrwxr-xr-x 2019-12-07 02:13:44
Edit Download
66.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
58.55 KB lrwxr-xr-x 2023-12-05 05:16:50
Edit Download
58.55 KB lrwxr-xr-x 2023-12-05 05:16:50
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
710.20 KB lrwxr-xr-x 2022-05-03 08:48:35
Edit Download
48.29 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
46.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
78.24 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
66.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
3.23 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
3.21 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
9.04 KB lrwxr-xr-x 2019-06-21 18:56:55
Edit Download
14.30 KB lrwxr-xr-x 2025-02-20 16:01:08
Edit Download
14.07 KB lrwxr-xr-x 2019-05-09 15:22:51
Edit Download
14.13 KB lrwxr-xr-x 2019-05-09 15:22:51
Edit Download
138.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
190.48 KB lrwxr-xr-x 2020-02-20 09:44:58
Edit Download
885 B lrwxr-xr-x 2021-07-14 22:08:18
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
2.36 KB lrwxr-xr-x 2025-04-02 18:34:29
Edit Download
863.79 KB lrwxr-xr-x 2025-04-11 12:16:08
Edit Download
47.32 KB lrwxr-xr-x 2022-05-25 11:14:20
Edit Download
50.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
18.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
22.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
50.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
30.23 KB lrwxr-xr-x 2023-10-31 11:35:56
Edit Download
1.41 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
936 B lrwxr-xr-x 2023-12-05 05:16:50
Edit Download
529.45 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
1,019.76 KB lrwxr-xr-x 2024-02-08 13:08:41
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
126.23 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
106.55 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
106 B lrwxr-xr-x 2025-04-22 10:15:47
Edit Download
4.82 KB lrwxr-xr-x 2023-07-17 14:14:04
Edit Download
14.30 KB lrwxr-xr-x 2021-09-06 03:01:13
Edit Download
42.15 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
42.15 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
5.29 KB lrwxr-xr-x 2024-09-24 17:46:09
Edit Download
1.00 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
9.68 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
7.50 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
1.00 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
782 B lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
14.72 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
3.33 KB lrwxr-xr-x 2020-03-27 23:00:03
Edit Download
8.20 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
5.71 KB lrwxr-xr-x 2016-08-21 16:54:00
Edit Download
3.98 KB lrwxr-xr-x 2016-08-21 16:54:11
Edit Download
6.10 KB lrwxr-xr-x 2016-08-21 16:54:20
Edit Download
64 B lrwxr-xr-x 2022-12-02 15:20:54
Edit Download
301 B lrwxr-xr-x 2015-03-27 17:50:35
Edit Download
64 B lrwxr-xr-x 2022-12-02 15:20:54
Edit Download
470 B lrwxr-xr-x 2025-03-25 19:38:31
Edit Download
1.66 KB lrwxr-xr-x 2019-10-10 22:32:01
Edit Download
7.25 KB lrwxr-xr-x 2021-03-18 18:48:17
Edit Download
2.99 KB lrwxr-xr-x 2023-06-16 10:22:06
Edit Download
9.18 KB lrwxr-xr-x 2019-10-18 23:05:50
Edit Download
34.56 KB lrwxr-xr-x 2019-12-16 23:51:51
Edit Download
1.71 KB lrwxr-xr-x 2021-03-31 22:55:11
Edit Download
16.76 KB lrwxr-xr-x 2019-06-21 18:56:55
Edit Download
7.43 KB lrwxr-xr-x 2024-01-24 09:14:48
Edit Download
1.49 KB lrwxr-xr-x 2022-12-02 15:20:54
Edit Download
59.66 KB lrwxr-xr-x 2020-02-10 07:23:53
Edit Download
54.32 KB lrwxr-xr-x 2020-02-10 07:23:53
Edit Download
143.71 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
98.89 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
139.49 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
42.30 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
1.73 KB lrwxr-xr-x 2022-08-02 15:34:43
Edit Download
13.99 KB lrwxr-xr-x 2019-05-09 15:22:51
Edit Download
51.82 KB lrwxr-xr-x 2022-01-18 17:36:47
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
68.55 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
68.55 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
218.20 KB lrwxr-xr-x 2023-04-04 11:56:28
Edit Download
18.58 KB lrwxr-xr-x 2019-12-23 17:56:41
Edit Download
46.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
1.38 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
695 B lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
90.28 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
620.09 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
14.01 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
800 B lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
42.02 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
34.14 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
1.26 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
187.34 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
74.15 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
30.02 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
782 B lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
1.02 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
685 B lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
86.01 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
563.15 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
17.99 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
102.11 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
5.86 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
42.15 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
9.99 KB lrwxr-xr-x 2018-03-15 11:50:56
Edit Download
62.29 KB lrwxr-xr-x 2025-05-26 08:09:37
Edit Download
114.34 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 0xNothings — Secure File Manager. All rights reserved. Built with ❤️ & Tailwind x Dark UI
Upload
React Archives - Weelorum https://weelorum.com/technology/react/ Full Cycle Mobile App Development Services For Startups Sun, 01 Mar 2026 20:04:38 +0000 en-US hourly 1 https://wordpress.org/?v=7.0 LearnPath https://weelorum.com/portfolio-projects/learnpath/ Sun, 01 Mar 2026 20:04:38 +0000 https://weelorum.com/success-stories/learnpath/ LearnPath uses machine learning to create personalized learning paths for professionals. The platform analyzes user performance, adjusts difficulty levels in real-time, and recommends relevant courses. Features include video lessons, interactive quizzes, and certification tracking.

Сообщение LearnPath появились сначала на Weelorum.

]]>
LearnPath uses machine learning to create personalized learning paths for professionals. The platform analyzes user performance, adjusts difficulty levels in real-time, and recommends relevant courses. Features include video lessons, interactive quizzes, and certification tracking.

Сообщение LearnPath появились сначала на Weelorum.

]]>
FleetTrack https://weelorum.com/portfolio-projects/fleettrack/ Sun, 01 Mar 2026 20:04:38 +0000 https://weelorum.com/success-stories/fleettrack/ FleetTrack provides comprehensive fleet management for logistics companies. Features include GPS tracking, route optimization, driver behavior monitoring, fuel consumption analytics, and maintenance scheduling. The dashboard offers real-time visibility across the entire fleet.

Сообщение FleetTrack появились сначала на Weelorum.

]]>
FleetTrack provides comprehensive fleet management for logistics companies. Features include GPS tracking, route optimization, driver behavior monitoring, fuel consumption analytics, and maintenance scheduling. The dashboard offers real-time visibility across the entire fleet.

Сообщение FleetTrack появились сначала на Weelorum.

]]>