#!/usr/bin/perl -w # # a2enmod by Stefan Fritsch <sf@debian.org> # Licensed under Apache License 2.0 # # The coding style is "perltidy -pbp" use strict; use Cwd 'realpath'; use File::Spec; use File::Basename; use File::Path; use Getopt::Long; use 5.014; no if $] >= 5.017011, warnings => 'experimental::smartmatch'; my $quiet; my $force; my $maintmode; my $purge; Getopt::Long::Configure('bundling'); GetOptions( 'quiet|q' => \$quiet, 'force|f' => \$force, 'maintmode|m' => \$maintmode, 'purge|p' => \$purge ) or exit 2; my $basename = basename($0); $basename =~ /^a2(en|dis)(mod|site|conf)((?:-.+)?)$/ or die "$basename call name unknown\n"; my $act = $1; my $obj = $2; my $dir_suffix = $3; my @essential_module_list = qw(alias auth_basic authn_file authz_host authz_user autoindex deflate dir env filter logio mime negotiation setenvif unixd version watchdog); my $env_file = $ENV{APACHE_ENVVARS}; if (! $env_file) { if ($ENV{APACHE_CONFDIR}) { $env_file = "$ENV{APACHE_CONFDIR}/envvars"; } else { $env_file = "/etc/apache2$dir_suffix/envvars"; } } $ENV{LANG} = 'C'; read_env_file($env_file); $act .= 'able'; my ( $name, $dir, $sffx, $reload ); if ( $obj eq 'mod' ) { $obj = 'module'; $dir = 'mods'; $sffx = '.load'; $reload = 'restart'; } elsif ( $obj eq 'conf' ) { $obj = 'conf'; $dir = 'conf'; $sffx = '.conf'; $reload = 'reload'; } else { $dir = 'sites'; $sffx = '.conf'; $reload = 'reload'; } $name = ucfirst($obj); my $confdir = $ENV{APACHE_CONFDIR} || "/etc/apache2$dir_suffix"; my $availdir = $ENV{ uc("APACHE_${dir}_AVAILABLE") } || "$confdir/$dir-available"; my $enabldir = $ENV{ uc("APACHE_${dir}_ENABLED") } || "$confdir/$dir-enabled"; my $statedir = $ENV{ uc("APACHE_STATE_DIRECTORY") } || "/var/lib/apache2"; $statedir .= "/$obj"; my $choicedir = $act eq 'enable' ? $availdir : $enabldir; my $linkdir = File::Spec->abs2rel( $availdir, $enabldir ); my $request_reload = 0; my $request_htcacheclean; my $htc = "apache-htcacheclean$dir_suffix"; my $htc_service = "apache-htcacheclean"; # Service name for systemd my $apache_service = "apache2"; if (defined($dir_suffix) and $dir_suffix ne '') { # Uses '@instance.service' suffix instead of '-instance' suffix my $service_suffix = '@' . substr($dir_suffix, 1) . '.service'; $htc_service .= $service_suffix; $apache_service .= $service_suffix; } my $rc = 0; if ( !scalar @ARGV ) { my @choices = myglob('*'); print "Your choices are: @choices\n"; print "Which ${obj}(s) do you want to $act (wildcards ok)?\n"; my $input = <>; @ARGV = split /\s+/, $input; } my @objs; foreach my $arg (@ARGV) { $arg =~ s/${sffx}$//; my @glob = myglob($arg); if ( !@glob ) { error("No $obj found matching $arg!\n"); $rc = 1; } else { push @objs, @glob; } } foreach my $acton (@objs) { doit($acton) or $rc = 1; } my $htcstart = ""; my $apache_reload = ""; my $cmd = ($act eq "enable") ? "start" : "stop"; if (is_systemd()) { $htcstart = " systemctl $cmd $htc_service\n"; $apache_reload = " systemctl $reload $apache_service\n"; } else { $htcstart = " service $htc $cmd\n"; $apache_reload = " service apache2$dir_suffix $reload\n"; } info( "To activate the new configuration, you need to run:\n" . $apache_reload . ($request_htcacheclean ? $htcstart : "") ) if $request_reload; exit($rc); ############################################################################## sub myglob { my $arg = shift; my @glob = map { s{^$choicedir/}{}; s{$sffx$}{}; $_ } glob("$choicedir/$arg$sffx"); return @glob; } sub doit { my $acton = shift; my ( $conftgt, $conflink ); if ( $obj eq 'module' ) { if ( $act eq 'enable' && $acton eq 'cgi' && threaded() ) { print "Your MPM seems to be threaded. Selecting cgid instead of cgi.\n"; $acton = 'cgid'; } $conftgt = "$availdir/$acton.conf"; if ( -e $conftgt ) { $conflink = "$enabldir/$acton.conf"; } } my $tgt = "$availdir/$acton$sffx"; my $link = "$enabldir/$acton$sffx"; if ( !-e $tgt ) { if ( -l $link && !-e $link ) { if ( $act eq 'disable' ) { info("removing dangling symlink $link\n"); unlink($link); # force a .conf path. It may exist as dangling link, too $conflink = "$enabldir/$acton.conf"; if ( -l $conflink && !-e $conflink ) { info("removing dangling symlink $conflink\n"); unlink($conflink); } return 1; } else { error("$link is a dangling symlink!\n"); } } if ( $purge ) { switch_marker( $obj, $act, $acton ); # exit silently, we are purging anyway return 1; } error("$name $acton does not exist!\n"); return 0; } # handle module dependencies if ( $obj eq 'module' ) { if ( $act eq 'enable' ) { my @depends = get_deps("$availdir/$acton.load"); do_deps( $acton, @depends ) or return 0; my @conflicts = get_deps( "$availdir/$acton.load", "Conflicts" ); check_conflicts( $acton, @conflicts ) or return 0; } else { my @depending; foreach my $d ( glob("$enabldir/*.load") ) { my @deps = get_deps($d); if ( is_in( $acton, @deps ) ) { $d =~ m,/([^/]+).load$,; push @depending, $1; } } if ( scalar @depending ) { if ($force) { do_deps( $acton, @depending ) or return 0; } else { error( "The following modules depend on $acton ", "and need to be disabled first: @depending\n" ); return 0; } } } } elsif ( $act eq 'enable' ) { my @depends = get_deps("$availdir/$acton$sffx"); warn_deps( $acton, @depends ) or return 0; } if ( $act eq 'enable' ) { my $check = check_link( $tgt, $link ); if ( $check eq 'ok' ) { if ($conflink) { # handle .conf file my $confcheck = check_link( $conftgt, $conflink ); if ( $confcheck eq 'ok' ) { info("$name $acton already enabled\n"); return 1; } elsif ( $confcheck eq 'missing' ) { print "Enabling config file $acton.conf.\n"; add_link( $conftgt, $conflink ) or return 0; } else { error( "Config file $acton.conf not properly enabled: $confcheck\n" ); return 0; } } else { info("$name $acton already enabled\n"); return 1; } } elsif ( $check eq 'missing' ) { if ($conflink) { # handle .conf file my $confcheck = check_link( $conftgt, $conflink ); if ( $confcheck eq 'missing' ) { add_link( $conftgt, $conflink ) or return 0; } elsif ( $confcheck ne 'ok' ) { error( "Config file $acton.conf not properly enabled: $confcheck\n" ); return 0; } } print "Enabling $obj $acton.\n"; special_module_handling($acton); return add_link( $tgt, $link ) && switch_marker( $obj, $act, $acton ); } else { error("$name $acton not properly enabled: $check\n"); return 0; } } else { if ( -e $link || -l $link ) { special_module_handling($acton); if ($obj eq 'module' && grep {$_ eq $acton} @essential_module_list) { $force || essential_module_handling($acton); } remove_link($link); if ( $conflink && -e $conflink ) { remove_link($conflink); } switch_marker( $obj, $act, $acton ); print "$name $acton disabled.\n"; } elsif ( $conflink && -e $conflink ) { print "Disabling stale config file $acton.conf.\n"; remove_link($conflink); } else { info("$name $acton already disabled\n"); if ( $purge ) { switch_marker( $obj, $act, $acton ); } return 1; } } return 1; } sub get_deps { my $file = shift; my $type = shift || "Depends"; my $fd; if ( !open( $fd, '<', $file ) ) { error("Can't open $file: $!"); return; } my $line; while ( defined( $line = <$fd> ) ) { chomp $line; if ( $line =~ /^# $type:\s+(.*?)\s*$/ ) { my $deps = $1; return split( /[\n\s]+/, $deps ); } # only check until the first non-empty non-comment line last if ( $line !~ /^\s*(?:#.*)?$/ ); } return; } sub do_deps { my $acton = shift; foreach my $d (@_) { info("Considering dependency $d for $acton:\n"); if ( !doit($d) ) { error("Could not $act dependency $d for $acton, aborting\n"); return 0; } } return 1; } sub warn_deps { my $acton = shift; my $modsenabldir = $ENV{APACHE_MODS_ENABLED} || "$confdir/mods-enabled"; foreach my $d (@_) { info("Checking dependency $d for $acton:\n"); if ( !-e "$modsenabldir/$d.load" ) { warning( "Module $d is not enabled, but $acton depends on it, aborting\n" ); return 0; } } return 1; } sub check_conflicts { my $acton = shift; my $haderror = 0; foreach my $d (@_) { info("Considering conflict $d for $acton:\n"); my $tgt = "$availdir/$d$sffx"; my $link = "$enabldir/$d$sffx"; my $confcheck = check_link( $tgt, $link ); if ( $confcheck eq 'ok' ) { error( "Module $d is enabled - cannot proceed due to conflicts. It needs to be disabled first!\n" ); # Don't return immediately, there could be several conflicts $haderror++; } } if ($haderror) { return 0; } return 1; } sub add_link { my ( $tgt, $link ) = @_; # create relative link if ( !symlink( File::Spec->abs2rel( $tgt, dirname($link) ), $link ) ) { die("Could not create $link: $!\n"); } $request_reload = 1; return 1; } sub check_link { my ( $tgt, $link ) = @_; if ( !-e $link ) { if ( -l $link ) { # points to nowhere info("Removing dangling link $link"); unlink($link) or die "Could not remove $link\n"; } return 'missing'; } if ( -e $link && !-l $link ) { return "$link is a real file, not touching it"; } if ( realpath($link) ne realpath($tgt) ) { return "$link exists but does not point to $tgt, not touching it"; } return 'ok'; } sub remove_link { my ($link) = @_; if ( -l $link ) { unlink($link) or die "Could not remove $link: $!\n"; } elsif ( -e $link ) { error("$link is not a symbolic link, not deleting\n"); return 0; } $request_reload = 1; return 1; } sub threaded { my $result = ""; $result = qx{/usr/sbin/apache2ctl -V | grep 'threaded'} if -x '/usr/sbin/apache2ctl'; if ( $? != 0 ) { # config doesn't work if ( -e "$enabldir/mpm_prefork.load" ) { return 0; } elsif (-e "$enabldir/mpm_worker.load" || -e "$enabldir/mpm_event.load" ) { return 1; } else { error("Can't determine enabled MPM"); # do what user requested return 0; } } if ( $result =~ / no/ ) { return 0; } elsif ( $result =~ / yes/ ) { return 1; } else { die("Can't parse output from apache2ctl -V:\n$result\n"); } } sub info { print @_ if !$quiet; } sub error { print STDERR 'ERROR: ', @_; } sub warning { print STDERR 'WARNING: ', @_; } sub is_in { my $needle = shift; foreach my $e (@_) { return 1 if $needle eq $e; } return 0; } sub read_env_file { my $file = shift; -r $file or return; my @lines = qx{env - sh -c '. $file && env'}; if ($?) { die "Could not read $file\n"; } foreach my $l (@lines) { chomp $l; $l =~ /^(.*)?=(.*)$/ or die "Could not parse $file\n"; $ENV{$1} = $2; } } sub switch_marker { die('usage: switch_marker([module|site|conf], [enable|disable], $name)') if @_ != 3; my $which = shift; my $what = shift; my $name = shift; my $mode = "admin"; $mode = "maint" if $maintmode; #print("switch_marker $which $what $name\n"); # TODO: get rid of the magic string(s) my $state_marker_dir = "$statedir/$what" . "d" . "_by_$mode"; my $state_marker = "$state_marker_dir/$name"; if ( !-d $state_marker_dir ) { File::Path::mkpath("$state_marker_dir") || error( "Failed to create marker directory: '$state_marker_dir'\n"); } # XXX: swap find with perl alternative my @markers = qx{find "$statedir" -type f -a -name "$name"}; chomp(@markers); foreach (@markers) { unless ( unlink $_ ) { error("Failed to remove old marker '$_'!\n") && return 0; } } unless ($purge) { qx{touch "$state_marker"}; if ( $? != 0 ) { error("Failed to create marker '$state_marker'!\n") && return 0; } return 1; } } sub essential_module_handling { my $module = shift; print "WARNING: The following essential module will be disabled.\n"; print "This might result in unexpected behavior and should NOT be done\n"; print "unless you know exactly what you are doing!\n $module\n\n"; print "To continue type in the phrase 'Yes, do as I say!' or retry by passing '-f': "; my $input = <STDIN>; chomp($input); if ($input ne 'Yes, do as I say!') { print("Aborting\n"); exit(1) } } sub special_module_handling { my $acton = shift; if ($obj ne 'module') { return; } given ($acton) { when ('ssl') { if ( $act eq 'enable' ) { info( "See /usr/share/doc/apache2/README.Debian.gz on " . "how to configure SSL and create self-signed " . "certificates.\n" ); } } when ('cache_disk') { $request_htcacheclean = 1; my $verb = "\u$act"; my $command; $verb =~ s/e$/ing/; if (-d "/run/systemd" and -x "/bin/systemctl") { info("$verb external service $htc_service\n"); $command = "systemctl $act $htc_service"; } else { info("$verb external service $htc\n"); $command = "update-rc.d $htc $act"; } my $res = system($command); if ($res == 0) { info("The service will be started on next reboot.\n") if $act eq 'enable'; } else { warning("'$command' failed\n"); } } } } sub is_systemd { my $init = readlink("/proc/1/exe") || ""; return scalar $init =~ /systemd/; } # vim: syntax=perl sw=4 sts=4 sr et
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
ModemManager | File | 1.83 MB | 0755 |
|
NetworkManager | File | 2.95 MB | 0755 |
|
a2disconf | File | 15.89 KB | 0755 |
|
a2dismod | File | 15.89 KB | 0755 |
|
a2dissite | File | 15.89 KB | 0755 |
|
a2enconf | File | 15.89 KB | 0755 |
|
a2enmod | File | 15.89 KB | 0755 |
|
a2ensite | File | 15.89 KB | 0755 |
|
a2query | File | 9.64 KB | 0755 |
|
aa-remove-unknown | File | 3 KB | 0755 |
|
aa-status | File | 8.63 KB | 0755 |
|
aa-teardown | File | 139 B | 0755 |
|
accessdb | File | 14.38 KB | 0755 |
|
acpid | File | 59.02 KB | 0755 |
|
add-shell | File | 860 B | 0755 |
|
addgnupghome | File | 3 KB | 0755 |
|
addgroup | File | 36.9 KB | 0755 |
|
adduser | File | 36.9 KB | 0755 |
|
agetty | File | 67.38 KB | 0755 |
|
alsa | File | 5.45 KB | 0755 |
|
alsa-info | File | 25.87 KB | 0755 |
|
alsabat-test | File | 4.04 KB | 0755 |
|
alsactl | File | 115.41 KB | 0755 |
|
anacron | File | 38.17 KB | 0755 |
|
apache2 | File | 692.07 KB | 0755 |
|
apache2ctl | File | 7.06 KB | 0755 |
|
apachectl | File | 7.06 KB | 0755 |
|
apparmor_parser | File | 1.46 MB | 0755 |
|
apparmor_status | File | 8.63 KB | 0755 |
|
applygnupgdefaults | File | 2.17 KB | 0755 |
|
aptd | File | 1.36 KB | 0755 |
|
arp | File | 69.3 KB | 0755 |
|
arpd | File | 78.27 KB | 0755 |
|
arptables | File | 215.32 KB | 0755 |
|
arptables-nft | File | 215.32 KB | 0755 |
|
arptables-nft-restore | File | 215.32 KB | 0755 |
|
arptables-nft-save | File | 215.32 KB | 0755 |
|
arptables-restore | File | 215.32 KB | 0755 |
|
arptables-save | File | 215.32 KB | 0755 |
|
aspell-autobuildhash | File | 13.22 KB | 0755 |
|
avahi-autoipd | File | 42.23 KB | 0755 |
|
avahi-daemon | File | 138.51 KB | 0755 |
|
badblocks | File | 34.32 KB | 0755 |
|
biosdecode | File | 27.2 KB | 0755 |
|
blkdeactivate | File | 14.49 KB | 0755 |
|
blkdiscard | File | 34.23 KB | 0755 |
|
blkid | File | 118.26 KB | 0755 |
|
blkzone | File | 70.23 KB | 0755 |
|
blockdev | File | 66.23 KB | 0755 |
|
bluetoothd | File | 1.07 MB | 0755 |
|
bridge | File | 102.3 KB | 0755 |
|
brltty | File | 799.61 KB | 0755 |
|
brltty-setup | File | 1.38 KB | 0755 |
|
capsh | File | 30.3 KB | 0755 |
|
cfdisk | File | 102.59 KB | 0755 |
|
cgdisk | File | 206.48 KB | 0755 |
|
chat | File | 34.16 KB | 0755 |
|
chcpu | File | 46.23 KB | 0755 |
|
check_forensic | File | 952 B | 0755 |
|
chgpasswd | File | 66.2 KB | 0755 |
|
chmem | File | 62.23 KB | 0755 |
|
chpasswd | File | 58.2 KB | 0755 |
|
chroot | File | 42.34 KB | 0755 |
|
cpgr | File | 60.34 KB | 0755 |
|
cppw | File | 60.34 KB | 0755 |
|
cracklib-check | File | 14.15 KB | 0755 |
|
cracklib-format | File | 231 B | 0755 |
|
cracklib-packer | File | 14.15 KB | 0755 |
|
cracklib-unpacker | File | 14.15 KB | 0755 |
|
crda | File | 9.99 KB | 0755 |
|
create-cracklib-dict | File | 990 B | 0755 |
|
cron | File | 54.63 KB | 0755 |
|
ctrlaltdel | File | 38.23 KB | 0755 |
|
cups-browsed | File | 222.68 KB | 0755 |
|
cupsaccept | File | 14.3 KB | 0755 |
|
cupsctl | File | 14.38 KB | 0755 |
|
cupsd | File | 454.88 KB | 0755 |
|
cupsdisable | File | 14.3 KB | 0755 |
|
cupsenable | File | 14.3 KB | 0755 |
|
cupsfilter | File | 46.59 KB | 0755 |
|
cupsreject | File | 14.3 KB | 0755 |
|
dbconfig-generate-include | File | 12.37 KB | 0755 |
|
dbconfig-load-include | File | 5.57 KB | 0755 |
|
debugfs | File | 225.8 KB | 0755 |
|
delgroup | File | 16.11 KB | 0755 |
|
deluser | File | 16.11 KB | 0755 |
|
depmod | File | 170.34 KB | 0755 |
|
devlink | File | 150.47 KB | 0755 |
|
dhclient | File | 508.98 KB | 0755 |
|
dhclient-script | File | 15.92 KB | 0755 |
|
dmidecode | File | 119 KB | 0755 |
|
dmsetup | File | 171.02 KB | 0755 |
|
dmstats | File | 171.02 KB | 0755 |
|
dnsmasq | File | 465.06 KB | 0755 |
|
dosfsck | File | 58.08 KB | 0755 |
|
dosfslabel | File | 54.08 KB | 0755 |
|
dpkg-preconfigure | File | 3.58 KB | 0755 |
|
dpkg-reconfigure | File | 4.34 KB | 0755 |
|
dumpe2fs | File | 30.38 KB | 0755 |
|
e2freefrag | File | 18.38 KB | 0755 |
|
e2fsck | File | 327.21 KB | 0755 |
|
e2image | File | 42.38 KB | 0755 |
|
e2label | File | 106.55 KB | 0755 |
|
e2mmpstatus | File | 30.38 KB | 0755 |
|
e2scrub | File | 7.13 KB | 0755 |
|
e2scrub_all | File | 5.27 KB | 0755 |
|
e2undo | File | 22.38 KB | 0755 |
|
e4crypt | File | 30.38 KB | 0755 |
|
e4defrag | File | 34.3 KB | 0755 |
|
ebtables | File | 215.32 KB | 0755 |
|
ebtables-nft | File | 215.32 KB | 0755 |
|
ebtables-nft-restore | File | 215.32 KB | 0755 |
|
ebtables-nft-save | File | 215.32 KB | 0755 |
|
ebtables-restore | File | 215.32 KB | 0755 |
|
ebtables-save | File | 215.32 KB | 0755 |
|
faillock | File | 14.15 KB | 0755 |
|
fatlabel | File | 54.08 KB | 0755 |
|
fdformat | File | 34.23 KB | 0755 |
|
fdisk | File | 150.27 KB | 0755 |
|
filefrag | File | 18.33 KB | 0755 |
|
findfs | File | 14.23 KB | 0755 |
|
fixparts | File | 74.48 KB | 0755 |
|
fsck | File | 54.27 KB | 0755 |
|
fsck.cramfs | File | 38.26 KB | 0755 |
|
fsck.ext2 | File | 327.21 KB | 0755 |
|
fsck.ext3 | File | 327.21 KB | 0755 |
|
fsck.ext4 | File | 327.21 KB | 0755 |
|
fsck.fat | File | 58.08 KB | 0755 |
|
fsck.minix | File | 122.25 KB | 0755 |
|
fsck.msdos | File | 58.08 KB | 0755 |
|
fsck.vfat | File | 58.08 KB | 0755 |
|
fsfreeze | File | 14.23 KB | 0755 |
|
fstab-decode | File | 14.3 KB | 0755 |
|
fstrim | File | 70.23 KB | 0755 |
|
gdisk | File | 210.48 KB | 0755 |
|
gdm3 | File | 442.67 KB | 0755 |
|
genl | File | 82.29 KB | 0755 |
|
getcap | File | 14.3 KB | 0755 |
|
getpcaps | File | 14.3 KB | 0755 |
|
getty | File | 67.38 KB | 0755 |
|
getweb | File | 13.58 KB | 0755 |
|
gnome-menus-blacklist | File | 2.23 KB | 0755 |
|
groupadd | File | 90.95 KB | 0755 |
|
groupdel | File | 86.77 KB | 0755 |
|
groupmems | File | 62.24 KB | 0755 |
|
groupmod | File | 94.86 KB | 0755 |
|
grpck | File | 62.18 KB | 0755 |
|
grpconv | File | 58.05 KB | 0755 |
|
grpunconv | File | 58.05 KB | 0755 |
|
grub-bios-setup | File | 909.34 KB | 0755 |
|
grub-install | File | 1.11 MB | 0755 |
|
grub-macbless | File | 897.03 KB | 0755 |
|
grub-mkconfig | File | 8.54 KB | 0755 |
|
grub-mkdevicemap | File | 215.7 KB | 0755 |
|
grub-probe | File | 905.28 KB | 0755 |
|
grub-reboot | File | 4.73 KB | 0755 |
|
grub-set-default | File | 3.47 KB | 0755 |
|
halt | File | 973.23 KB | 0755 |
|
hdparm | File | 140.34 KB | 0755 |
|
httxt2dbm | File | 14.15 KB | 0755 |
|
hwclock | File | 102.35 KB | 0755 |
|
iconvconfig | File | 30.4 KB | 0755 |
|
ifconfig | File | 85.11 KB | 0755 |
|
iio-sensor-proxy | File | 66.99 KB | 0755 |
|
init | File | 1.55 MB | 0755 |
|
insmod | File | 170.34 KB | 0755 |
|
install-sgmlcatalog | File | 4.44 KB | 0755 |
|
installkernel | File | 2.58 KB | 0755 |
|
invoke-rc.d | File | 16.64 KB | 0755 |
|
ip | File | 597.62 KB | 0755 |
|
ip6tables | File | 96.97 KB | 0755 |
|
ip6tables-apply | File | 6.89 KB | 0755 |
|
ip6tables-legacy | File | 96.97 KB | 0755 |
|
ip6tables-legacy-restore | File | 96.97 KB | 0755 |
|
ip6tables-legacy-save | File | 96.97 KB | 0755 |
|
ip6tables-nft | File | 215.32 KB | 0755 |
|
ip6tables-nft-restore | File | 215.32 KB | 0755 |
|
ip6tables-nft-save | File | 215.32 KB | 0755 |
|
ip6tables-restore | File | 96.97 KB | 0755 |
|
ip6tables-restore-translate | File | 215.32 KB | 0755 |
|
ip6tables-save | File | 96.97 KB | 0755 |
|
ip6tables-translate | File | 215.32 KB | 0755 |
|
ipmaddr | File | 17.99 KB | 0755 |
|
ippeveprinter | File | 130.38 KB | 0755 |
|
ippusbxd | File | 70.66 KB | 0755 |
|
iptables | File | 96.97 KB | 0755 |
|
iptables-apply | File | 6.89 KB | 0755 |
|
iptables-legacy | File | 96.97 KB | 0755 |
|
iptables-legacy-restore | File | 96.97 KB | 0755 |
|
iptables-legacy-save | File | 96.97 KB | 0755 |
|
iptables-nft | File | 215.32 KB | 0755 |
|
iptables-nft-restore | File | 215.32 KB | 0755 |
|
iptables-nft-save | File | 215.32 KB | 0755 |
|
iptables-restore | File | 96.97 KB | 0755 |
|
iptables-restore-translate | File | 215.32 KB | 0755 |
|
iptables-save | File | 96.97 KB | 0755 |
|
iptables-translate | File | 215.32 KB | 0755 |
|
iptunnel | File | 25.99 KB | 0755 |
|
irqbalance | File | 62.92 KB | 0755 |
|
irqbalance-ui | File | 34.38 KB | 0755 |
|
isosize | File | 30.23 KB | 0755 |
|
ispell-autobuildhash | File | 15.39 KB | 0755 |
|
iucode-tool | File | 54.18 KB | 0755 |
|
iucode_tool | File | 54.18 KB | 0755 |
|
iw | File | 262.82 KB | 0755 |
|
iwconfig | File | 34.07 KB | 0755 |
|
iwevent | File | 22.07 KB | 0755 |
|
iwgetid | File | 14.07 KB | 0755 |
|
iwlist | File | 38.22 KB | 0755 |
|
iwpriv | File | 18.07 KB | 0755 |
|
iwspy | File | 13.99 KB | 0755 |
|
kbdrate | File | 13.99 KB | 0755 |
|
kerneloops | File | 25.99 KB | 0755 |
|
killall5 | File | 26.38 KB | 0755 |
|
ldattach | File | 34.23 KB | 0755 |
|
ldconfig | File | 387 B | 0755 |
|
ldconfig.real | File | 1 MB | 0755 |
|
locale-gen | File | 4.3 KB | 0755 |
|
logrotate | File | 82.09 KB | 0755 |
|
logsave | File | 14.16 KB | 0755 |
|
losetup | File | 110.34 KB | 0755 |
|
lpadmin | File | 34.38 KB | 0755 |
|
lpc | File | 14.35 KB | 0755 |
|
lpinfo | File | 18.3 KB | 0755 |
|
lpmove | File | 14.3 KB | 0755 |
|
lsmod | File | 170.34 KB | 0755 |
|
lspcmcia | File | 22.37 KB | 0755 |
|
make-ssl-cert | File | 3.78 KB | 0755 |
|
mii-tool | File | 26.46 KB | 0755 |
|
mkdosfs | File | 34.5 KB | 0755 |
|
mke2fs | File | 134.62 KB | 0755 |
|
mkfs | File | 14.23 KB | 0755 |
|
mkfs.bfs | File | 34.23 KB | 0755 |
|
mkfs.cramfs | File | 42.16 KB | 0755 |
|
mkfs.ext2 | File | 134.62 KB | 0755 |
|
mkfs.ext3 | File | 134.62 KB | 0755 |
|
mkfs.ext4 | File | 134.62 KB | 0755 |
|
mkfs.fat | File | 34.5 KB | 0755 |
|
mkfs.minix | File | 106.23 KB | 0755 |
|
mkfs.msdos | File | 34.5 KB | 0755 |
|
mkfs.ntfs | File | 86.27 KB | 0755 |
|
mkfs.vfat | File | 34.5 KB | 0755 |
|
mkhomedir_helper | File | 22.17 KB | 0755 |
|
mkinitramfs | File | 11.55 KB | 0755 |
|
mklost+found | File | 14.3 KB | 0755 |
|
mkntfs | File | 86.27 KB | 0755 |
|
mkswap | File | 106.23 KB | 0755 |
|
modinfo | File | 170.34 KB | 0755 |
|
modprobe | File | 170.34 KB | 0755 |
|
mount.fuse | File | 14.15 KB | 0755 |
|
mount.lowntfs-3g | File | 118.86 KB | 0755 |
|
mount.ntfs | File | 158.89 KB | 0755 |
|
mount.ntfs-3g | File | 158.89 KB | 0755 |
|
mysqld | File | 64.26 MB | 0755 |
|
nameif | File | 18.14 KB | 0755 |
|
netplan | File | 798 B | 0755 |
|
newusers | File | 98.8 KB | 0755 |
|
nfnl_osf | File | 18.3 KB | 0755 |
|
nologin | File | 14.3 KB | 0755 |
|
ntfsclone | File | 58.27 KB | 0755 |
|
ntfscp | File | 42.26 KB | 0755 |
|
ntfslabel | File | 34.26 KB | 0755 |
|
ntfsresize | File | 78.27 KB | 0755 |
|
ntfsundelete | File | 54.26 KB | 0755 |
|
on_ac_power | File | 2.18 KB | 0755 |
|
openvpn | File | 782.45 KB | 0755 |
|
ownership | File | 14.45 KB | 0755 |
|
pam-auth-update | File | 19.86 KB | 0755 |
|
pam_extrausers_chkpwd | File | 42.16 KB | 2755 |
|
pam_extrausers_update | File | 42.16 KB | 0755 |
|
pam_getenv | File | 2.82 KB | 0755 |
|
pam_tally | File | 14.16 KB | 0755 |
|
pam_tally2 | File | 18.16 KB | 0755 |
|
pam_timestamp_check | File | 14.15 KB | 0755 |
|
paperconfig | File | 4.07 KB | 0755 |
|
parted | File | 86.25 KB | 0755 |
|
partprobe | File | 14.23 KB | 0755 |
|
pccardctl | File | 22.37 KB | 0755 |
|
phpdismod | File | 7.11 KB | 0755 |
|
phpenmod | File | 7.11 KB | 0755 |
|
phpquery | File | 6.24 KB | 0755 |
|
pivot_root | File | 14.23 KB | 0755 |
|
plipconfig | File | 14 KB | 0755 |
|
plymouthd | File | 146.41 KB | 0755 |
|
popcon-largest-unused | File | 543 B | 0755 |
|
popularity-contest | File | 5.23 KB | 0755 |
|
poweroff | File | 973.23 KB | 0755 |
|
pppd | File | 385.88 KB | 4754 |
|
pppdump | File | 18.26 KB | 0755 |
|
pppoe-discovery | File | 22.15 KB | 0755 |
|
pppstats | File | 18.15 KB | 0755 |
|
pptp | File | 71.13 KB | 0755 |
|
pptpsetup | File | 6.46 KB | 0755 |
|
pwck | File | 58.17 KB | 0755 |
|
pwconv | File | 54.05 KB | 0755 |
|
pwunconv | File | 54.05 KB | 0755 |
|
rarp | File | 40.45 KB | 0755 |
|
raw | File | 14.23 KB | 0755 |
|
readprofile | File | 22.26 KB | 0755 |
|
reboot | File | 973.23 KB | 0755 |
|
regdbdump | File | 9.99 KB | 0755 |
|
remove-default-ispell | File | 2.86 KB | 0755 |
|
remove-default-wordlist | File | 2.86 KB | 0755 |
|
remove-shell | File | 904 B | 0755 |
|
resize2fs | File | 66.38 KB | 0755 |
|
rfkill | File | 50.23 KB | 0755 |
|
rmmod | File | 170.34 KB | 0755 |
|
rmt | File | 58.55 KB | 0755 |
|
rmt-tar | File | 58.55 KB | 0755 |
|
route | File | 64.3 KB | 0755 |
|
rsyslogd | File | 710.2 KB | 0755 |
|
rtacct | File | 48.29 KB | 0755 |
|
rtcwake | File | 46.23 KB | 0755 |
|
rtkitctl | File | 14.21 KB | 0755 |
|
rtmon | File | 78.24 KB | 0755 |
|
runlevel | File | 973.23 KB | 0755 |
|
runuser | File | 66.23 KB | 0755 |
|
saned | File | 66.48 KB | 0755 |
|
select-default-ispell | File | 3.23 KB | 0755 |
|
select-default-wordlist | File | 3.21 KB | 0755 |
|
service | File | 9.04 KB | 0755 |
|
setcap | File | 14.3 KB | 0755 |
|
setvesablank | File | 14.07 KB | 0755 |
|
setvtrgb | File | 14.13 KB | 0755 |
|
sfdisk | File | 138.23 KB | 0755 |
|
sgdisk | File | 190.48 KB | 0755 |
|
shadowconfig | File | 885 B | 0755 |
|
shutdown | File | 973.23 KB | 0755 |
|
slattach | File | 44.45 KB | 0755 |
|
spice-vdagentd | File | 58.82 KB | 0755 |
|
split-logfile | File | 2.36 KB | 0755 |
|
sshd | File | 863.79 KB | 0755 |
|
start-stop-daemon | File | 47.32 KB | 0755 |
|
sulogin | File | 50.23 KB | 0755 |
|
swaplabel | File | 18.23 KB | 0755 |
|
swapoff | File | 22.23 KB | 0755 |
|
swapon | File | 50.23 KB | 0755 |
|
switch_root | File | 14.23 KB | 0755 |
|
sysctl | File | 30.23 KB | 0755 |
|
tarcat | File | 936 B | 0755 |
|
tc | File | 529.45 KB | 0755 |
|
tcpdump | File | 1019.76 KB | 0755 |
|
telinit | File | 973.23 KB | 0755 |
|
thermald | File | 670.6 KB | 0755 |
|
tipc | File | 126.23 KB | 0755 |
|
tune2fs | File | 106.55 KB | 0755 |
|
tzconfig | File | 106 B | 0755 |
|
u-d-c-print-pci-ids | File | 517 B | 0755 |
|
ufw | File | 4.82 KB | 0755 |
|
umount.udisks2 | File | 14.3 KB | 0755 |
|
unix_chkpwd | File | 42.15 KB | 2755 |
|
unix_update | File | 42.15 KB | 0755 |
|
update-ca-certificates | File | 5.29 KB | 0755 |
|
update-catalog | File | 9.15 KB | 0755 |
|
update-cracklib | File | 1.15 KB | 0755 |
|
update-default-aspell | File | 1 KB | 0755 |
|
update-default-ispell | File | 9.68 KB | 0755 |
|
update-default-wordlist | File | 7.5 KB | 0755 |
|
update-dictcommon-aspell | File | 1 KB | 0755 |
|
update-dictcommon-hunspell | File | 782 B | 0755 |
|
update-fonts-alias | File | 5.71 KB | 0755 |
|
update-fonts-dir | File | 3.98 KB | 0755 |
|
update-fonts-scale | File | 6.1 KB | 0755 |
|
update-grub | File | 64 B | 0755 |
|
update-grub-gfxpayload | File | 301 B | 0755 |
|
update-grub2 | File | 64 B | 0755 |
|
update-gsfontmap | File | 470 B | 0755 |
|
update-icon-caches | File | 596 B | 0755 |
|
update-inetd | File | 5.83 KB | 0755 |
|
update-info-dir | File | 1.66 KB | 0755 |
|
update-initramfs | File | 7.25 KB | 0755 |
|
update-locale | File | 2.99 KB | 0755 |
|
update-mime | File | 9.18 KB | 0755 |
|
update-passwd | File | 34.56 KB | 0755 |
|
update-pciids | File | 1.71 KB | 0755 |
|
update-rc.d | File | 16.76 KB | 0755 |
|
update-xmlcatalog | File | 16.88 KB | 0755 |
|
upgrade-from-grub-legacy | File | 1.49 KB | 0755 |
|
usb_modeswitch | File | 59.66 KB | 0755 |
|
usb_modeswitch_dispatcher | File | 54.32 KB | 0755 |
|
usbmuxd | File | 86.57 KB | 0755 |
|
useradd | File | 143.71 KB | 0755 |
|
userdel | File | 98.89 KB | 0755 |
|
usermod | File | 139.49 KB | 0755 |
|
uuidd | File | 42.3 KB | 0755 |
|
validlocale | File | 1.73 KB | 0755 |
|
vcstime | File | 13.99 KB | 0755 |
|
vigr | File | 68.55 KB | 0755 |
|
vipw | File | 68.55 KB | 0755 |
|
visudo | File | 218.2 KB | 0755 |
|
vpddecode | File | 18.58 KB | 0755 |
|
wipefs | File | 46.23 KB | 0755 |
|
wpa_action | File | 1.69 KB | 0755 |
|
wpa_cli | File | 152.22 KB | 0755 |
|
wpa_supplicant | File | 2.77 MB | 0755 |
|
xtables-legacy-multi | File | 96.97 KB | 0755 |
|
xtables-monitor | File | 215.32 KB | 0755 |
|
xtables-nft-multi | File | 215.32 KB | 0755 |
|
zic | File | 62.29 KB | 0755 |
|
zramctl | File | 114.34 KB | 0755 |
|