etc/rc.d/init.d/firewall
etc/ssh/sshd_config
opt/pakfire/lib/functions.pl
+opt/pakfire/lib/functions.sh
opt/pakfire/pakfire
usr/lib/firewall/ipsec-policy
var/ipfire/backup/bin/backup.pl
# Filesytem cleanup
/usr/local/bin/filesystem-cleanup
+# Apply local configuration to sshd_config
+/usr/local/bin/sshctrl
+
# Start services
/etc/init.d/vnstat restart
/etc/init.d/rngd restart
$errormessage = $Lang::tr{'invalid domain name'};
}
- # Check if a username has been sent.
- if ($settings{'LOGIN'} eq '') {
- $errormessage = $Lang::tr{'username not set'};
- }
+ # Check if the choosen provider supports token based authentication.
+ if ($settings{'SERVICE'} ~~ @token_provider) {
+ # Check if a token has been given.
+ unless ($settings{'TOKEN'}) {
+ $errormessage = $Lang::tr{'token not set'};
+ }
- # Check if a password has been typed in.
- # freedns.afraid.org does not require this field.
- if (($settings{'PASSWORD'} eq '') && ($settings{'SERVICE'} ne 'freedns.afraid.org') && ($settings{'SERVICE'} ne 'regfish.com')) {
- $errormessage = $Lang::tr{'password not set'};
- }
+ # Automatically set the username to token.
+ $settings{'LOGIN'} = "token";
- # Check if a token has been given for provider which support tokens.
- if (($settings{'SERVICE'} ~~ @token_provider) && ($settings{'TOKEN'} eq '')) {
- $errormessage = $Lang::tr{'token not set'};
+ # A provider without token support has been choosen.
+ } else {
+ # Check if a username has been sent.
+ if ($settings{'LOGIN'} eq '') {
+ $errormessage = $Lang::tr{'username not set'};
+ }
+
+ # Check if a password has been typed in.
+ # freedns.afraid.org does not require this field.
+ if (($settings{'PASSWORD'} eq '') && ($settings{'SERVICE'} ne 'freedns.afraid.org') && ($settings{'SERVICE'} ne 'regfish.com')) {
+ $errormessage = $Lang::tr{'password not set'};
+ }
}
# Go furter if there was no error.
close(FILE);
my $pakfire_version = &Pakfire::make_version();
-my $kernel_version = &General::system_output("uname", "-a");
+my @kernel_version = &General::system_output("uname", "-a");
&Header::openbox('100%', 'left', $Lang::tr{'fireinfo system version'});
print <<END;
</tr>
<tr>
<td align='center' bgcolor='#F0F0F0' width='15%'>$Lang::tr{'fireinfo kernel version'}</td>
- <td bgcolor='#F0F0F0'><code>$kernel_version</code></td>
+ <td bgcolor='#F0F0F0'><code>@kernel_version</code></td>
</tr>
</table>
END
&Header::openbigbox('100%', 'left', '', $errormessage);
if (($cgiparams{'ACTION'} eq 'install') && (! -e $Pakfire::lockfile)) {
- $cgiparams{'INSPAKS'} =~ s/\|/\ /g;
+ my @pkgs = split(/\|/, $cgiparams{'INSPAKS'});
if ("$cgiparams{'FORCE'}" eq "on") {
- &General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", $cgiparams{'INSPAKS'});
+ &General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", @pkgs);
+ sleep(2);
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
- my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", $cgiparams{'INSPAKS'});
+ my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
print <<END;
- <table><tr><td colspan='2'>$Lang::tr{'pakfire install package'}.$cgiparams{'INSPAKS'}.$Lang::tr{'pakfire possible dependency'}
+ <table><tr><td colspan='2'>$Lang::tr{'pakfire install package'} @pkgs $Lang::tr{'pakfire possible dependency'}
<pre>
END
foreach (@output) {
exit;
}
} elsif (($cgiparams{'ACTION'} eq 'remove') && (! -e $Pakfire::lockfile)) {
-
- $cgiparams{'DELPAKS'} =~ s/\|/\ /g;
+ my @pkgs = split(/\|/, $cgiparams{'DELPAKS'});
if ("$cgiparams{'FORCE'}" eq "on") {
- &General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", $cgiparams{'DELPAKS'});
+ &General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", @pkgs);
+ sleep(2);
} else {
&Header::openbox("100%", "center", $Lang::tr{'request'});
- my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", $cgiparams{'DELPAKS'});
+ my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
print <<END;
- <table><tr><td colspan='2'>$Lang::tr{'pakfire uninstall package'}.$cgiparams{'DELPAKS'}.$Lang::tr{'pakfire possible dependency'}
+ <table><tr><td colspan='2'>$Lang::tr{'pakfire uninstall package'} @pkgs $Lang::tr{'pakfire possible dependency'}
<pre>
END
foreach (@output) {
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2012 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org> #
# #
# 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 #
. /etc/sysconfig/rc
. $rc_functions
+TAR_OPTIONS=(
+ --acls
+ --xattrs
+ --xattrs-include='*'
+ --no-overwrite-dir
+ --no-delay-directory-restore
+ --preserve-permissions
+ --numeric-owner
+)
+
extract_files() {
echo "Extracting files..."
- tar --acls --xattrs --xattrs-include='*' \
- -xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C /
+ tar -xavf /opt/pakfire/tmp/files* "${TAR_OPTIONS[@]}" -C /
+ sync
echo "...Finished."
}
extract_backup_includes() {
echo "Extracting backup includes..."
- tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / \
+ tar xavf /opt/pakfire/tmp/files* "${TAR_OPTIONS[@]}" -C / \
var/ipfire/backup/addons/includes
+ sync
echo "...Finished."
}
fi
done
+ # Fetch any capabilities
+ local capabilities="$(getfattr --no-dereference --name="security.capability" \
+ --absolute-names --dump "${file}")"
+
local cmd=( "${strip}" )
case "$(file -bi ${file})" in
echo "Stripping ${file}..."
${cmd[*]} ${file}
+
+ # Restore capabilities
+ if [ -n "${capabilities}" ]; then
+ setfattr --no-dereference --restore=<(echo "${capabilities}")
+ fi
}
for dir in ${dirs}; do