mirror of
https://github.com/webmin/webmin.git
synced 2026-02-05 07:02:14 +00:00
Compare commits
232 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6901947c2 | ||
|
|
8912154c0b | ||
|
|
6b34d179bb | ||
|
|
bb2f091a17 | ||
|
|
dfd337009f | ||
|
|
554cba6eba | ||
|
|
9d3e0e85ba | ||
|
|
7d670cc449 | ||
|
|
0cc0a893a2 | ||
|
|
b7190b1927 | ||
|
|
68890d8f2b | ||
|
|
03f4c9fd56 | ||
|
|
c813b1c068 | ||
|
|
aafb66e45c | ||
|
|
8f0d32b764 | ||
|
|
62bf3b6cd4 | ||
|
|
58a454dc23 | ||
|
|
5a74498b87 | ||
|
|
ac238e37d1 | ||
|
|
9e4269ebae | ||
|
|
dfb0db593d | ||
|
|
79e2bf69b4 | ||
|
|
c153fae3d8 | ||
|
|
c1105d0ac5 | ||
|
|
fdffa9ee42 | ||
|
|
cb008888bf | ||
|
|
86ce05ec3b | ||
|
|
a42fbc5bd0 | ||
|
|
441b9f1502 | ||
|
|
1e0100b424 | ||
|
|
288a377e71 | ||
|
|
12e2aecbda | ||
|
|
2d83ca6cdf | ||
|
|
f498f36bef | ||
|
|
2eb957fc04 | ||
|
|
9cff0de208 | ||
|
|
4b2ba48e58 | ||
|
|
d47ee41c32 | ||
|
|
22f3d49e5c | ||
|
|
a10dd02a49 | ||
|
|
52196635a3 | ||
|
|
59efd239ea | ||
|
|
1a1deef64a | ||
|
|
132ea695bc | ||
|
|
743d0d59ad | ||
|
|
7162dbaa8e | ||
|
|
c378e60ec7 | ||
|
|
9612e05536 | ||
|
|
f38442bbae | ||
|
|
cf0ddafbe0 | ||
|
|
1727c9917d | ||
|
|
18d16d7639 | ||
|
|
3d20f8c56e | ||
|
|
d4264be5fd | ||
|
|
6d553a10ad | ||
|
|
5f4180cf13 | ||
|
|
4aedfdb006 | ||
|
|
a3658ff653 | ||
|
|
d040242a7e | ||
|
|
019e5e15e6 | ||
|
|
2a8797c49c | ||
|
|
ab1095e529 | ||
|
|
30168f57bb | ||
|
|
0a2eb1d520 | ||
|
|
ec4f05ec5f | ||
|
|
7a9b4d0b2b | ||
|
|
b7b6624ee8 | ||
|
|
f455c24054 | ||
|
|
ee94c220da | ||
|
|
615f97f47e | ||
|
|
1ef26769b6 | ||
|
|
04ed6406e7 | ||
|
|
882dcb7384 | ||
|
|
f29f13f817 | ||
|
|
0a8abc529b | ||
|
|
72e2faa5b6 | ||
|
|
8291e1c98d | ||
|
|
df3fa20d6f | ||
|
|
4f532659b3 | ||
|
|
e1f086944d | ||
|
|
a13bce59e3 | ||
|
|
ad46361cb0 | ||
|
|
fd5f09a816 | ||
|
|
c38570cb9d | ||
|
|
324732d948 | ||
|
|
78c5892c6a | ||
|
|
a1e74e6659 | ||
|
|
4caa56aa80 | ||
|
|
95c494d9fc | ||
|
|
2dd92dc2b7 | ||
|
|
f5580c4046 | ||
|
|
cefecfb173 | ||
|
|
181d92ff48 | ||
|
|
d27a31e2d6 | ||
|
|
c07bd9ca04 | ||
|
|
ce5a1484fe | ||
|
|
22cb340cb3 | ||
|
|
f27cad3665 | ||
|
|
701795dc51 | ||
|
|
1cf1cf12f4 | ||
|
|
6790c03792 | ||
|
|
8f38cdac33 | ||
|
|
3a833870ff | ||
|
|
723e5fd0ad | ||
|
|
63132ded2a | ||
|
|
968456b408 | ||
|
|
3f53a503db | ||
|
|
31ad58fda8 | ||
|
|
005873dcd9 | ||
|
|
18fdc2a9ba | ||
|
|
e11ef0ed93 | ||
|
|
b33a605699 | ||
|
|
bab827542b | ||
|
|
ea838d0500 | ||
|
|
975e7ad13f | ||
|
|
34e9b20324 | ||
|
|
7d42268b80 | ||
|
|
64d1e8f4b4 | ||
|
|
d40b907ad2 | ||
|
|
e30670bb2e | ||
|
|
3115b17fa1 | ||
|
|
d3242017bc | ||
|
|
aeb98e9d77 | ||
|
|
118f705eb4 | ||
|
|
f302357943 | ||
|
|
a81c833462 | ||
|
|
d5f2981d02 | ||
|
|
8ed9a84180 | ||
|
|
14af860ed5 | ||
|
|
dbd29ec126 | ||
|
|
3fcb565086 | ||
|
|
c7789ce801 | ||
|
|
79d3d04fc3 | ||
|
|
ad5a6c9688 | ||
|
|
80a428e0e6 | ||
|
|
45cd9cf322 | ||
|
|
7fd6e5f0ef | ||
|
|
cf091c95e1 | ||
|
|
959b355848 | ||
|
|
baf5d23a6f | ||
|
|
ec1353a720 | ||
|
|
9938636224 | ||
|
|
ac8634bf75 | ||
|
|
5a8ae25d02 | ||
|
|
990e75724d | ||
|
|
8099d2b045 | ||
|
|
0ffdd6c842 | ||
|
|
61f55a1343 | ||
|
|
8297c3d42f | ||
|
|
c5c8f0d05f | ||
|
|
a71bf42232 | ||
|
|
6e873a172a | ||
|
|
e4766eb2ba | ||
|
|
1c2bdf0f0c | ||
|
|
aef1cbbeab | ||
|
|
dc9cb83946 | ||
|
|
288c05d8f1 | ||
|
|
2f34f1412d | ||
|
|
99e1eda954 | ||
|
|
bae3f5e77b | ||
|
|
ada457ed56 | ||
|
|
f9a2d37e08 | ||
|
|
c30ca90170 | ||
|
|
ceb1a57dd8 | ||
|
|
cbeaed860b | ||
|
|
9054e37d3a | ||
|
|
1925ba53c4 | ||
|
|
998407be9a | ||
|
|
416ae2b62f | ||
|
|
1c38031703 | ||
|
|
6d5f109068 | ||
|
|
d05c0c70f4 | ||
|
|
14d8e45d4f | ||
|
|
75518c5227 | ||
|
|
6b1a006ca1 | ||
|
|
5e68b937d7 | ||
|
|
d65ff9a623 | ||
|
|
a116a5e10f | ||
|
|
889d7d2ea0 | ||
|
|
754248f6af | ||
|
|
f3fba12703 | ||
|
|
a71f333ff0 | ||
|
|
8c80095878 | ||
|
|
dad6a7c3e9 | ||
|
|
50991313bf | ||
|
|
6b4ec5b3f0 | ||
|
|
88b73eaea4 | ||
|
|
e263e49912 | ||
|
|
f8dfa52d92 | ||
|
|
73cc25e127 | ||
|
|
07e9a01919 | ||
|
|
04cc026a61 | ||
|
|
17c63ef178 | ||
|
|
51ca560718 | ||
|
|
2c363c3238 | ||
|
|
12735f1c54 | ||
|
|
a87593651f | ||
|
|
5f54caa5a9 | ||
|
|
89897579f5 | ||
|
|
3d18a1b9fd | ||
|
|
b8073652fd | ||
|
|
6cf9f5243c | ||
|
|
5ea42f455e | ||
|
|
34d891545e | ||
|
|
0ef822606b | ||
|
|
69185c1df3 | ||
|
|
64468f1afa | ||
|
|
84bb9e4d22 | ||
|
|
3e1cf3c298 | ||
|
|
43039ddc43 | ||
|
|
5e2c23e0c2 | ||
|
|
fd6b3b3529 | ||
|
|
c8f8f55f1b | ||
|
|
39bf55a410 | ||
|
|
807de6e9ce | ||
|
|
6a30643822 | ||
|
|
9d84a6fdca | ||
|
|
c8b4672cc8 | ||
|
|
65ee16aad9 | ||
|
|
fe4758b8eb | ||
|
|
49e05cbdfe | ||
|
|
8d9a68461d | ||
|
|
3037f233ac | ||
|
|
852b8d7576 | ||
|
|
4d0befa26f | ||
|
|
d39b7875e9 | ||
|
|
5b8308c011 | ||
|
|
c48e9412e2 | ||
|
|
4f1226697e | ||
|
|
fb66b43c67 | ||
|
|
e3bbfdda7c | ||
|
|
b7eb16fe3a |
@@ -212,3 +212,12 @@ SSL v2 and v3 are now disabled by default at Webmin install time, to block the P
|
||||
Deprecated the old blue-theme in favor of the new gray-theme.
|
||||
Catalan translation updates from Jaume Badiella.
|
||||
More German translation updates, thanks to Raymond Vetter.
|
||||
---- Changes since 1.730 ----
|
||||
More German translation updates, thanks to Raymond Vetter.
|
||||
Norwegian updates, thanks to Stein-Aksel Basma.
|
||||
The awesome new Authentic Theme by Ilia Rostovtsev is now included in the Webmin package.
|
||||
Catalan translation updates from Jaume Badiella.
|
||||
---- Changes since 1.740 ----
|
||||
Norwegian updates, thanks to Stein-Aksel Basma.
|
||||
Catalan translation updates from Jaume Badiella.
|
||||
More German translation updates, thanks to Raymond Vetter.
|
||||
|
||||
2
README
2
README
@@ -1,4 +1,4 @@
|
||||
Webmin Version 1.730
|
||||
Webmin Version 1.750
|
||||
--------------------
|
||||
Webmin is a web-based interface for system administration for Unix.
|
||||
Using any browser that supports tables and forms, you can setup user
|
||||
|
||||
@@ -737,7 +737,7 @@ if ($username ne $user->{'name'} && !$user->{'proto'}) {
|
||||
|
||||
if ($miniserv{'session'} && $username ne $user->{'name'}) {
|
||||
# Modify all sessions for the renamed user
|
||||
&rename_session_user(\&miniserv, $username, $user->{'name'});
|
||||
&rename_session_user(\%miniserv, $username, $user->{'name'});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -214,15 +214,23 @@ push(@mems, @cmems);
|
||||
|
||||
if ($in{'adddir'} && $in{'root'}) {
|
||||
# Add a <Directory> section for the root
|
||||
push(@mems, { 'name' => 'Directory',
|
||||
'value' => "\"$in{'root'}\"",
|
||||
'type' => 1,
|
||||
'members' => [
|
||||
$dirsect = { 'name' => 'Directory',
|
||||
'value' => "\"$in{'root'}\"",
|
||||
'type' => 1,
|
||||
'members' => [
|
||||
{ 'name' => 'allow',
|
||||
'value' => 'from all' },
|
||||
{ 'name' => 'Options',
|
||||
'value' => 'None' },
|
||||
] });
|
||||
],
|
||||
};
|
||||
if ($httpd_modules{'core'} >= 2.4) {
|
||||
# Apache 2.4+ needs a 'Require all granted' line
|
||||
push(@{$dirsect->{'members'}},
|
||||
{ 'name' => 'Require',
|
||||
'value' => 'all granted' });
|
||||
}
|
||||
push(@mems, $dirsect);
|
||||
}
|
||||
|
||||
# Save to the file
|
||||
|
||||
@@ -67,6 +67,7 @@ cvirt_ename='$1' no
|
||||
cvirt_eroot1=Has d'introduir l'arrel dels documents
|
||||
cvirt_eroot2=No s'ha pogut crear el directori '$1': $2
|
||||
cvirt_eroot3=No tens permís per utilitzar el directori arrel '$1'
|
||||
cvirt_eroot4=No hi ha cap usuari definit a la configuracio d'Apache
|
||||
cvirt_etaken=Ja existeix un servidor virtual amb el mateix nom i el mateix port
|
||||
cvirt_efile=No s'ha pogut escriure a $1: $2
|
||||
cvirt_emissing=S'ha afegit el nou servidor virtual a $1, però Apache no està utilitzant aquest fitxer. Comprova la <a href='$2'>configuració del mòdul</a> i assegura't que el 'Fitxer o directori on s'afegeixen els servidors virtuals' és correcte.
|
||||
|
||||
@@ -302,10 +302,12 @@ core_outfilter=Bruk output filtere for alle filer
|
||||
core_overr=Innstillingsfiler kan overstyre..
|
||||
core_pid=Tjener PID fil
|
||||
core_port=Port
|
||||
core_portname=Protokoll
|
||||
core_proclimit=Prosess begrensing
|
||||
core_proclimit2=prosess begrensning
|
||||
core_product=Kun produkt
|
||||
core_proglog=Program
|
||||
core_protoany=<Enhver>
|
||||
core_realm=Navn for autentiseringsområde
|
||||
core_resp=Svar
|
||||
core_rtout=Tidsavbrudd for forespørsel
|
||||
@@ -341,6 +343,7 @@ cvirt_eport='$1' er ikke en gyldig port
|
||||
cvirt_eroot1=Du må oppgi dokumentrot
|
||||
cvirt_eroot2=Kunne ikke opprette katalog '$1' : $2
|
||||
cvirt_eroot3=Du har ikke tilgang til å bruke rot-katalogen '$1'
|
||||
cvirt_eroot4=Ingen bruker definert i Apache konfigurasjonen
|
||||
cvirt_err=Kunne ikke opprette virtuell tjener
|
||||
cvirt_etaken=En virtuell tjener med samme navn og port finnes allerede
|
||||
default_serv=standard tjener
|
||||
|
||||
@@ -453,7 +453,8 @@ elsif ($mode == 2) {
|
||||
return undef;
|
||||
}
|
||||
|
||||
=head2 execute_restore(&mods, source, &files, apply, [show-only])
|
||||
=head2 execute_restore(&mods, source, &files, apply, [show-only],
|
||||
[&other-files])
|
||||
|
||||
Restore configuration files from the specified source for the listed modules.
|
||||
Returns undef on success, or an error message.
|
||||
@@ -461,7 +462,7 @@ Returns undef on success, or an error message.
|
||||
=cut
|
||||
sub execute_restore
|
||||
{
|
||||
my ($mods, $src, $files, $apply, $show) = @_;
|
||||
my ($mods, $src, $files, $apply, $show, $others) = @_;
|
||||
|
||||
# Fetch file if needed
|
||||
my ($mode, $user, $pass, $host, $path, $port) = &parse_backup_url($src);
|
||||
@@ -518,7 +519,7 @@ my @tarfiles = map { "/$_" } split(/\r?\n/, $out);
|
||||
my %tarfiles = map { $_, 1 } @tarfiles;
|
||||
|
||||
# Extract manifests for each module
|
||||
my %hasmod = map { $_, 1 } @{$_[0]};
|
||||
my %hasmod = map { $_, 1 } @$mods;
|
||||
$hasmod{"_others"} = 1;
|
||||
&execute_command("rm -rf ".quotemeta($manifests_dir));
|
||||
my $rel_manifests_dir = $manifests_dir;
|
||||
@@ -548,6 +549,7 @@ while($m = readdir(DIR)) {
|
||||
push(@files, @mfiles);
|
||||
}
|
||||
closedir(DIR);
|
||||
push(@files, @$others) if ($others);
|
||||
if (!@files) {
|
||||
&unlink_file($file) if ($mode != 0);
|
||||
return $text{'backup_enone2'};
|
||||
@@ -555,15 +557,15 @@ if (!@files) {
|
||||
|
||||
# Get descriptions for each module
|
||||
my %desc;
|
||||
foreach my $m (@{$_[0]}) {
|
||||
foreach my $m (@$mods) {
|
||||
my %minfo = &get_module_info($m);
|
||||
$desc{$m} = $minfo{'desc'};
|
||||
}
|
||||
|
||||
# Call module pre functions
|
||||
foreach my $m (@{$_[0]}) {
|
||||
foreach my $m (@$mods) {
|
||||
my $mdir = &module_root_directory($m);
|
||||
if ($m && &foreign_check($m) && !$_[4] &&
|
||||
if ($m && &foreign_check($m) && !$show &&
|
||||
-r "$mdir/backup_config.pl") {
|
||||
&foreign_require($m, "backup_config.pl");
|
||||
if (&foreign_defined($m, "pre_restore")) {
|
||||
@@ -577,7 +579,7 @@ foreach my $m (@{$_[0]}) {
|
||||
}
|
||||
|
||||
# Lock all files being extracted
|
||||
if (!$_[4]) {
|
||||
if (!$show) {
|
||||
my $f;
|
||||
foreach $f (@files) {
|
||||
&lock_file($f);
|
||||
@@ -585,7 +587,7 @@ if (!$_[4]) {
|
||||
}
|
||||
|
||||
# Extract contents (only files specified by manifests)
|
||||
my $flag = $_[4] ? "t" : "x";
|
||||
my $flag = $show ? "t" : "x";
|
||||
my $qfiles = join(" ", map { s/^\///; quotemeta($_) } &unique(@files));
|
||||
if ($gzipped) {
|
||||
&execute_command("cd / ; gunzip -c $qfile | tar ${flag}f - $qfiles",
|
||||
@@ -598,7 +600,7 @@ else {
|
||||
my $ex = $?;
|
||||
|
||||
# Un-lock all files being extracted
|
||||
if (!$_[4]) {
|
||||
if (!$show) {
|
||||
my $f;
|
||||
foreach $f (@files) {
|
||||
&unlock_file($f);
|
||||
@@ -611,16 +613,16 @@ if ($ex) {
|
||||
return &text('backup_euntar', "<pre>$out</pre>");
|
||||
}
|
||||
|
||||
if ($_[3] && !$_[4]) {
|
||||
if ($apply && !$show) {
|
||||
# Call all module apply functions
|
||||
foreach $m (@{$_[0]}) {
|
||||
foreach $m (@$mods) {
|
||||
if (&foreign_defined($m, "post_restore")) {
|
||||
&foreign_call($m, "post_restore", \@files);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@{$_[2]} = @files;
|
||||
@$files = split(/\n/, $out);
|
||||
return undef;
|
||||
}
|
||||
|
||||
|
||||
@@ -89,6 +89,9 @@ print &ui_table_row($text{'edit_mods2'},
|
||||
[ map { [ $_->{'dir'}, $_->{'desc'} ] } @mods ],
|
||||
5, 1));
|
||||
|
||||
print &ui_table_row($text{'edit_other2'},
|
||||
&ui_textarea("others", undef, 3, 50));
|
||||
|
||||
print &ui_table_row($text{'edit_dest2'},
|
||||
&show_backup_destination("src", $config{'dest'}, 1));
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ edit_schedyes=S
|
||||
edit_mods=Mòduls a copiar
|
||||
edit_dest=Destinació de la còpia
|
||||
edit_mods2=Mòduls a restaurar
|
||||
edit_other2=Altres fitxers a restaurar
|
||||
edit_dest2=Restaura de
|
||||
edit_what=Inclou en la còpia
|
||||
edit_webmin=Fitxers de configuració dels mòduls Webmin
|
||||
@@ -83,6 +84,7 @@ backup_failed=... ha fallat! $1
|
||||
backup_done=... completa. La mida final de la còpia és de $1 i conté $2 fitxers.
|
||||
|
||||
restore_err=La restauració ha fallat
|
||||
restore_emods=No has seleccionat cap mòdul ni cap altre fitxer
|
||||
restore_title=Configuració de Restauració
|
||||
restore_doing=S'està començant la restauració dels fitxers de configuració de mòduls de $1...
|
||||
restore_testing=S'està extraient el contingut de la còpia de $1...
|
||||
|
||||
@@ -43,6 +43,7 @@ edit_mods=Module zum Sichern
|
||||
edit_mods2=Module zum Zurückschreiben
|
||||
edit_nofiles=Server-Konfigurationsdateien
|
||||
edit_other=Andere ausgewählte Dateien ..
|
||||
edit_other2=Andere Dateien zum Wiederherstellen
|
||||
edit_post=Befehle nach dem Backup
|
||||
edit_pre=Befehle vor dem Backup
|
||||
edit_return=Sicherungsformular
|
||||
@@ -99,6 +100,7 @@ nice_upload=Hochgeladene Datei
|
||||
restore_doing=Starte Wiederherstellung der Modulkonfigurationsdateien von $1 ..
|
||||
restore_done=.. fertig. $1 Dateien wurde wiederhergestellt.
|
||||
restore_done2=.. Dateien im Backup sind :
|
||||
restore_emods=Keine Module oder andere Dateien ausgewählt
|
||||
restore_err=Wiederherstellung gescheitert!
|
||||
restore_failed=.. gescheitert! $1
|
||||
restore_testing=Extrahiere Inhalt von Backup von $1 ..
|
||||
|
||||
@@ -35,6 +35,7 @@ edit_schedyes=Yes, at times selected below ..
|
||||
edit_mods=Modules to backup
|
||||
edit_dest=Backup destination
|
||||
edit_mods2=Modules to restore
|
||||
edit_other2=Other files to restore
|
||||
edit_dest2=Restore from
|
||||
edit_what=Include in backup
|
||||
edit_webmin=Webmin module configuration files
|
||||
@@ -83,6 +84,7 @@ backup_failed=.. failed! $1
|
||||
backup_done=.. complete. Final backup size was $1, containing $2 files.
|
||||
|
||||
restore_err=Restore failed
|
||||
restore_emods=No modules or other files selected
|
||||
restore_title=Restore Configuration
|
||||
restore_doing=Starting restore of module configuration files from $1 ..
|
||||
restore_testing=Extracting contents of backup from $1 ..
|
||||
|
||||
@@ -43,6 +43,7 @@ edit_mods=Moduler som skal sikkerhetskopieres
|
||||
edit_mods2=Moduler som skal gjenopprettes
|
||||
edit_nofiles=Tjener konfigurasjonsfiler
|
||||
edit_other=Andre listede filer ..
|
||||
edit_other2=Andre filer å gjenopprette
|
||||
edit_post=Post-sikkerhetskopi kommando
|
||||
edit_pre=Pre-sikkerhetskopi kommando
|
||||
edit_return=backup skjema
|
||||
@@ -99,6 +100,7 @@ nice_upload=lastet opp fil
|
||||
restore_doing=Starter gjenoppretting av modulkonfigurasjonsfiler fra $1 ..
|
||||
restore_done=.. fullført. $1 filer ble gjenopprettet.
|
||||
restore_done2=.. filer i sikkerhetskopien er :
|
||||
restore_emods=Ingen moduler eller andre filer valgt
|
||||
restore_err=Gjenoppretting feilet
|
||||
restore_failed=.. feilet! $1
|
||||
restore_testing=Pakker ut innhold av sikkerhetskopi fra $1 ..
|
||||
|
||||
@@ -11,7 +11,8 @@ our (%in, %text, %config, $module_config_file);
|
||||
&error_setup($text{'restore_err'});
|
||||
my $src = &parse_backup_destination("src", \%in);
|
||||
my @mods = split(/\0/, $in{'mods'});
|
||||
@mods || &error($text{'restore_emods'});
|
||||
my @others = split(/[\r\n]+/, $in{'others'});
|
||||
@mods || @others || &error($text{'restore_emods'});
|
||||
|
||||
# Do it ..
|
||||
my ($mode, $user, $pass, $server, $path, $port) = &parse_backup_url($src);
|
||||
@@ -27,7 +28,8 @@ if ($mode == 3) {
|
||||
print &text($in{'test'} ? 'restore_testing' : 'restore_doing',
|
||||
&nice_dest($src)),"<p>\n";
|
||||
my @files;
|
||||
my $err = &execute_restore(\@mods, $src, \@files, $in{'apply'}, $in{'test'});
|
||||
my $err = &execute_restore(\@mods, $src, \@files, $in{'apply'}, $in{'test'},
|
||||
\@others);
|
||||
&unlink_file($src) if ($mode == 3);
|
||||
if ($err) {
|
||||
print &text('restore_failed', $err),"<p>\n";
|
||||
|
||||
@@ -819,14 +819,17 @@ local $jobs = &console_cmd($h, "show jobs");
|
||||
local @rv;
|
||||
local $job;
|
||||
foreach my $l (split(/\r?\n/, $jobs)) {
|
||||
if ($l =~ /^Job:\s+name=([^=]*\S)\s/) {
|
||||
if ($l =~ /^Job:\s+name=([^=]*\S)\s/ ||
|
||||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
|
||||
$job = { 'name' => $1 };
|
||||
push(@rv, $job);
|
||||
}
|
||||
elsif ($l =~ /Client:\s+name=([^=]*\S)\s/ && $job) {
|
||||
elsif (($l =~ /Client:\s+name=([^=]*\S)\s/ ||
|
||||
$l =~ /^\s*Client\s*=\s*"(.*)"/) && $job) {
|
||||
$job->{'client'} = $1;
|
||||
}
|
||||
elsif ($l =~ /FileSet:\s+name=([^=]*\S)\s/ && $job) {
|
||||
elsif (($l =~ /FileSet:\s+name=([^=]*\S)\s/ ||
|
||||
$l =~ /^FileSet\s*=\s*"(.*)"/) && $job) {
|
||||
$job->{'fileset'} = $1;
|
||||
}
|
||||
}
|
||||
@@ -843,7 +846,8 @@ local $clients = &console_cmd($h, "show clients");
|
||||
local @rv;
|
||||
local $client;
|
||||
foreach my $l (split(/\r?\n/, $clients)) {
|
||||
if ($l =~ /^Client:\s+name=([^=]*\S)\s/) {
|
||||
if ($l =~ /^Client:\s+name=([^=]*\S)\s/ ||
|
||||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
|
||||
$client = { 'name' => $1 };
|
||||
if ($l =~ /address=(\S+)/ && $client) {
|
||||
$client->{'address'} = $1;
|
||||
@@ -853,6 +857,12 @@ foreach my $l (split(/\r?\n/, $clients)) {
|
||||
}
|
||||
push(@rv, $client);
|
||||
}
|
||||
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/ && $client) {
|
||||
$client->{'address'} = $1;
|
||||
}
|
||||
elsif ($l =~ /^\s*FDport\s*=\s*"(.*)"/ && $client) {
|
||||
$client->{'port'} = $1;
|
||||
}
|
||||
}
|
||||
return @rv;
|
||||
}
|
||||
@@ -867,7 +877,8 @@ local $storages = &console_cmd($h, "show storages");
|
||||
local @rv;
|
||||
local $storage;
|
||||
foreach my $l (split(/\r?\n/, $storages)) {
|
||||
if ($l =~ /^Storage:\s+name=([^=]*\S)\s/) {
|
||||
if ($l =~ /^Storage:\s+name=([^=]*\S)\s/ ||
|
||||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
|
||||
$storage = { 'name' => $1 };
|
||||
if ($l =~ /address=(\S+)/) {
|
||||
$storage->{'address'} = $1;
|
||||
@@ -877,6 +888,12 @@ foreach my $l (split(/\r?\n/, $storages)) {
|
||||
}
|
||||
push(@rv, $storage);
|
||||
}
|
||||
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/ && $storage) {
|
||||
$storage->{'address'} = $1;
|
||||
}
|
||||
elsif ($l =~ /^\s*SDport\s*=\s*"(.*)"/ && $storage) {
|
||||
$storage->{'port'} = $1;
|
||||
}
|
||||
}
|
||||
return @rv;
|
||||
}
|
||||
@@ -891,13 +908,17 @@ local $pools = &console_cmd($h, "show pools");
|
||||
local @rv;
|
||||
local $pool;
|
||||
foreach my $l (split(/\r?\n/, $pools)) {
|
||||
if ($l =~ /^Pool:\s+name=([^=]*\S)\s/) {
|
||||
if ($l =~ /^Pool:\s+name=([^=]*\S)\s/ ||
|
||||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
|
||||
$pool = { 'name' => $1 };
|
||||
if ($l =~ /PoolType=(\S+)/) {
|
||||
$pool->{'type'} = $1;
|
||||
}
|
||||
push(@rv, $pool);
|
||||
}
|
||||
elsif ($l =~ /^\s*PoolType\s*=\s*"(.*)"/ && $pool) {
|
||||
$pool->{'type'} = $1;
|
||||
}
|
||||
}
|
||||
return @rv;
|
||||
}
|
||||
|
||||
@@ -371,35 +371,57 @@ log_delete_pool=Volume-Pool $1 gelöscht
|
||||
log_delete_pools=$1 Volume-Pools gelöscht
|
||||
log_delete_schedule=Backup-Zeitplan $1 gelöscht
|
||||
log_delete_schedules=$1 Backup-Zeitplan gelöscht
|
||||
log_delete_sdirector=Speicher-Daemon-Direktor $1 gelöscht
|
||||
log_delete_sdirectors=$1 Speicher-Daemon-Direktoren gelöscht
|
||||
log_delete_storage=Storage Daemon $1 gelöscht
|
||||
log_delete_storages=$1 Storage Daemons gelöscht
|
||||
log_director=Globale Bacula-Director-Konfiguration gespeichert
|
||||
log_file=Bacula Datei Daemonkonfiguration gespeichert
|
||||
log_fixpass=Bacula Konsolenprogramm Passwort behoben
|
||||
log_gbackup=Bacula Gruppensicherungsjob $1 gestartet
|
||||
log_label=Speicher-Daemon $1 gelabelt
|
||||
log_modify_client=Backup Client $1 modifiziert
|
||||
log_modify_device=Speicher-Gerät $1 modifiziert
|
||||
log_modify_fdirector=Datei-Daemon-Direktor $1 modifiziert
|
||||
log_modify_fileset=Dateisatz $1 modifiziert
|
||||
log_modify_gjob=Bacula-Gruppe Sicherungsjob $1 modifiziert
|
||||
log_modify_group=Bakula Gruppe $1 editiert
|
||||
log_modify_job=Backup-Job $1 modifiziert
|
||||
log_modify_pool=Volume Pool $1 modifiziert
|
||||
log_modify_schedule=Backup-Zeitplan $1 geändert
|
||||
log_modify_sdirector=Speicher-Daemon-Direktor $1 modifiziert
|
||||
log_modify_storage=Speicher-Daemon $1 modifiziert
|
||||
log_mount=Speicher-Gerät $1 gemounted
|
||||
log_restart=Bacula Daemons wieder gestartet
|
||||
log_start=Bacula Daemons gestartet
|
||||
log_stop=Bacula Daemons gestoppt
|
||||
log_storagec=Bacula Speicher Daemon-Konfiguration gespeichert
|
||||
log_sync=Bacula-Gruppensynchronisierung gespeichert
|
||||
log_unmount=Speicher-Gerät $1 unmounted
|
||||
mount_done=.. erfolgreicht gemountet.
|
||||
mount_err=Fehlgeschlagen Speicher-Gerät zu mounten
|
||||
mount_eslot=Fehlende oder ungültige Slot Nummer
|
||||
mount_failed=.. mounten fehlgeschlagen! Siehe die Fehlermeldung für den Grund oben.
|
||||
mount_header=Speicher mount oder unmount Optionen
|
||||
mount_mount=Montierungsspeicher
|
||||
mount_noslot=Nichts
|
||||
mount_return=montiert von
|
||||
mount_run=Mounte Volume auf Speicher-Gerät $1 ..
|
||||
mount_slot=Auto-Lader-Slot
|
||||
mount_slotno=Slotnummer
|
||||
mount_storage=Speichergerät
|
||||
mount_title=Mount oder Unmount
|
||||
mount_unmount=Unmounte Speicher
|
||||
pool_any=Sichere an jedes Volume in Pool?
|
||||
pool_auto=Streiche abgelaufene Volumes?
|
||||
pool_autolabel=Automatisch Volumes Präfix beschriften
|
||||
pool_echild=Dieser Client kann nicht gelöscht werden, da dieser von $1 genutzt wird
|
||||
pool_eclash=Ein Speichergerät mit dem gleichen Namen ist bereits vorhanden
|
||||
pool_egone=Volume Pool existiert nicht länger!
|
||||
pool_emax=Fehlende oder ungültige maximale Anzahl an Jobs pro Volume
|
||||
pool_ename=Fehlender Speichergerät-Name
|
||||
pool_ereten=Fehlende oder ungültige Aufbewahrungsfrist
|
||||
pool_err=Fehlgeschlagen Speichergerät zu speichern
|
||||
pool_header=Details vom Backup Volume Pool
|
||||
pool_max=Maximale Jobs pro Volume
|
||||
pool_maxvolsize=Maximale Volume Größe (z.B. 5G für 5 Gigabyte)
|
||||
@@ -413,6 +435,7 @@ pool_type=Volume Pool Typ
|
||||
pool_unlimited=Unlimitiert
|
||||
pools_add=Füge einen neuen Volume Pool hinzu.
|
||||
pools_delete=Lösche ausgewählte Datenträger-Pools
|
||||
pools_derr=Fehlgeschlagen Volume-Pools zu löschen
|
||||
pools_name=Pool Name
|
||||
pools_none=Keine Volume Pools wurden bisher definiert.
|
||||
pools_reten=Aufbewahrungsfrist
|
||||
@@ -443,6 +466,8 @@ restore_all=--Alle Clients in Gruppe--
|
||||
restore_client=Wiederherstelle zu Client oder Gruppe
|
||||
restore_clist=--Clients--
|
||||
restore_done=...Wiederherstellung komplett.
|
||||
restore_eall1=Die <b>Alle Clients in Backup</b> Option muss für <b>Wiederherstellen zum Client oder Gruppen</b> ausgewählt werden, wenn eine Gruppe Bacula Job wiederhergestellt werden soll.
|
||||
restore_eall2=Die <b>Alle Clients in Backup</b> Option kann nur gewählt werden, für <b>Stelle Clients und Gruppen wieder her</b>, wenn dabei eine Gruppe Bacula Job wiederhergestellt wird
|
||||
restore_eclient=Kein Client oder Backup Gruppe ausgewählt
|
||||
restore_eclients=Keine Mitglieder der Bacula-Gruppe gefunden!
|
||||
restore_efiles=Keine Dateien eingegeben
|
||||
@@ -483,17 +508,24 @@ schedule_header=Sicherungszeitplan Details
|
||||
schedule_level=Backup Level
|
||||
schedule_name=Sicherungszeitplan Name
|
||||
schedule_pool=Volume
|
||||
schedule_runs=Level und Zeiten ausführen
|
||||
schedule_times=Läuft um
|
||||
schedule_title1=Erstelle Backup-Zeitplan
|
||||
schedule_title2=Editiere Backup-Zeitplan
|
||||
schedules_add=Füge einen neuen Backup-Zeitplan hinzu.
|
||||
schedules_delete=Lösche ausgewählte Zeitpläne
|
||||
schedules_derr=Fehlgeschlagen Zeitpläne zu löschen
|
||||
schedules_name=Zeitplan Name
|
||||
schedules_none=Keine Sicherungspläne wurden bisher festgelegt.
|
||||
schedules_return=Liste der Zeitpläne
|
||||
schedules_sched=Level und Zeiten ausführen
|
||||
schedules_title=Backup-Zeitpläne
|
||||
sdirector_eclash=Ein Direktor mit dem gleichen Namen ist bereits vorhanden
|
||||
sdirector_egone=Director existiert nicht länger!
|
||||
sdirector_ename=Fehlender Director Name
|
||||
sdirector_epass=Fehlendes Passwort
|
||||
sdirector_err=Fehlgeschlagen Speicherdaemon-Direktor zu speichern
|
||||
sdirector_header=Details des Steuerung Remote Director
|
||||
sdirector_monitor=Nur Überwachung der Verbindung erlauben?
|
||||
sdirector_name=Director Name
|
||||
sdirector_pass=Akzeptiertes Passwort
|
||||
|
||||
@@ -142,3 +142,5 @@ Added a warning if the chroot directory that Webmin thinks BIND is using looks w
|
||||
Slave zone files in raw format can now be displayed by Webmin.
|
||||
---- Changes since 1.720 ----
|
||||
Added support for NSEC3PARAM records.
|
||||
---- Changes since 1.730 ----
|
||||
Added support for editing DMARC records, which are specially encoded TXT records for defining the response to SPF and DKIM violations.
|
||||
|
||||
@@ -1124,6 +1124,39 @@ elsif ($type eq "SPF") {
|
||||
&ui_opt_textbox("spfexp", $spf->{'exp'}, 40,
|
||||
$text{'value_spfnoexp'}), 3);
|
||||
}
|
||||
elsif ($type eq "DMARC") {
|
||||
# Like SPF, DMARC records have several attributes encoded in the
|
||||
# TXT value
|
||||
local $dmarc = &parse_dmarc(@v);
|
||||
local @popts = ( [ "none", $text{'value_dmarcnone'} ],
|
||||
[ "quarantine", $text{'value_dmarcquar'} ],
|
||||
[ "reject", $text{'value_dmarcreject'} ] );
|
||||
print &ui_table_row($text{'value_dmarcp'},
|
||||
&ui_select("dmarcp", $dmarc->{'p'}, \@popts));
|
||||
|
||||
print &ui_table_row($text{'value_dmarcpct'},
|
||||
&ui_textbox("dmarcpct", $dmarc->{'pct'}, 5)."%");
|
||||
|
||||
print &ui_table_row($text{'value_dmarcsp'},
|
||||
&ui_select("dmarcsp", $dmarc->{'sp'},
|
||||
[ [ "", $text{'value_dmarcnop'} ], @popts ]));
|
||||
|
||||
print &ui_table_row($text{'value_dmarcaspf'},
|
||||
&ui_yesno_radio("dmarcaspf", $dmarc->{'aspf'} eq 's'));
|
||||
|
||||
print &ui_table_row($text{'value_dmarcadkim'},
|
||||
&ui_yesno_radio("dmarcadkim", $dmarc->{'adkim'} eq 's'));
|
||||
|
||||
local $rua = $dmarc->{'rua'};
|
||||
$rua =~ s/^mailto://;
|
||||
print &ui_table_row($text{'value_dmarcrua'},
|
||||
&ui_opt_textbox("dmarcrua", $rua, 50, $text{'value_dmarcnor'}), 3);
|
||||
|
||||
local $ruf = $dmarc->{'ruf'};
|
||||
$ruf =~ s/^mailto://;
|
||||
print &ui_table_row($text{'value_dmarcruf'},
|
||||
&ui_opt_textbox("dmarcruf", $ruf, 50, $text{'value_dmarcnor'}), 3);
|
||||
}
|
||||
elsif ($type eq "NSEC3PARAM") {
|
||||
# NSEC records have a hash type, flags, number of interations, salt
|
||||
# length and salt
|
||||
@@ -1957,6 +1990,7 @@ sub restart_bind
|
||||
if ($config{'restart_cmd'} eq 'restart') {
|
||||
# Stop and start again
|
||||
&stop_bind();
|
||||
sleep(1); # Systemd doesn't like rapid stops and starts
|
||||
return &start_bind();
|
||||
}
|
||||
elsif ($config{'restart_cmd'}) {
|
||||
@@ -2772,7 +2806,7 @@ $slave_error = $_[0];
|
||||
|
||||
sub get_forward_record_types
|
||||
{
|
||||
return ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "SPF", "WKS", "RP", "PTR", "LOC", "SRV", "KEY", "NSEC3PARAM", $config{'support_aaaa'} ? ( "AAAA" ) : ( ), @extra_forward);
|
||||
return ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "SPF", "DMARC", "WKS", "RP", "PTR", "LOC", "SRV", "KEY", "NSEC3PARAM", $config{'support_aaaa'} ? ( "AAAA" ) : ( ), @extra_forward);
|
||||
}
|
||||
|
||||
sub get_reverse_record_types
|
||||
|
||||
@@ -14,6 +14,10 @@ $file = &find("file", $zconf->{'members'});
|
||||
if (!$file) {
|
||||
&error($text{'convert_efile'});
|
||||
}
|
||||
$file = &make_chroot(&absolute_path($file));
|
||||
if (!-s $file) {
|
||||
&error(&text('convert_efilesize', $file));
|
||||
}
|
||||
&lock_file(&make_chroot($zconf->{'file'}));
|
||||
|
||||
# Change the type directive
|
||||
@@ -26,5 +30,19 @@ if (!$file) {
|
||||
|
||||
&flush_file_lines();
|
||||
&unlock_file(&make_chroot($zconf->{'file'}));
|
||||
|
||||
# Convert from binary slave format to text
|
||||
if (&is_raw_format_records($file)) {
|
||||
&has_command("named-compilezone") ||
|
||||
&error($text{'convert_ebinary'});
|
||||
$temp = &transname();
|
||||
©_source_dest($file, $temp);
|
||||
$out = &backquote_logged("named-compilezone -f raw -F text ".
|
||||
"-o $file $zone->{'name'} $temp 2>&1");
|
||||
&error(&text('convert_ecompile', "<tt>".&html_escape($out)."</tt>"))
|
||||
if ($?);
|
||||
&unlink_file($temp);
|
||||
}
|
||||
|
||||
&redirect("");
|
||||
|
||||
|
||||
@@ -19,28 +19,36 @@ $typedesc = $text{"recs_$in{'type'}"} || $in{'type'};
|
||||
$type = $zone->{'type'};
|
||||
$file = $zone->{'file'};
|
||||
$form = 0;
|
||||
$newname = $in{'newname'} || ($in{'type'} eq 'DMARC' ? '_dmarc' : undef);
|
||||
if (!$access{'ro'} && $type eq 'master' && $in{'type'} ne 'ALL') {
|
||||
&record_input($in{'zone'}, $in{'view'}, $in{'type'}, $file, $dom,
|
||||
undef, undef, $in{'newname'}, $in{'newvalue'});
|
||||
undef, undef, $newname, $in{'newvalue'});
|
||||
$form++;
|
||||
$shown_create_form = 1;
|
||||
}
|
||||
|
||||
# Show search form
|
||||
print &ui_form_start("edit_recs.cgi");
|
||||
print &ui_hidden("zone", $in{'zone'}),"\n";
|
||||
print &ui_hidden("view", $in{'view'}),"\n";
|
||||
print &ui_hidden("type", $in{'type'}),"\n";
|
||||
print "<b>$text{'recs_find'}</b>\n";
|
||||
print &ui_textbox("search", $in{'search'}, 20),"\n";
|
||||
print &ui_submit($text{'recs_search'}),"<p>\n";
|
||||
print &ui_form_end();
|
||||
$form++;
|
||||
|
||||
if (!$config{'largezones'} || $in{'search'}) {
|
||||
# Get all records
|
||||
@allrecs = grep { !$_->{'generate'} && !$_->{'defttl'} }
|
||||
&read_zone_file($file, $dom);
|
||||
$nosearch = 1 if (!@allrecs);
|
||||
}
|
||||
|
||||
if (!$nosearch) {
|
||||
# Show search form
|
||||
print &ui_form_start("edit_recs.cgi");
|
||||
print &ui_hidden("zone", $in{'zone'}),"\n";
|
||||
print &ui_hidden("view", $in{'view'}),"\n";
|
||||
print &ui_hidden("type", $in{'type'}),"\n";
|
||||
print "<b>$text{'recs_find'}</b>\n";
|
||||
print &ui_textbox("search", $in{'search'}, 20),"\n";
|
||||
print &ui_submit($text{'recs_search'}),"<p>\n";
|
||||
print &ui_form_end();
|
||||
$form++;
|
||||
}
|
||||
|
||||
if (!$config{'largezones'} || $in{'search'}) {
|
||||
# Get all records
|
||||
if ($in{'search'}) {
|
||||
# Limit to records matching some search
|
||||
foreach $r (@allrecs) {
|
||||
|
||||
@@ -44,6 +44,9 @@ print &address_input($text{'master_query'}, "allow-query", $vconf);
|
||||
print &address_input($text{'master_notify2'}, "also-notify", $vconf);
|
||||
print &address_input($text{'master_notify3'}, "allow-notify", $vconf);
|
||||
|
||||
$src = &find("transfer-source", $vconf);
|
||||
print &ui_table_row($text{'net_taddr'}, &ui_textbox("transfer-source", $src->{'values'}->[0], 15));
|
||||
|
||||
print &ui_table_end();
|
||||
|
||||
if ($access{'ro'}) {
|
||||
|
||||
BIN
bind8/images/DMARC.gif
Normal file
BIN
bind8/images/DMARC.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 314 B |
BIN
bind8/images/NSEC3PARAM.gif
Normal file
BIN
bind8/images/NSEC3PARAM.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 251 B |
@@ -293,6 +293,11 @@ edit_espfip6='$1' no
|
||||
edit_espfinclude='$1' no és un domini addicional remitent vàlid
|
||||
edit_espfredirect='$1' no és un nom de domini alternatiu vàlid
|
||||
edit_espfexp='$1' és un nom de registre vàlid per a un missatge de rebuig
|
||||
edit_ensec3value2=Hi falfa el nombre d'iteracions o bé no és numèric
|
||||
edit_ensec3value3=Hi falta la sal no base64 o bé és incorrecta
|
||||
edit_edmarcpct=El percentatge de missatges ha de ser un enter entre 0 i 100
|
||||
edit_edmarcrua=Hi falta l'adreça de la informació agregada
|
||||
edit_edmarcruf=Hi falta l'adreça de la informació forense
|
||||
|
||||
text_title=Edició del Fitxer de Registres
|
||||
text_title2=Visualització del Fitxer de Registres
|
||||
@@ -369,8 +374,10 @@ type_NS=Servidor de Noms
|
||||
type_CNAME=Àlies del Nom
|
||||
type_MX=Servidor de Correu
|
||||
type_HINFO=Informació del Host
|
||||
type_NSEC3PARAM=Paràmetres DNSSEC
|
||||
type_TXT=Text
|
||||
type_SPF=Remitent Permès des de
|
||||
type_DMARC=DMARC
|
||||
type_WKS=Servei Conegut (WKS)
|
||||
type_RP=Persona Responsable
|
||||
type_PTR=Adreça Inversa
|
||||
@@ -387,12 +394,14 @@ edit_MX=Servidor de Correu
|
||||
edit_HINFO=Informació del Host
|
||||
edit_TXT=Text
|
||||
edit_SPF=Remitent Permès des de
|
||||
edit_DMARC=DMARC
|
||||
edit_WKS=Servei Conegut (WKS)
|
||||
edit_RP=Persona Responsable
|
||||
edit_PTR=Adreça Inversa
|
||||
edit_LOC=Ubicació
|
||||
edit_SRV=Adreça del Servei
|
||||
edit_KEY=Clau Pública
|
||||
edit_NSEC3PARAM=Paràmetres DNSSEC
|
||||
|
||||
recs_defttl=TTL per defecte
|
||||
recs_A=Adreça
|
||||
@@ -403,6 +412,7 @@ recs_MX=Servidor de Correu
|
||||
recs_HINFO=Informació del Host
|
||||
recs_TXT=Text
|
||||
recs_SPF=Remitent Permès des de
|
||||
recs_DMARC=DMARC
|
||||
recs_WKS=Servei Conegut (WKS)
|
||||
recs_RP=Persona Responsable
|
||||
recs_PTR=Adreça Inversa
|
||||
@@ -410,6 +420,7 @@ recs_LOC=Ubicaci
|
||||
recs_SRV=Adreça de Servei
|
||||
recs_ALL=Tot
|
||||
recs_KEY=Clau Pública
|
||||
recs_NSEC3PARAM=Paràmetres DNSSEC
|
||||
recs_delete=Suprimeix els Seleccionats
|
||||
|
||||
value_A1=Adreça
|
||||
@@ -437,6 +448,14 @@ value_KEY2=Protocol
|
||||
value_KEY3=Algoritme
|
||||
value_KEY4=Dades de la clau
|
||||
value_SPF1=Especificació SPF
|
||||
value_DMARC1=Especificació DMARC
|
||||
value_NSEC3PARAM1=Algoritme de hash
|
||||
value_NSEC3PARAM2=Banderes NSEC3
|
||||
value_NSEC3PARAM3=Nombre d'iteracions del hash
|
||||
value_NSEC3PARAM4=Llargada de la sal
|
||||
value_NSEC3PARAM5=Cadena de sal
|
||||
value_delegated=Zona delegada
|
||||
value_notdelegated=Una altra zona
|
||||
value_other=Valors (un per línia)
|
||||
value_spfa=Permet l'enviament des de l'adreça IP del domini
|
||||
value_spfmx=Permet l'enviament des dels hosts MX del domini
|
||||
@@ -456,6 +475,18 @@ value_spfredirect=Utilitza un registre SPF d'un domini alternatiu
|
||||
value_spfnoredirect=Utilitza el registre d'aquest domini
|
||||
value_spfexp=Registre TXT pel al motiu del rebuig
|
||||
value_spfnoexp=Cap
|
||||
value_dmarcnone=No prenguis cap acció
|
||||
value_dmarcquar=Posa el coreu en quarantena
|
||||
value_dmarcreject=Rebutja el correu
|
||||
value_dmarcp=Política per als correus que no passen SPF o DKIM
|
||||
value_dmarcpct=Percentatge de missatges a aplicar-hi la política
|
||||
value_dmarcrua=Envia la informació agregada a
|
||||
value_dmarcruf=Envia la informació forense a
|
||||
value_dmarcsp=Política dels subdominis
|
||||
value_dmarcnop=Igual que aquest domini
|
||||
value_dmarcaspf=Requereix alineació SPF estricta
|
||||
value_dmarcadkim=Requereix alineació DKIM estricta
|
||||
value_dmarcnor=No ho enviïs
|
||||
|
||||
warn=Avisa
|
||||
fail=Falla
|
||||
@@ -793,6 +824,9 @@ log_dnssec=S'ha canviat la resignatura de la clau
|
||||
|
||||
convert_err=No s'ha pogut convertir la zona
|
||||
convert_efile=Cal especificar un fitxer de registres abans de poder convertir una zona esclava a una de mestra.
|
||||
convert_efilesize=El fitxer de resistres $1 no existeix o bé està buit
|
||||
convert_ebinary=L'ordre necessària per convertir una zona esclava binària a format text mestre no està instal·lada
|
||||
convert_ecompile=La conversió de format binari a text ha fallat: $1
|
||||
|
||||
whois_title=Informació WHOIS
|
||||
whois_header=Resultat de l'ordre $1...
|
||||
@@ -852,9 +886,9 @@ vdelete_move=Despla
|
||||
gen_title=Generadors de Registres
|
||||
gen_desc=Aquesta pàgina permet definir generadors, cadascun dels quals crearà múltiples registres en aquesta zona utilitzant un comptador incremental. Això pot ser útil per a delegar parts de la zona inversa a un altre servidor.
|
||||
gen_range=Abast
|
||||
gen_name=Patró d'adreça
|
||||
gen_name=Patró del nom de registre
|
||||
gen_type=Tipus
|
||||
gen_value=Patró de nom de host
|
||||
gen_value=Patró del valor de registre
|
||||
gen_cmt=Comentari
|
||||
gen_skip=cada
|
||||
gen_show=Mostra els registres generats
|
||||
|
||||
@@ -106,7 +106,10 @@ controls_unixopt=Erlaube Kontrolle über Unix-FIFO?
|
||||
controls_unixowner=FIFO ist in Besitz von Benutzer
|
||||
controls_unixperm=Berechtigungen auf FIFO
|
||||
controls_unixyes=Ja, benutze Datei $1
|
||||
convert_ebinary=Der Befehl, welcher benötigt wird, um von einem binären Slave-Zone in ein Textformat-Master zu konvertieren, ist nicht installiert
|
||||
convert_ecompile=Binär zu Text-Formatkonvertierung fehlgeschlagen : $1
|
||||
convert_efile=Bevor eine Slave-Zone in eine Master-Zone umgewandelt werden kann, muss eine Datensatzdatei angegeben werden.
|
||||
convert_efilesize=Einträge-Datei $1 existiert nicht oder ist leer
|
||||
convert_err=Zone konnte nicht umgewandelt werden
|
||||
create_edom='$1' ist kein gültiger Domainname
|
||||
create_edom2='$1' muss eine Domain und kein Netzwerk sein
|
||||
@@ -185,6 +188,7 @@ dt_zone_createkrf=Erstelle keyrec Datei für die Zone $1 und verschiebe Schl
|
||||
dt_zone_deleting_state=Lösche aller Zustände, die mit Zone $1 verbunden sind ...
|
||||
dt_zone_desc=Diese Zone hat noch nicht bisher DNSSEC aktiviert. Sie können dieses Formular nutzen, um Webmin mit DNSSEC-Tools automatisieren, so dass die Clients der Zone durch dieser Zone gegen DNS-Spoofing-Attacken geschützt sind.
|
||||
dt_zone_disable=Deaktiviere DNSSEC
|
||||
dt_zone_disabledesc=Entfernt diese Zone aus der Liste der Zonen, die durch DNSSEC-Tools für die Zone-Signierung und Schlüsselaustausch verwaltet werden.
|
||||
dt_zone_dne=Authentifizierter Denial of Existence
|
||||
dt_zone_done=... fertig
|
||||
dt_zone_dssep=DS Eintrag :
|
||||
@@ -213,6 +217,7 @@ dt_zone_zskroll=Roll ZSK
|
||||
edit_A=Adresse
|
||||
edit_AAAA=IPv6-Adresse
|
||||
edit_CNAME=Namens-Alias
|
||||
edit_DMARC=DMARC
|
||||
edit_HINFO=Host-Information
|
||||
edit_KEY=Öffentlicher Schlüssel
|
||||
edit_LOC=Ortsangabe
|
||||
@@ -238,6 +243,9 @@ edit_ecname='$1' ist kein gültiges Alias-Ziel
|
||||
edit_ecname1=Ein Aliaseintrag darf nicht den gleichen Namen haben wie ein schon existierender Eintrag.
|
||||
edit_ecname2=Es kann kein Eintrag erstellt werden, der den gleichen Namen hat wie ein bereits existierender Aliaseintrag.
|
||||
edit_edit=Bearbeite $1 Datensatz
|
||||
edit_edmarcpct=Prozentsatz der Nachrichten muss eine ganze Zahl zwischen 0 und 100 sein
|
||||
edit_edmarcrua=Fehlende aggregierte Feedback Adresse
|
||||
edit_edmarcruf=Fehlende forensische Informationsadresse
|
||||
edit_edupip=Es existiert bereits ein Adressdatensatz für $1
|
||||
edit_eemail='$1' ist keine gültige E-Mail-Adresse
|
||||
edit_eflags='$1' ist keine gültige dezimale oder hexadezimale Flagzahl
|
||||
@@ -269,6 +277,7 @@ edit_espfinclude='$1' ist keine gültige zusätzliche Domain von der E-M
|
||||
edit_espfip='$1' ist keine gültige IP-Adresse oder IP/Netzmaske um den Versand zu erlauben
|
||||
edit_espfip6='$1' ist keine gültige IPv6 Adresse oder IPv6/prefix von dem gesendet werden kann
|
||||
edit_espfmx='$1' ist kein gültiger Domainname um vom MX aus zu senden
|
||||
edit_espfmxmax=Sie dürfen nicht mehr als 10 Domains erlauben MX zu senden von
|
||||
edit_espfredirect='$1' ist kein alternativer Domainname
|
||||
edit_etarget='$1' ist kein gültiger Servername oder keine gültige IP-Adresse.
|
||||
edit_ettl='$1' ist keine gültige Time-To-Live
|
||||
@@ -362,7 +371,7 @@ gen_eskip=Fehlende oder ungültige Schrittweite für den Eintrag $1
|
||||
gen_estart=Fehlender oder ungültiger Startwert für Eintrag $1
|
||||
gen_estop=Fehlender oder ungültiger Eintrag für das Ende des Bereiches beim Eintrag $1
|
||||
gen_evalue=Fehlendes oder ungültiges Hostnamemuster beim Eintrag $1
|
||||
gen_name=Adressmuster
|
||||
gen_name=Eintrag-Namensmuster
|
||||
gen_range=Bereich
|
||||
gen_raw=Zeile der Konfigurationsdatei
|
||||
gen_show=Zeige generierte Einträge
|
||||
@@ -370,7 +379,7 @@ gen_skip=Schrittweite
|
||||
gen_title=Generierung von fortlaufenden Einträgen
|
||||
gen_title2=Erzeugte Einträge
|
||||
gen_type=Typ
|
||||
gen_value=Hostnamemuster
|
||||
gen_value=Eintrag-Wertmuster
|
||||
hcreate_desc=Die Root-Zone wird vom DNS-Server benutzt, um sich mit den Root-Servern im Internet zu verbinden, so dass er Namen in Domains auflösen kann, die diesem DNS-Server nicht bekannt sind, z.B. <tt>.com</tt> oder <tt>.net.au</tt>. Wenn Sie mit mehreren Ansichten arbeiten, benötigen Sie eventuell eine eigene Root-Zone in jeder Ansicht, so dass alle Clients die Internet Domains korrekt auflösen können.
|
||||
hcreate_down=Download von Root FTP-Server
|
||||
hcreate_ecannot=Sie haben keine Berechtigung, eine Root-Zone zu erstellen
|
||||
@@ -485,6 +494,7 @@ log_delete_view=Ansicht $1 gelöscht
|
||||
log_delete_zones=$1 Zonen gelöscht
|
||||
log_files=Dateien und Verzeichnisse geändert
|
||||
log_forwarding=Forwarding und Transfer geändert
|
||||
log_freeze=Zone $1 eingefroren
|
||||
log_hint=Root-Zone erstellt
|
||||
log_keys=DNS-Schlüssel geändert
|
||||
log_logging=Logging und Fehler geändert
|
||||
@@ -508,6 +518,7 @@ log_start=Gestarteter DNS-Server
|
||||
log_stop=Gestoppter DNS-Server
|
||||
log_stub=Stub Zone $1 erstellt
|
||||
log_text=Datensätze für $1 manuell bearbeitet
|
||||
log_thaw=Zone $1 aufgetaut
|
||||
log_trusted=DNSSEC Verifikation geändert
|
||||
log_update_zones=Einträge in $1 Zonen geändert
|
||||
log_view=Erstellte Ansicht $1
|
||||
@@ -763,6 +774,7 @@ recs_A=Adresse
|
||||
recs_AAAA=IPv6-Adresse
|
||||
recs_ALL=alle
|
||||
recs_CNAME=Namens-Alias
|
||||
recs_DMARC=DMARC
|
||||
recs_HINFO=Host-Information
|
||||
recs_KEY=Öffentlicher Schlüssel
|
||||
recs_LOC=Ortsangabe
|
||||
@@ -958,6 +970,7 @@ type_A=Adresse
|
||||
type_AAAA=IPv6-Adresse
|
||||
type_ALL=Alle Einträge
|
||||
type_CNAME=Namens-Alias
|
||||
type_DMARC=DMARC
|
||||
type_HINFO=Host-Information
|
||||
type_KEY=Öffentlicher Schlüssel
|
||||
type_LOC=Ortsangabe
|
||||
@@ -990,6 +1003,7 @@ umass_type=Eintragsarten für Aktualisierung
|
||||
value_A1=Adresse
|
||||
value_AAAA1=IPv6-Adresse
|
||||
value_CNAME1=Wirklicher Name
|
||||
value_DMARC1=DMARC Spezifikation
|
||||
value_HINFO1=Hardware
|
||||
value_HINFO2=Betriebssystem
|
||||
value_KEY1=Flags
|
||||
@@ -1018,6 +1032,17 @@ value_WKS1=Adresse
|
||||
value_WKS2=Protokoll
|
||||
value_WKS3=Dienste
|
||||
value_delegated=Delegierte Zone
|
||||
value_dmarcaspf=Erfordert strikt SPF alignment
|
||||
value_dmarcnone=Keine Aktion
|
||||
value_dmarcnop=Gleiche wie diese Domain
|
||||
value_dmarcnor=Sende nicht
|
||||
value_dmarcp=Regel für E-Mails, welche SPF oder DKIM fehlschlägt
|
||||
value_dmarcpct=Prozentsatz der Nachrichten, um Regel anzuwenden
|
||||
value_dmarcquar=Quarantäne-E-Mail
|
||||
value_dmarcreject=Weise E-Mail zurück
|
||||
value_dmarcrua=Sende aggregiertes Feedback an
|
||||
value_dmarcruf=Sende forensische Informationen an
|
||||
value_dmarcsp=Regeln für Subdomains
|
||||
value_notdelegated=Andere Zone
|
||||
value_other=Werte (eine pro Zeile)
|
||||
value_spfa=Erlaube Versand von der Domain-IP-Adresse?
|
||||
@@ -1068,6 +1093,7 @@ weeks=Wochen
|
||||
whois_ecannot=Sie haben nicht die Berechtigung WHOIS-Informationen abzurufen
|
||||
whois_header=Ausgabe des Befehls $1 ..
|
||||
whois_title=WHOIS-Informationen
|
||||
xfer_count=Testübertragung mit $1 Datensätze erfolgreich aus mindestens einem Nameserver empfangen. Die tatsächlichen Transfers von BIND sollten auch erfolgreich sein.
|
||||
xfer_doing=Teste Transfer von Slave Zone von $1 ..
|
||||
xfer_done=.. von $1 : Komplett OK
|
||||
xfer_failed=.. von $1 : Fehlgeschlagen : $2
|
||||
@@ -1099,7 +1125,9 @@ zonekey_alg=Schlüssel-Algorithmus
|
||||
zonekey_already=Die Zone hat bereits einen DNSSEC-Schlüssel, und so ist es bereits signiert.
|
||||
zonekey_ave=Durchschnittliche Größe
|
||||
zonekey_creating=Erstelle DNSSEC Schlüssel für $1 ..
|
||||
zonekey_desc=Diese Zone hat bisher keine DNSSEC-Signaturschlüssel. Sie können dieses Formular verwenden, um mit Webmin welche zu erstellen, so dass die Clients diese Zone auflösen können und gegen DNS-Spoofing-Attacken geschützt sind.
|
||||
zonekey_disable=Lösche Schlüssel
|
||||
zonekey_disabledesc=Entfernt die DNSSEC-Schlüssel aus dieser Zone und alle signierten Einträgen. Sobald dies erledigt ist, werden Sie in der Lage, einen neuen Schlüssel zu generieren.
|
||||
zonekey_done=.. fertig
|
||||
zonekey_ds=DS Eintrag für übergeordnete Zone :
|
||||
zonekey_ecreate=.. Erzeugung fehlgeschlagen : $1
|
||||
|
||||
@@ -294,7 +294,10 @@ edit_espfinclude='$1' is not a valid additional domain from which mail is sent
|
||||
edit_espfredirect='$1' is not a valid alternate domain name
|
||||
edit_espfexp='$1' is a valid record name for a rejection message
|
||||
edit_ensec3value2=Missing or non-numeric number of iterations
|
||||
edit_ensec3value2=Missing or non-base64 salt
|
||||
edit_ensec3value3=Missing or non-base64 salt
|
||||
edit_edmarcpct=Percentage of messages must be an integer between 0 and 100
|
||||
edit_edmarcrua=Missing aggregate feedback address
|
||||
edit_edmarcruf=Missing forensic information address
|
||||
|
||||
text_title=Edit Records File
|
||||
text_title2=View Records File
|
||||
@@ -374,6 +377,7 @@ type_HINFO=Host Information
|
||||
type_NSEC3PARAM=DNSSEC Parameters
|
||||
type_TXT=Text
|
||||
type_SPF=Sender Permitted From
|
||||
type_DMARC=DMARC
|
||||
type_WKS=Well Known Service
|
||||
type_RP=Responsible Person
|
||||
type_PTR=Reverse Address
|
||||
@@ -390,6 +394,7 @@ edit_MX=Mail Server
|
||||
edit_HINFO=Host Information
|
||||
edit_TXT=Text
|
||||
edit_SPF=Sender Permitted From
|
||||
edit_DMARC=DMARC
|
||||
edit_WKS=Well Known Service
|
||||
edit_RP=Responsible Person
|
||||
edit_PTR=Reverse Address
|
||||
@@ -407,6 +412,7 @@ recs_MX=Mail Server
|
||||
recs_HINFO=Host Information
|
||||
recs_TXT=Text
|
||||
recs_SPF=Sender Permitted From
|
||||
recs_DMARC=DMARC
|
||||
recs_WKS=Well Known Service
|
||||
recs_RP=Responsible Person
|
||||
recs_PTR=Reverse Address
|
||||
@@ -442,6 +448,7 @@ value_KEY2=Protocol
|
||||
value_KEY3=Algorithm
|
||||
value_KEY4=Key data
|
||||
value_SPF1=SPF specification
|
||||
value_DMARC1=DMARC specification
|
||||
value_NSEC3PARAM1=Hash algorithm
|
||||
value_NSEC3PARAM2=NSEC3 flags
|
||||
value_NSEC3PARAM3=Number of hash iterations
|
||||
@@ -468,6 +475,18 @@ value_spfredirect=Use SPF record from alternate domain
|
||||
value_spfnoredirect=Use this domain's record
|
||||
value_spfexp=TXT record for rejection reason
|
||||
value_spfnoexp=None
|
||||
value_dmarcnone=Take no action
|
||||
value_dmarcquar=Quarantine email
|
||||
value_dmarcreject=Reject email
|
||||
value_dmarcp=Policy for emails that fail SPF or DKIM
|
||||
value_dmarcpct=Percentage of messages to apply policy
|
||||
value_dmarcrua=Send aggregate feedback to
|
||||
value_dmarcruf=Send forensic information to
|
||||
value_dmarcsp=Policy for sub-domains
|
||||
value_dmarcnop=Same as this domain
|
||||
value_dmarcaspf=Require strict SPF alignment
|
||||
value_dmarcadkim=Require strict DKIM alignment
|
||||
value_dmarcnor=Don't send
|
||||
|
||||
warn=Warn
|
||||
fail=Fail
|
||||
@@ -805,6 +824,9 @@ log_dnssec=Change DNSSEC key re-signing
|
||||
|
||||
convert_err=Failed to convert zone
|
||||
convert_efile=A records file must be specified before a slave zone can be converted to a master.
|
||||
convert_efilesize=Records file $1 does not exist or is empty
|
||||
convert_ebinary=The command needed to convert from a binary slave zone to a text format master is not installed
|
||||
convert_ecompile=Binary to text format conversion failed : $1
|
||||
|
||||
whois_title=WHOIS Information
|
||||
whois_header=Output from command $1 ..
|
||||
@@ -864,9 +886,9 @@ vdelete_move=Move to view
|
||||
gen_title=Record Generators
|
||||
gen_desc=This page allows you to define generators, each of which will create multiple records in this zone using an incrementing counter. This can be useful for delegating parts of the reverse zone to another server.
|
||||
gen_range=Range
|
||||
gen_name=Address pattern
|
||||
gen_name=Record name pattern
|
||||
gen_type=Type
|
||||
gen_value=Hostname pattern
|
||||
gen_value=Record value pattern
|
||||
gen_cmt=Comment
|
||||
gen_skip=every
|
||||
gen_show=Show generated records
|
||||
|
||||
@@ -224,6 +224,7 @@ edit_KEY=Offentlig nøkkel
|
||||
edit_LOC=Plassering
|
||||
edit_MX=E-post tjener
|
||||
edit_NS=Navnetjener
|
||||
edit_NSEC3PARAM=DNSSEC Parametere
|
||||
edit_PTR=Revers adresse
|
||||
edit_RP=Ansvarlig person
|
||||
edit_SPF=Sender tillatt fra
|
||||
@@ -258,6 +259,7 @@ edit_eloc=Manglende bredde- og lengdegrad
|
||||
edit_emx='$1' er ikke en gyldig e-post tjener
|
||||
edit_ename='$1' er ikke et gyldig oppføringsnavn
|
||||
edit_ens='$1' er ikke en gyldig navnetjener
|
||||
edit_ensec3value2=Manglende eller ikke-base64 salt
|
||||
edit_eos=Manglende OS type
|
||||
edit_eport='$1' er ikke et gyldig portnummer
|
||||
edit_epri='$1' er ikke en gyldig prioritet
|
||||
@@ -780,6 +782,7 @@ recs_KEY=Offenlig nøkkel
|
||||
recs_LOC=Plassering
|
||||
recs_MX=E-post tjener
|
||||
recs_NS=Navnetjener
|
||||
recs_NSEC3PARAM=DNSSEC Parametere
|
||||
recs_PTR=Revers adresse
|
||||
recs_RP=Ansvarlig person
|
||||
recs_SPF=Sender tillatt fra
|
||||
@@ -979,6 +982,7 @@ type_KEY=Offentlig nøkkel
|
||||
type_LOC=Plassering
|
||||
type_MX=E-post tjener
|
||||
type_NS=Navnetjener
|
||||
type_NSEC3PARAM=DNSSEC Parametere
|
||||
type_PTR=Revers adresse
|
||||
type_RP=Ansvarlig person
|
||||
type_SPF=Avsender tillatt fra
|
||||
@@ -1015,6 +1019,11 @@ value_LOC1=Bredde- og lengdegrad
|
||||
value_MX1=Prioritet
|
||||
value_MX2=E-post tjener
|
||||
value_NS1=Navnetjener
|
||||
value_NSEC3PARAM1=Hash algoritme
|
||||
value_NSEC3PARAM2=NSEC3 flagg
|
||||
value_NSEC3PARAM3=Antall hash iterasjoner
|
||||
value_NSEC3PARAM4=Lengde på salt
|
||||
value_NSEC3PARAM5=Salt streng
|
||||
value_PTR1=Vertsnavn
|
||||
value_RP1=E-post adresse
|
||||
value_RP2=Tekst-oppføring navn
|
||||
@@ -1027,6 +1036,8 @@ value_TXT1=Melding
|
||||
value_WKS1=Adresse
|
||||
value_WKS2=Protokoll
|
||||
value_WKS3=Tjenester
|
||||
value_delegated=Delegert sone
|
||||
value_notdelegated=Annen sone
|
||||
value_other=Verdier (en per linje)
|
||||
value_spfa=Tillat sending fra domenets IP adresse?
|
||||
value_spfall=Handling for andre avsendere
|
||||
|
||||
@@ -282,6 +282,15 @@ while($i < @tok) {
|
||||
}
|
||||
}
|
||||
|
||||
# If this is a DMARC record .. adjust the class
|
||||
local $dmarc;
|
||||
if ($dir{'type'} eq 'TXT' &&
|
||||
($dmarc=&parse_dmarc(@{$dir{'values'}}))) {
|
||||
if (!@{$dmarc->{'other'}}) {
|
||||
$dir{'type'} = 'DMARC';
|
||||
}
|
||||
}
|
||||
|
||||
push(@rv, \%dir);
|
||||
|
||||
# Stop processing if this was an SOA record
|
||||
@@ -396,9 +405,11 @@ splice(@$lref, $_[1]->{'line'}, 1);
|
||||
# Returns a string for some zone record
|
||||
sub make_record
|
||||
{
|
||||
local $type = $_[3] eq "SPF" && !$config{'spf_record'} ? "TXT" : $_[3];
|
||||
return $_[0] . ($_[1] ? "\t$_[1]" : "") . "\t$_[2]\t$type\t$_[4]" .
|
||||
($_[5] ? "\t;$_[5]" : "");
|
||||
local ($name, $ttl, $cls, $type, $values, $cmt) = @_;
|
||||
local $type = $type eq "SPF" && !$config{'spf_record'} ? "TXT" :
|
||||
$type eq "DMARC" ? "TXT" : $type;
|
||||
return $name . ($ttl ? "\t".$ttl : "") . "\t" . $cls . "\t" . $type ."\t" .
|
||||
$values . ($cmt ? "\t;$cmt" : "");
|
||||
}
|
||||
|
||||
# bump_soa_record(file, &records)
|
||||
@@ -738,6 +749,7 @@ local $rvword;
|
||||
while(@rv) {
|
||||
my $w = shift(@rv);
|
||||
if (length($rvword)+length($w)+1 >= 255) {
|
||||
$rvword .= " ";
|
||||
push(@rvwords, $rvword);
|
||||
$rvword = "";
|
||||
}
|
||||
@@ -748,6 +760,57 @@ push(@rvwords, $rvword);
|
||||
return join("\" \"", @rvwords);
|
||||
}
|
||||
|
||||
# parse_dmarc(text, ...)
|
||||
# If some text looks like an DMARC TXT record, return a parsed hash ref
|
||||
sub parse_dmarc
|
||||
{
|
||||
my $txt = join(" ", @_);
|
||||
if ($txt =~ /^v=dmarc1/i) {
|
||||
local @w = split(/;\s*/, $txt);
|
||||
local $dmarc = { };
|
||||
foreach my $w (@w) {
|
||||
$w = lc($w);
|
||||
if ($w =~ /^(v|pct|ruf|rua|p|sp|adkim|aspf)=(\S+)$/i) {
|
||||
$dmarc->{$1} = $2;
|
||||
}
|
||||
else {
|
||||
push(@{$dmarc->{'other'}}, $w);
|
||||
}
|
||||
}
|
||||
return $dmarc;
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
# join_dmarc(&dmarc)
|
||||
# Converts a DMARC record structure to a string, designed to be inserted into
|
||||
# quotes in a TXT record. If it is longer than 255 bytes, it will be split
|
||||
# into multiple quoted strings.
|
||||
sub join_dmarc
|
||||
{
|
||||
local ($dmarc) = @_;
|
||||
local @rv = ( "v=DMARC1" );
|
||||
foreach my $s ("pct", "ruf", "rua", "p", "sp", "adkim", "aspf") {
|
||||
if ($dmarc->{$s} ne '') {
|
||||
push(@rv, $s."=".$dmarc->{$s});
|
||||
}
|
||||
}
|
||||
push(@rv, @{$dmarc->{'other'}});
|
||||
local @rvwords;
|
||||
local $rvword;
|
||||
while(@rv) {
|
||||
my $w = shift(@rv);
|
||||
if (length($rvword)+length($w)+1 >= 255) {
|
||||
push(@rvwords, $rvword);
|
||||
$rvword = "";
|
||||
}
|
||||
$rvword .= "; " if ($rvword);
|
||||
$rvword .= $w;
|
||||
}
|
||||
push(@rvwords, $rvword);
|
||||
return join("\" \"", @rvwords);
|
||||
}
|
||||
|
||||
# join_record_values(&record)
|
||||
# Given the values for a record, joins them into a space-separated string
|
||||
# with quoting if needed
|
||||
|
||||
@@ -42,7 +42,8 @@ if ($in{'show'}) {
|
||||
|
||||
$rhs = $gv[3];
|
||||
$rhs =~ s/\$\$/\0/g;
|
||||
$rhs =~ s/\$/$i/g;
|
||||
#$rhs =~ s/\$/$i/g;
|
||||
$rhs =~ s/(\$(\{[^\}]*\})?)/&expand_mods($i,$2)/ge;
|
||||
$rhs =~ s/\0/\$/g;
|
||||
$rhsfull = &check_ipaddress($rhs) ? $rhs :
|
||||
$rhs =~ /\.$/ ? $rhs :
|
||||
@@ -78,11 +79,11 @@ for($i=0; defined($in{"type_$i"}); $i++) {
|
||||
if ($in{"skip_$i"}) {
|
||||
$gv[$#gv] .= "/".$in{"skip_$i"};
|
||||
}
|
||||
$in{"name_$i"} =~ /^[A-Za-z0-9\.\-$uscore$star\$]+$/ ||
|
||||
$in{"name_$i"} =~ /^[A-Za-z0-9\.\-$uscore$star\$\{\},]+$/ ||
|
||||
&error(&text('gen_ename', $i+1));
|
||||
push(@gv, $in{"name_$i"});
|
||||
push(@gv, $in{"type_$i"});
|
||||
$in{"value_$i"} =~ /^[A-Za-z0-9\.\-$uscore$star\$]+$/ ||
|
||||
$in{"value_$i"} =~ /^[A-Za-z0-9\.\-$uscore$star\$\{\},]+$/ ||
|
||||
&error(&text('gen_evalue', $i+1));
|
||||
push(@gv, $in{"value_$i"});
|
||||
push(@gv, $in{"cmt_$i"}) if ($in{"cmt_$i"});
|
||||
@@ -108,3 +109,26 @@ for($i=0; defined($in{"type_$i"}); $i++) {
|
||||
&sign_dnssec_zone_if_key($zone, \@recs);
|
||||
&redirect("edit_master.cgi?zone=$in{'zone'}&view=$in{'view'}");
|
||||
|
||||
sub expand_mods
|
||||
{
|
||||
my ($i, $m) = @_;
|
||||
$m =~ s/^\{//;
|
||||
$m =~ s/\}$//;
|
||||
my ($o, $w, $b) = split(/,/, $m);
|
||||
if ($o !~ /^\-?\d+$/) {
|
||||
# Disallowed offset
|
||||
$o = 0;
|
||||
}
|
||||
if ($w !~ /^\d+$/) {
|
||||
# Disallowed width
|
||||
$w = 0;
|
||||
}
|
||||
if ($b !~ /^[doxXnN]$/) {
|
||||
# Disallowed modifier
|
||||
$b = undef;
|
||||
}
|
||||
$b ||= "d";
|
||||
$i += $o;
|
||||
$i = sprintf("%".($w ? "0".$w : "").$b, $i);
|
||||
return $i;
|
||||
}
|
||||
|
||||
@@ -339,6 +339,49 @@ else {
|
||||
}
|
||||
$vals = "\"".&join_spf($spf)."\"";
|
||||
}
|
||||
elsif ($in{'type'} eq 'DMARC') {
|
||||
# Build DMARC record from inputs
|
||||
$dmarc = $r ? &parse_dmarc(@{$r->{'values'}}) : { };
|
||||
$dmarc->{'p'} = $in{'dmarcp'};
|
||||
|
||||
$in{'dmarcpct'} =~ /^\d+$/ && $in{'dmarcpct'} >= 0 &&
|
||||
$in{'dmarcpct'} <= 100 || &error($text{'edit_edmarcpct'});
|
||||
$dmarc->{'pct'} = $in{'dmarcpct'};
|
||||
|
||||
if ($in{'dmarcsp'}) {
|
||||
$dmarc->{'sp'} = $in{'dmarcsp'};
|
||||
}
|
||||
else {
|
||||
delete($dmarc->{'sp'});
|
||||
}
|
||||
|
||||
$dmarc->{'aspf'} = $in{'dmarcaspf'} ? 's' : 'r';
|
||||
$dmarc->{'adkim'} = $in{'dmarcadkim'} ? 's' : 'r';
|
||||
|
||||
if ($in{'dmarcrua_def'}) {
|
||||
delete($dmarc->{'rua'});
|
||||
}
|
||||
else {
|
||||
$in{'dmarcrua'} =~ /^\S+$/ ||
|
||||
&error($text{'edit_edmarcrua'});
|
||||
$in{'dmarcrua'} = 'mailto:'.$in{'dmarcrua'}
|
||||
if ($in{'dmarcrua'} !~ /^[a-z]+:/i);
|
||||
$dmarc->{'rua'} = $in{'dmarcrua'};
|
||||
}
|
||||
|
||||
if ($in{'dmarcruf_def'}) {
|
||||
delete($dmarc->{'ruf'});
|
||||
}
|
||||
else {
|
||||
$in{'dmarcruf'} =~ /^\S+$/ ||
|
||||
&error($text{'edit_edmarcruf'});
|
||||
$in{'dmarcruf'} = 'mailto:'.$in{'dmarcruf'}
|
||||
if ($in{'dmarcruf'} !~ /^[a-z]+:/i);
|
||||
$dmarc->{'ruf'} = $in{'dmarcruf'};
|
||||
}
|
||||
|
||||
$vals = "\"".&join_dmarc($dmarc)."\"";
|
||||
}
|
||||
elsif ($in{'type'} eq 'NSEC3PARAM') {
|
||||
# Save DNSSEC parameters
|
||||
$in{'value2'} =~ /^\d+$/ ||
|
||||
|
||||
@@ -20,6 +20,23 @@ $access{'ro'} && &error($text{'view_ecannot'});
|
||||
&save_address("allow-query", $view, 1);
|
||||
&save_address("also-notify", $view, 1);
|
||||
&save_address("allow-notify", $view, 1);
|
||||
|
||||
if ($in{'transfer-source'})
|
||||
{
|
||||
&check_ipaddress($in{'transfer-source'}) || &error(&text('net_eaddr', $in{'transfer-source'}));
|
||||
push(@tvals, $in{'transfer-source'});
|
||||
if (@tvals)
|
||||
{
|
||||
&save_directive($view, 'transfer-source',
|
||||
[ { 'name' => 'transfer-source',
|
||||
'values' => \@tvals } ], 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
&save_directive($view, 'transfer-source', [], 1);
|
||||
}
|
||||
|
||||
&flush_file_lines();
|
||||
&unlock_file(&make_chroot($view->{'file'}));
|
||||
&webmin_log("view", undef, $view->{'value'}, \%in);
|
||||
|
||||
10
cfengine/config.info.no
Normal file
10
cfengine/config.info.no
Normal file
@@ -0,0 +1,10 @@
|
||||
line2=System konfigurasjon,11
|
||||
cfengine_dir=Sti til katalog med konfigurasjonsfiler,0
|
||||
cfengine=Sti ti lcfenging program,0
|
||||
cfengine_conf=Sti til cfengine.conf fil,3,Automatisk
|
||||
cfrun=Sti til cfrun program,0
|
||||
cfrun_hosts=Sti til fil med tjenerinnstillinger,3,Automatisk
|
||||
cfd=Sti til cdf program,0
|
||||
cfd_conf=Sti til cfd.conf fil,3,Automatisk
|
||||
start_cmd=Kommando for å starte cfd,3,Bare kjør programmet
|
||||
stop_cmd=Kommando for å stoppe cfd,3,Bare stopp prosessen
|
||||
387
cfengine/lang/no
Normal file
387
cfengine/lang/no
Normal file
@@ -0,0 +1,387 @@
|
||||
add_ecfengine=CFengine er ikke installert på tjener $1
|
||||
add_echeck=Tjener $1 har ikke konfigurasjonsmotor modulen
|
||||
add_err=Kunne ikke legge til tjener
|
||||
add_eversion=CFengine på tjener $1 er versjon $2, men denne Webmin modulen støtter bare versjonene $3 .
|
||||
add_gerr=Kunne ikke legge til grupppe
|
||||
add_gmsg=Legger til tjenere i gruppe $1 ..
|
||||
add_msg=Legger til $1 ..
|
||||
add_ok=Lagt til tjener $1 ($2 $3)
|
||||
add_title=Legg til tjenere
|
||||
cfd_ecmd=Daemonkommandoen $1 for Konfigurasjonsmotoren ble ikke funnet på systemet ditt. Kanskje den ikke er installert, eller så er <a href='$2'>modulkonfigurasjonen</a> feil.
|
||||
cfd_none=Det er ikke opprettet noen innstillinger for Konfigurasjonsmotoren enda.
|
||||
cfd_return=daemon innstillinger
|
||||
cfd_start=Start Konfigurasjonsmotor Daemonen
|
||||
cfd_startdesc=Klikk på denne knappen for å starte Configuration Engine daemonen med innstillingene ovenfor. Dette vil tillate andre verter å kjøre konfigurasjonen på denne tjeneren, og start tidsplanlagt kjøring av konfigurasjonen (hvis dette er aktivert).
|
||||
cfd_stop=Stop Konfigurasjonsmotor Daemon
|
||||
cfd_stopdesc=Klikk på denne knappen for å stoppe Konfigurasjonsmotor daemonen. Dette vil forhindre andre verter fra å kjøre konfigurasjonen på denne tjeneren, og stopp den planlagte kjøringen av konfigurasjonen.
|
||||
cfd_title=Konfigurasjonsmotor Daemon
|
||||
cluster_failed=Kunne ikke kjøre CFengine på $1 : $2
|
||||
cluster_header=Kjører konfigurasjonsmotor på alle verter i klyngen ..
|
||||
cluster_success=Output fra CFengine på $1 ..
|
||||
cluster_title=Kjør Konfigurasjonsmotor
|
||||
edit_actionadd=Legg til valgt handling
|
||||
edit_actionseq=Handlinger som skal kjøres i rekkefølge
|
||||
edit_admit=Gi tilgang til kataloger
|
||||
edit_all=Enhver klasse
|
||||
edit_class=Bruk på klasse
|
||||
edit_cmd=Skall-kommando som skal kjøres
|
||||
edit_cmdgroup=Kjør som gruppe
|
||||
edit_cmdowner=Kjør som bruker
|
||||
edit_cmdtimeout=Tidsavbrudd
|
||||
edit_controlall=Alle adresser
|
||||
edit_controlallow=Tillat tilkoblinger fra
|
||||
edit_controlauto=Kommando som skal kjøres i hht. tidsplan
|
||||
edit_controldef=Global definisjon
|
||||
edit_controldeny=Nekt tilkoblinger fra
|
||||
edit_controldom=Domenenavn
|
||||
edit_controlelapsed=Minimum minutter mellom kjøringer
|
||||
edit_controlinterval=Minutter mellom tidsplanlagte kjøringer
|
||||
edit_controllog=Loggfør alle tilkoblinger?
|
||||
edit_controlmax=Maksimum samtidige kjøringer
|
||||
edit_controlnone=Ingen adresser
|
||||
edit_controlrun=Kommando som skal kjøres på forespørsel
|
||||
edit_controlskip=Hopp over revers IP adresse oppslag for
|
||||
edit_controlvalue=Verdier
|
||||
edit_copy_fix=Kopier filer
|
||||
edit_copy_silent=Kopier stille
|
||||
edit_copy_warn=Vis advarsel
|
||||
edit_copyact=Kopier handlingsmodus
|
||||
edit_copybackup=Sikkerhetskopier overskrevne filer?
|
||||
edit_copydest=Kopier til mål
|
||||
edit_copydir=Kilde-fil eller -katalog
|
||||
edit_copyforce=Kopier selv hvis oppdatert?
|
||||
edit_copynew=Legg til valg for andre kopieringskilder
|
||||
edit_copypurge=Slett filer som ikke lenger finnes i kilden?
|
||||
edit_copyserver=Kopier fra tjener
|
||||
edit_copysize=Størrelses-begrensing
|
||||
edit_copysize1=Er lik
|
||||
edit_copysize2=Mindre enn
|
||||
edit_copysize3=Større enn
|
||||
edit_create1=Legg til handling og klasse
|
||||
edit_create2=Legg til innstillinger for klasse
|
||||
edit_deny=Nekt tilgang til kataloger
|
||||
edit_dir=Katalog som skal opprettes
|
||||
edit_dirgroup=Gruppe
|
||||
edit_dirmode=Tillatelser
|
||||
edit_dirowner=Eier
|
||||
edit_dis_all=Enhver type
|
||||
edit_dis_file=Ikke-spesial fil
|
||||
edit_dis_link=Symlink
|
||||
edit_dis_plain=Fil
|
||||
edit_disfile=Fil som skal deaktiveres
|
||||
edit_disnew=Legg til ny fil å deaktivere
|
||||
edit_disrot=Handling ved deaktivering
|
||||
edit_disrot0=Omdøp med <tt>.cfdisabled</tt> tilføyd
|
||||
edit_disrot1=Trunker fil
|
||||
edit_disrot2=Roter $1 ganger
|
||||
edit_dissize=Deaktiver bare dersom størrelsen er
|
||||
edit_distype=Deaktiver bare dersom filtypen er
|
||||
edit_editfile=Fil som skal redigeres
|
||||
edit_editnew=Legg til ny fil som skal redigeres
|
||||
edit_editscript=Redigerer script
|
||||
edit_files_alert=Vis filnavn
|
||||
edit_files_compress=Komprimer filer
|
||||
edit_files_create=Opprett fil
|
||||
edit_files_fixall=Fiks alle filer
|
||||
edit_files_fixdirs=Fiks kataloger
|
||||
edit_files_fixplain=Fiks normale filer
|
||||
edit_files_linkchildren=Lenk underordnede
|
||||
edit_files_touch=Rør filer
|
||||
edit_files_warnall=Advar om alle filer
|
||||
edit_files_warndirs=Advar om kataloger
|
||||
edit_files_warnplain=Advar om normale filer
|
||||
edit_filesacl=Sett ACL til
|
||||
edit_filesact=Handling som skal utføres
|
||||
edit_filesall=Alle filer
|
||||
edit_filesdir=Sjekk filer i katalog
|
||||
edit_filesexclude=Ikke sjekk filer som matcher
|
||||
edit_filesgroup=Set gruppe til
|
||||
edit_filesinclude=Bare sjekk filer som matcher
|
||||
edit_filesinf=Uendelig
|
||||
edit_filesmode=Sett tillatelser til
|
||||
edit_filesnew=Legg til innstillinger for en annen katalog.
|
||||
edit_filesnone=Ingen filer
|
||||
edit_filesowner=Sett eier til
|
||||
edit_filesrec=Rekursjons-nivå
|
||||
edit_grant=$edit_admit
|
||||
edit_grantdir=Katalog
|
||||
edit_granthosts=Verter og verts-mønstre
|
||||
edit_groupmems=Medlemmer
|
||||
edit_groupname=Gruppe navn
|
||||
edit_groups=Gruppe definisjoner
|
||||
edit_header=Klasse detaljer
|
||||
edit_ignore=Filnavn som skal ignoreres
|
||||
edit_linkfrom=Lenke fra
|
||||
edit_linkover=Overskriv?
|
||||
edit_links=Symbolske lenker som skal opprettes
|
||||
edit_linkto=Lenke til
|
||||
edit_linktype=Alle filer?
|
||||
edit_local=Denne verten
|
||||
edit_manual=Rediger manuelt
|
||||
edit_manualtext=Ny konfigurasjonsfil tekst
|
||||
edit_manualtext2=Konfigurasjonsfil linjer $1 til $2 av $3
|
||||
edit_miscdest=Monter katalog
|
||||
edit_miscmode=Innstillinger for montering
|
||||
edit_miscsrc=NFS tjener og sti
|
||||
edit_nochange=Ikke endre
|
||||
edit_none=Ingen
|
||||
edit_proc=Finn prosesser som matcher
|
||||
edit_proc_bymatch=Send signal til advarsel prosesser
|
||||
edit_proc_signal=Send signal til matchende prosesser
|
||||
edit_proc_warn=Bare vis matcher
|
||||
edit_procact=Signal handlingsmodus
|
||||
edit_procgroup=Kjør kommando som gruppe
|
||||
edit_procmat=Advar dersom antall prosesser ikke er
|
||||
edit_procmat0=Advar aldri
|
||||
edit_procmat1=Eksakt
|
||||
edit_procmat2=Mindre enn
|
||||
edit_procmat3=Mer enn
|
||||
edit_procnew=Legg til nytt prosess-mønster som skal matches
|
||||
edit_procowner=Kjør kommando som bruker
|
||||
edit_procrestart=Kommando som skal kjøres etter stopp
|
||||
edit_procsig=Send signal til prosesser
|
||||
edit_reqfree=Minimum ledig plass
|
||||
edit_reqfs=Filsystem som skal sjekkes
|
||||
edit_resns=DNS tjenere
|
||||
edit_resother=Andre <tt>resolv.conf</tt> linjer
|
||||
edit_route=Standard gateway
|
||||
edit_section=Handlingstype
|
||||
edit_tidyage=Aldersbegrensing
|
||||
edit_tidyage0=$1 er mer enn $2 dager
|
||||
edit_tidyage1=Enhver alder
|
||||
edit_tidyatime=Tilgangs tid
|
||||
edit_tidyctime=Innholds tid
|
||||
edit_tidydir=Katalog som skal ryddes
|
||||
edit_tidymtime=Endrings tid
|
||||
edit_tidynew=Legg til ny katalog som skal ryddes
|
||||
edit_tidypat=Slett filer som matcher
|
||||
edit_tidysize=Størrelsesbegrensing
|
||||
edit_tidysize0=Enhver filstørrelse
|
||||
edit_tidysize1=Tomme filer
|
||||
edit_tidysize2=Filer større enn
|
||||
edit_title=Rediger innstillinger for klasse
|
||||
host_cfg=Gjeldende CFengine konfigurasjon fra $1
|
||||
host_delete=Fjern fra administrert liste
|
||||
host_header=Detaljer for administrert CFengine tjener
|
||||
host_name=Vertsnavn
|
||||
host_os=OS fra Webmin
|
||||
host_title=Administrert tjener
|
||||
host_type=Tjener type
|
||||
host_ver=CFEngine versjon
|
||||
hosts_add=Legg til tjener
|
||||
hosts_copy=Kopier og kjør konfigurasjon
|
||||
hosts_copydesc=Klikk på denne knappen for å kopiere CFengine konfigurasjonen fra denne tjeneren til alle tjenere ovenfor, og umiddelbart ta denne i bruk,
|
||||
hosts_gadd=Legg til tjenere i gruppe
|
||||
hosts_hosts=Tjenere i klynge
|
||||
hosts_nohosts=Ingen Webmin tjenere som kjører CFengine er definert enda.
|
||||
hosts_opts=Innstillinger for kjørende konfigurasjoner
|
||||
hosts_return=tjener liste
|
||||
hosts_run=Kjør Configuration Engine
|
||||
hosts_rundesc=Klikk på denne knappen for å kjøre Konfigurasjonsmotor på alle tjenere angitt ovenfor, og bruke gjeldende konfigurasjoner.
|
||||
hosts_title=Webmin CFengine Klynge
|
||||
index_active=Aktiv?
|
||||
index_add=Legg til handling av type:
|
||||
index_admit=Tillat katalog $1
|
||||
index_admit2=Tillat $1 kataloger
|
||||
index_cadd=Legg til klasse..
|
||||
index_cfrun=Kjør kommando $1
|
||||
index_classes=Bruk på klasser
|
||||
index_control=Kjør handling $1
|
||||
index_control2=Kjør $1 handlinger
|
||||
index_copy=Kopier $1 til $2
|
||||
index_copy2=Kopier $1 kataloger
|
||||
index_deny=Nekt katalog $1
|
||||
index_deny2=Nekt $1 kataloger
|
||||
index_details=Handlingsoversikt for klassene
|
||||
index_directories=Opprett katalog $1
|
||||
index_directories2=Opprett $1 kataloger
|
||||
index_disable=Deaktiver fil $1
|
||||
index_disable2=Deaktiver $1 filer
|
||||
index_disks=$index_required
|
||||
index_disks2=$index_required2
|
||||
index_ecommand=Konfigurasjonsmotor kommandoen $1 ble ikke funnet på systemet ditt. Kanskje den ikke er installert, eller så er <a href='$2'>modulkonfigurasjonen</a> feil.
|
||||
index_econfig=Konfigurasjonsmotor konfig.filen $1 ble ikke funnet på systemet ditt. Kanskje den ikke er installert, eller så er <a href='$2'>modulkonfigurasjonen</a> feil.
|
||||
index_editfiles=Rediger fil $1
|
||||
index_editfiles2=Rediger $1 filer
|
||||
index_eversion=Kunne ikke hente versjon fra Konfigurasjonsmotor kommandoen $1. Faktisk output fra kommandoen var : $2
|
||||
index_eversion2=Konfigurasjonsmotor kommandoen $1 på systemet ditt er versjon $2, men denne Webmin modulen støtter bare versjonene $3.
|
||||
index_files=Sett tillatelser på $1
|
||||
index_files2=Sett tillatelser på $1 kataloger
|
||||
index_grant=$index_admit
|
||||
index_grant2=$index_admit2
|
||||
index_groups=Definer grupper $1
|
||||
index_ignore=Ignorer $1 stier
|
||||
index_links=Lenk $1 til $2
|
||||
index_links2=Opprett $1 lenker
|
||||
index_maybe=Kanskje
|
||||
index_misc=Monter $1
|
||||
index_misc2=Monter $1 NFS filsystemer
|
||||
index_none=Ingen konfigurasjonshandlinger er for øyeblikket definert.
|
||||
index_procs=Finn prosesser som matcher $1
|
||||
index_procs2=Finn $1 prosess matcher
|
||||
index_required=Sjekk filsystem $1
|
||||
index_required2=Sjekk $1 filsystemer
|
||||
index_return=liste med handlinger
|
||||
index_route=Sett gateway til $1
|
||||
index_run=Kjør Konfigurasjonsmotor
|
||||
index_rundesc=Klikk på denne knappen for å kjøre kommandoen $1 på denne verten. Alle handlinger listet ovenfor vil bli utført umiddelbart, der det er nødvendig.
|
||||
index_section=Handlingstype
|
||||
index_shellcommands=Kjør kommando $1
|
||||
index_shellcommands2=Kjør $1 kommandoer
|
||||
index_tidy=Slett filer i $1
|
||||
index_tidy2=Slett filer i $1 kataloger
|
||||
index_title=Konfigurasjonsmotor
|
||||
index_version=CFengine versjon $1
|
||||
log_create_class=La til klasse til handling $1
|
||||
log_create_section=Opprettet handling $1 og klasse
|
||||
log_delete_class=Fjernet klasse fra handling $1
|
||||
log_delete_section=Slettet seksjon $1
|
||||
log_modify_class=Endret klasse i handling $1
|
||||
log_prun=Kjørte vertskonfigurasjoner
|
||||
log_push=Endret eksterne konfigurasjonsverter
|
||||
log_run=Kjørte konfigurasjonsmotor
|
||||
log_start=Startet daemon
|
||||
log_stop=Stoppet daemon
|
||||
push_domain=Domenenavn
|
||||
push_ecmd=Konfigurasjonsmotor kommandoen $1 for ekstern eksekvering ble ikke funnet på systemet ditt. Kanskje den ikke er installert, eller så er <a href='$2'>modulkonfigurasjonen</a> feil.
|
||||
push_edomain=Manglende eller ugyldig domenenavn
|
||||
push_ehost='$' er ikke et gyldig vertsnavn
|
||||
push_err=Kunne ikke lagre tjenerinnstillinger
|
||||
push_ethis='$1' er denne verten!
|
||||
push_exec=Kjører vertskonfigurasjoner med kommandoen $1 ..
|
||||
push_header=Konfigurasjonstjener distribusjonsinnstillinger
|
||||
push_host=Klient vertsnavn
|
||||
push_opts=CFengine innstillinger for klient
|
||||
push_push=Kjør vertskonfigurasjoner
|
||||
push_pushdesc=Klikk på denne knappen for å kjøre Konfigurasjonsmotor på hver av vertene angitt ovenfor, ved hjelp av kommandoen $1. Den lokale konfigurasjonen fra hver vert vil bli brukt for behandlingen, med mindre du har satt opp at master konfigurasjonen skal distribueres til hver vert.
|
||||
push_return=eksterne konfigurasjonsverter
|
||||
push_title=Eksterne konfigurasjonsverter
|
||||
push_title2=Kjør vertskonfigurasjoner
|
||||
push_users=Brukere som kan kjøre <tt>cfrun</tt>
|
||||
run_desc=Denne siden kan brukes til å kjøre Konfigurasjonsmotor på denne verten. Når den kjøres vil handlingene du har konfigurert bli utført der det er nødvendig.
|
||||
run_dry=Vis bare det som ville blitt gjort?
|
||||
run_exec=Kjører kommando $1 ..
|
||||
run_header=Innstillinger for å kjøre CFengine på denne verten
|
||||
run_nocmd=Kan utføre skall kommandoer?
|
||||
run_noifc=Kan endre nettverksgrensesnitt?
|
||||
run_nolinks=Kan opprette symbolske lenker?
|
||||
run_nomnt=Kan montere filsystemer?
|
||||
run_notidy=Kan rydde opp kataloger?
|
||||
run_ok=Kjør nå
|
||||
run_title=Kjør Konfigurasjonsmotor
|
||||
run_verbose=Vis detaljert output?
|
||||
save_eclass=Manglende eller ugyldig klassenavn
|
||||
save_ecmd=Mangler skall-kommando $1
|
||||
save_ecmdgroup=Ugyldig gruppe for skall-kommando $1
|
||||
save_ecmdowner=Ugyldig eier for skall-kommando $1
|
||||
save_ecmdtimeout=Ugyldig tidsavbrudd for skall kommando $1
|
||||
save_econtrolallow=Ingen adresser å tillate angitt
|
||||
save_econtrolauto=Kommando som skal kjøres automatisk '$1' finnes ikke
|
||||
save_econtroldef=Ugyldig navn for global definisjon $1
|
||||
save_econtroldeny=Ingen adresser å nekte angitt
|
||||
save_econtroldomain=Ugyldig domenenavn
|
||||
save_econtrolelapsed=Ugyldig minimum minutter mellom kjøringer
|
||||
save_econtrolinterval=Ugyldig antall minutter mellom tidsplanlagte kjøringer
|
||||
save_econtrolrun=Kommando å kjøre '$1' finnes ikke
|
||||
save_econtrolskip=Ingen adresser å hoppe over omvendt oppslag for angitt
|
||||
save_ecopydest=Mangler mål for kopiering av $1
|
||||
save_ecopydir=Manglende kildefil eller -katalog $1
|
||||
save_ecopygroup=Manglende eller ugyldig gruppe for kopi av $1
|
||||
save_ecopymode=Manglende eller ugyldige tillatelser for kopi av $1
|
||||
save_ecopyowner=Manglende eller ugyldig eier for kopiering av $1
|
||||
save_ecopyrec=Manglende eller ugyldig heltalls rekursjonsnivå for kopi av $1
|
||||
save_ecopyserver=Manglende eller ugyldig tjener for kopi av $1
|
||||
save_ecopysize=Manglende eller ugyldig størrelse for kopi av $1
|
||||
save_edir=Ugyldig katalog $1
|
||||
save_edirgroup=Ugyldig gruppe for katalog $1
|
||||
save_edirmode=Ugyldig oktal modus for katalog $1
|
||||
save_edirowner=Ugyldig eier for katalog $1
|
||||
save_edisfile=Manglende deaktivert filnavn $1
|
||||
save_edisrot=Manglende eller ugyldig antall rotasjoner for fil $1
|
||||
save_edissize=Manglende eller ugyldig størrelse for fil $1
|
||||
save_eeditfile=Manglende fil å redigere $1
|
||||
save_eeditscript=Manglende editor script for fil $1
|
||||
save_efilesacl=Manglende eller ugyldig ACL navn for filer i katalogen $1
|
||||
save_efilesdir=Manglende katalog $1
|
||||
save_efilesexclude=Manglende eller ugyldig mønster for filer som ikke skal sjekkes i katalogen $1
|
||||
save_efilesgroup=Manglende eller ugyldig gruppe for filer i katalogen $1
|
||||
save_efilesinclude=Manglende eller ugyldig mønster for filer som skal sjekkes i katalogen $1
|
||||
save_efilesmode=Manglende eller ugyldige tillatelser for kopi av $1
|
||||
save_efilesowner=Manglende eller ugyldig eier for kopi av $1
|
||||
save_efilesrec=Manglende eller ugyldig heltalls rekursjonsnivå for filer i katalogen $1
|
||||
save_egrantdir=Ugyldig sti for katalog $1
|
||||
save_egranthost='$1' er ikke gyldig vert eller vertsmønster
|
||||
save_egranthosts=Ingen verter angitt for katalog $1
|
||||
save_egroupname=Ugyldig navn for gruppen $1
|
||||
save_elinkfrom=Manglende eller ugyldig fra for symlink $1
|
||||
save_elinkto=Manglende eller ugyldig til for symlink $1
|
||||
save_emiscdest=Manglende eller ugyldig monteringskatalog for $1
|
||||
save_emiscmode=Ugyldige monteringsinnstillinger for $1
|
||||
save_emiscsrc=Manglende eller ugyldig NFS tjener og sti $1
|
||||
save_eproc=Manglende mønster for prosess match $1
|
||||
save_eprocgroup=Manglende eller ugyldig gruppe for prosesser som matcher $1
|
||||
save_eprocmat=Manglende eller ugyldig antall prosesser som matcher $1
|
||||
save_eprocowner=Manglende eller ugyldig bruker for prosesser som matcher $1
|
||||
save_eprocrestart=Manglende omstart kommando for prosesser som matcher $1
|
||||
save_ereq=Ugyldig filsystem å sjekke $1
|
||||
save_ereqfree=Manglende eller ugyldig minimum ledig plass for $1
|
||||
save_eroute=Manglende eller ugyldig standard gateway
|
||||
save_err=Kunne ikke lagre klasse
|
||||
save_etidy=Manglende eller ugyldig katalog å rydde $1
|
||||
save_etidyage=Manglende eller ugyldig antall dager for katalog $1
|
||||
save_etidypat=Manglende eller ugyldig filmønster for katalog $1
|
||||
save_etidyrec=Manglende elelr ugyldig heltalls rekursjonsnivå for katalog $1
|
||||
save_etidysize=Manglende eller ugyldig filstørrelse for katalog $1
|
||||
section_admit=Tillatte kataloger
|
||||
section_binservers=Tjenere for binære filer
|
||||
section_broadcast=Sett broadcast adresse
|
||||
section_classes=$section_groups
|
||||
section_control_0=Master kontroll
|
||||
section_control_1=Innstillinger for konfigurasjons daemon
|
||||
section_copy=Kopier filer
|
||||
section_defaultroute=Sett standard rute
|
||||
section_deny=Nektede kataloger
|
||||
section_directories=Opprett kataloger
|
||||
section_disable=Deaktiver filer
|
||||
section_disks=$section_required
|
||||
section_editfiles=Rediger filer
|
||||
section_files=Sett fil-tillatelser
|
||||
section_grant=$section_admit
|
||||
section_groups=Definer grupper
|
||||
section_homeservers=Tjenere for hjemmekataloger
|
||||
section_ignore=Filer som skal ignoreres
|
||||
section_links=Opprett symbolske lenker
|
||||
section_mailserver=E-post tjenere
|
||||
section_miscmounts=Monter andre NFS filsystemer
|
||||
section_mountables=Monterbare filsystemer
|
||||
section_processes=Administrer prosesser
|
||||
section_required=Sjekk filsystemer
|
||||
section_resolve=Sett opp DNS oppslag
|
||||
section_shellcommands=Kjør skall kommandoer
|
||||
section_tidy=Rydd opp i kataloger
|
||||
start_err=Kunne ikke starte Konfigurasjonsmotor daemon
|
||||
stop_ekill=Kunne ikke stoppe prosessen : $1
|
||||
stop_epids=Kjører ikke lenger
|
||||
stop_err=Kunne ikke stoppe Konfigurasjonsmotor daemon
|
||||
this_server=denne tjeneren
|
||||
type_admit=Konfigurasjonsmotor daemonen vil bare gi tilgang til katalogene angitt nedenfor til vertene som er angitt ved siden av hver katalog. Verter kan angis som IP adresser eller vertsmønstre (som <tt>*.domene.no</tt>).
|
||||
type_classes=$type_group
|
||||
type_control_0=Feltet nedenfor angir handlinger som utføres når konfigurasjonsmotoren kjører, i den rekkefølgen de utføres. Handlinger som ikke vises her vil ikke bli kjørt, selv om de er angitt på hovedsiden.
|
||||
type_control_1=Innstillingene nedenfor kontrollerer den globale oppførselsen til bakgrunnsprosessen som mottar forespørsler om å utføre konfigurasjonen på denne verten, når dette forespørres av en ekstern vert, eller i henhold til en fast tidsplan.
|
||||
type_copy=Hver av filene eller katalogene (og deres innhold) angitt nedenfor vil bli kopiert til den valgt målkatalogen/-disken, når nødvendig. Du kan også velge å kopiere fra en ekstern vert, så lenge den verten kjører konfigurasjonsmotor daemonen og tillater denne verten å kopiere filer.
|
||||
type_defaultroute=Når denne handlingen kjøres vil konfigurasjonsmotoren sjekk gjeldende standard rute mot gateway angitt nedenfor.
|
||||
type_deny=Vertene som er angitt ved siden av katalogene nedenfor vil bli nektet tilgang til de korresponderende katalogene, selv om de er angitt i en 'Tillatte kataloger' handling. Verter kan angis med IP adresse, vertsnavn eller vertsmønster (som <tt>*.domene,no</tt>).
|
||||
type_directories=Katalogene angitt nedenfor vil bli opprettet med angitt eierskap og tillatelser dersom de ikke finnes. Feltene for eier, gruppe og tillatelser er valgfrie.
|
||||
type_disable=Katalogene angitt nedenfor vil bli sjekke for å se om de finnes og er i overenstemmelse med valgte størrelses- og type-kriterier, og i så fall bli deaktivert enten ved omdøping aller avkorting.
|
||||
type_disks=$type_required
|
||||
type_editfiles=Tekstområdet nedenfor kan brukes for å legge inn et script som redigerer valgt fil ved å legge til, slette eller oppdatere linjer der det er nødvendig. Sjekk CFengines dokumentasjon for å se syntaksen for dette script-språket.
|
||||
type_grant=$type_admit
|
||||
type_groups=Bruk tabellen nedenfor til å definere ekstra grupper av verter som brukes andre steder i konfigurasjonen som klassenavn. Grupper kan også inneholde skall-kommandoer i spørringer som utføres for å bestemme om gruppen evaluerer til sann eller usann.
|
||||
type_ignore=Alle filer og kataloger angitt nedenfor vil bli ignorert av alle 'Kopier filer', 'Sett tillatelser', og 'Rydd kataloger' handlinger. Hver oppføring kan være en full sti, en skall-stil regulært uttrykk eller et filnavn.
|
||||
type_links=De symbolske lenkene angitt nedenfor vil bli opprettet dersom de ikke finnes. Dersom en lenke finnes allerede, men peker til et annet mål, vil den vanligvis ikke bli endret.
|
||||
type_miscmounts=NFS filsystem monteringer angitt nedenfor vil bli sjekket og montert hvis nødvendig når CFengine kjøres. NFS tjener og sti feltet må angis på standard format (<tt>tjenernavn:/sti/navn</tt>). Monteringsinnstillinger må være på samme format som brukes i <tt>/etc/fstab</tt> filen, og er valgfrie.
|
||||
type_processes=Bruk feltet nedenfor til å søke etter prosesser som matcher angitt mønster, og eventuelt sende dem et signal for å stoppe dem. Når en prosess stoppes kan du også angi en kommando som skal kjøres for å starte prosessen på nytt.
|
||||
type_required=Filsystemene angitt nedenfor vil bli sjekket når denne handlingen kjøres for å verifisere at de er montert, og hvis ikke vil det bli vist en advarsel. Hvert filsystem vil også bli sjekket for å se om ledig diskplass er under et eventuelt angitt minimum.
|
||||
type_resolve=DNS tjeners IP adresse som du angir nedenfor vil bli brukt til å oppdatere <tt>/etc/resolv.conf</tt> når denne handlingen kjøres.
|
||||
type_shellcommands=Kommandoene angitt nedenfor vil bli utført hver gang konfigurasjonsmotoren kjøres. Feltene for bruker og gruppe er valgfrie - dersom ingenting er angitt i disse vil kommandoen kjøres som root. Feltet for tidsavbrudd er også valgfritt - dersom det ikke er angitt noe tidsavbrudd vil CFengine vente helt til kommandoen er fullført.
|
||||
type_tidy=Katalogene angitt nedenfor vil bli scannet for filer som matcher valgte navne-, alders- og tidspunkt-kriterier hver gang CFengine kjøres. Alle filer som finnes vil bli slettet, uten at noen sikkerhetskopi tas.
|
||||
@@ -4,7 +4,6 @@ category=cluster
|
||||
desc_ca=Motor de Configuració
|
||||
desc_es=Motor de Configuración
|
||||
desc_de=Konfigurations-Automat
|
||||
longdesc=Configure the CFengine program, for checking and maintaining various system-administration settings.
|
||||
desc_fr=Moteur de configuration
|
||||
os_support=!windows
|
||||
desc_sv=Konfigurations Motor
|
||||
@@ -12,5 +11,5 @@ desc_cz=Konfigura
|
||||
desc_nl=Configuratie Engine
|
||||
desc_cz.UTF-8=KonfiguraÄ<61>nà stroj
|
||||
desc_pl=Konfiguracja silnika
|
||||
longdesc_ms_MY=Konfigurasi program CFengine, untuk memeriksa dan mengekalkan tetapan sistem pentadbiran pelbagai
|
||||
desc_ms_MY=Enjin Konfigurasi
|
||||
desc_no=Konfigurasjonsmotor
|
||||
|
||||
@@ -28,8 +28,8 @@ if ($access{'lang'}) {
|
||||
my ($linfo) = grep { $_->{'lang'} eq $glang } @langs;
|
||||
print &ui_table_row($text{'index_lang'},
|
||||
&ui_radio("lang_def", $user->{'lang'} ? 0 : 1,
|
||||
[ [ 1, &text('index_langglobal',
|
||||
$linfo->{'desc'})."<br>" ],
|
||||
[ [ 1, &text('index_langglobal2', $linfo->{'desc'},
|
||||
$linfo->{'lang'})."<br>" ],
|
||||
[ 0, $text{'index_langset'} ] ])." ".
|
||||
&ui_select("lang", $user->{'lang'},
|
||||
[ map { [ $_->{'lang'},
|
||||
@@ -48,7 +48,7 @@ if ($access{'theme'}) {
|
||||
else {
|
||||
$tname = $text{'index_themedef'};
|
||||
}
|
||||
my @all = &webmin::list_themes();
|
||||
my @all = &webmin::list_visible_themes($user->{'theme'});
|
||||
my @themes = grep { !$_->{'overlay'} } @all;
|
||||
my @overlays = grep { $_->{'overlay'} } @all;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
index_title=Canvi d'Idioma i Tema
|
||||
index_lang=Idioma de la interfície d'usuari de Webmin
|
||||
index_langglobal=Idioma global ($1)
|
||||
index_langglobal=Idioma global ... $1 ($2)
|
||||
index_langset=Tria personal...
|
||||
index_theme=Tema de la interfície d'usuari de Webmin
|
||||
index_overlay=Capa del tema
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
__norefs=1
|
||||
acl_lang=Darf Sprache ändern?
|
||||
acl_pass=Darf das Passwort ändern, wenn das in Webmin so eingestellt ist?
|
||||
acl_theme=Darf Design ändern?
|
||||
change_done=.. erledigt
|
||||
change_ecolon=Ihr Passwort darf das Zeichen <tt> : </tt> nicht enthalten!
|
||||
change_eoverlay=Sie können kein ein Thema Overlay auswählen, sofern ein UI theme gewählt wurde
|
||||
change_eoverlay2=Das ausgewählte Thema Overlay ist nicht kompatibel mit dem gewählten UI Thema
|
||||
change_epass=Neues Passwort ist ungültig : $1
|
||||
index_overlaydef=Keine - benutze Design Standards
|
||||
index_themeglobal=Globales Design ($1)
|
||||
index_langset=Persönliche Auswahl ..
|
||||
change_epass2=Neue Passwörter stimmen nicht überein
|
||||
change_redirect=Leite zum Hauptmenü zurück ..
|
||||
change_restart=Starte Webmin neu ..
|
||||
change_title=Ändere die Einstellungen
|
||||
change_user=Modifiziere das Passwort des Webmin-Benutzers ..
|
||||
index_d1=$1
|
||||
index_d2=$1 und $2
|
||||
index_d3=$1, $2 und $3
|
||||
index_themeset=Persönliche Auswahl ..
|
||||
index_desc2=Dieses Modul kann lediglich für das Ändern $1 Ihres Webmin-Accounts benutzt werden.
|
||||
index_dlang=der Sprache, in welcher die Module angezeigt werden
|
||||
index_dpass=dem Passwort, welches zum Anmelden erforderlich ist,
|
||||
index_d3=$1, $2 und $3
|
||||
acl_lang=Darf Sprache ändern?
|
||||
change_eoverlay=Sie können kein ein Thema Overlay auswählen, sofern ein UI theme gewählt wurde
|
||||
index_passagain=Erneute Passworteingabe
|
||||
index_themedef=Altes Webmin-Design
|
||||
index_theme=Webmin-Design
|
||||
index_ok=Änderungen durchführen
|
||||
change_done=.. erledigt
|
||||
index_dtheme=das Design, welches die Darstellung von Webmin kontrolliert
|
||||
index_lang=Webmin-Spracheinstellung
|
||||
index_langglobal=Globale Einstellung ($1)
|
||||
index_langset=Persönliche Auswahl ..
|
||||
index_ok=Änderungen durchführen
|
||||
index_overlay=Theme overlay
|
||||
index_overlaydef=Keine - benutze Design Standards
|
||||
index_pass=Webmin-Passwort
|
||||
index_passagain=Erneute Passworteingabe
|
||||
__norefs=1
|
||||
change_ecolon=Ihr Passwort darf das Zeichen <tt> : </tt> nicht enthalten!
|
||||
change_user=Modifiziere das Passwort des Webmin-Benutzers ..
|
||||
index_langglobal2=Globale Sprache .. $1 ($2)
|
||||
index_passleave=Unverändert lassen
|
||||
index_passset=Einstellen auf ..
|
||||
index_theme=Webmin-Design
|
||||
index_themedef=Altes Webmin-Design
|
||||
index_themeglobal=Globales Design ($1)
|
||||
index_themeset=Persönliche Auswahl ..
|
||||
index_pass=Webmin-Passwort
|
||||
index_d1=$1
|
||||
change_restart=Starte Webmin neu ..
|
||||
acl_theme=Darf Design ändern?
|
||||
index_d2=$1 und $2
|
||||
index_overlay=Theme overlay
|
||||
index_title=Sprache und Design von Webmin ändern
|
||||
change_redirect=Leite zum Hauptmenü zurück ..
|
||||
change_eoverlay2=Das ausgewählte Thema Overlay ist nicht kompatibel mit dem gewählten UI Thema
|
||||
change_title=Ändere die Einstellungen
|
||||
index_dpass=dem Passwort, welches zum Anmelden erforderlich ist,
|
||||
index_passset=Einstellen auf ..
|
||||
acl_pass=Darf das Passwort ändern, wenn das in Webmin so eingestellt ist?
|
||||
index_dlang=der Sprache, in welcher die Module angezeigt werden
|
||||
change_epass=Neues Passwort ist ungültig : $1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
index_title=Change Language and Theme
|
||||
index_lang=Webmin UI language
|
||||
index_langglobal=Global language ($1)
|
||||
index_langglobal2=Global language .. $1 ($2)
|
||||
index_langset=Personal choice ..
|
||||
index_theme=Webmin UI theme
|
||||
index_overlay=Theme overlay
|
||||
|
||||
@@ -20,7 +20,7 @@ index_dlang=språket modulene vises i
|
||||
index_dpass=passordet brukt til å logge inn på
|
||||
index_dtheme=temaet som kontrollerer Webmins utseende
|
||||
index_lang=Webmin UI språk
|
||||
index_langglobal=Globalt språk ($1)
|
||||
index_langglobal2=Globalt språk .. $1 ($2)
|
||||
index_langset=Personlig valg
|
||||
index_ok=Lagre endringer
|
||||
index_overlay=Tema overstyring
|
||||
|
||||
@@ -65,6 +65,7 @@ foreach $m (@ARGV) {
|
||||
$flags = !-r $file ? "chf" : "rhf";
|
||||
system("cd /tmp/create-module && find . -name .svn | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name '*~' -o -name '*.rej' -o -name '*.orig' -o -name '.*.swp' | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name RELEASE -o -name RELEASE.sh | xargs rm -rf");
|
||||
unlink("/tmp/create-module/$subdir/IDEAS");
|
||||
system("cd /tmp/create-module && find . -name \\*.svn-work | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name \\*.svn-base | xargs rm -rf");
|
||||
|
||||
@@ -1407,8 +1407,8 @@ sub extract_input
|
||||
local ($cmd) = @_;
|
||||
$cmd =~ s/\\%/\0/g;
|
||||
local ($cmd, $input) = split(/\%/, $cmd, 2);
|
||||
$cmd =~ s/\0/%/g;
|
||||
$input =~ s/\0/%/g;
|
||||
$cmd =~ s/\0/\\%/g;
|
||||
$input =~ s/\0/\\%/g;
|
||||
return ($cmd, $input);
|
||||
}
|
||||
|
||||
|
||||
@@ -79,6 +79,8 @@ else {
|
||||
&convert_range($job);
|
||||
$rangeable = 1;
|
||||
($command, $input) = &extract_input($job->{'command'});
|
||||
$command =~ s/\\%/%/g;
|
||||
$input =~ s/\\%/%/g;
|
||||
@lines = split(/%/, $input);
|
||||
print &ui_table_row($text{'edit_command'},
|
||||
&ui_textbox("cmd", $command, 60));
|
||||
|
||||
@@ -122,6 +122,8 @@ foreach $u (@ulist) {
|
||||
local $max = $config{'max_len'} || 10000;
|
||||
local ($cmd, $input) =
|
||||
&extract_input($job->{'command'});
|
||||
$cmd =~ s/\\%/%/g;
|
||||
$input =~ s/\\%/%/g;
|
||||
$cmd = length($cmd) > $max ?
|
||||
&html_escape(substr($cmd, 0, $max))." ..." :
|
||||
$cmd !~ /\S/ ? "BLANK" : &html_escape($cmd);
|
||||
|
||||
@@ -72,9 +72,10 @@ if ($st[7] != $config{'dhcpd_size'} || $st[9] != $config{'dhcpd_mtime'}) {
|
||||
|
||||
# Create lookup type HTML
|
||||
# XXX change text, add to lookup_*
|
||||
$matches = ui_select("match", undef, [ [0,$text{'index_match0'},"selected"],
|
||||
[1,$text{'index_match1'},""],
|
||||
[2,$text{'index_match2'},""] ]);
|
||||
$matches = ui_select("match", $config{'match_default'} || 0,
|
||||
[ [0, $text{'index_match0'} ],
|
||||
[1, $text{'index_match1'} ],
|
||||
[2, $text{'index_match2'} ] ]);
|
||||
|
||||
# get top-level hosts
|
||||
foreach $h (&find("host", $conf)) {
|
||||
|
||||
@@ -80,6 +80,10 @@ else {
|
||||
if ($in{'hardware'} =~ /^([0-9a-f]{2})([0-9a-f]{2}).([0-9a-f]{2})([0-9a-f]{2}).([0-9a-f]{2})([0-9a-f]{2}).([0-9a-f]{2})([0-9a-f]{2})$/i) {
|
||||
$in{'hardware'} = "$1:$2:$3:$4:$5:$6";
|
||||
}
|
||||
# Handle an Ethernet address with no formatting at all
|
||||
if ($in{'hardware'} =~ /^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i) {
|
||||
$in{'hardware'} = "$1:$2:$3:$4:$5:$6";
|
||||
}
|
||||
$in{'hardware'} =~ /^([0-9a-f]{1,2}:)*[0-9a-f]{1,2}$/i ||
|
||||
&error(&text('shost_invalidhwa', $in{'hardware'},
|
||||
$in{'hardware_type'}) );
|
||||
|
||||
@@ -18,7 +18,6 @@ desc_ja_JP.euc=BIND 4 DNS
|
||||
depends=bind8
|
||||
desc_ru_RU=BIND 4 DNS Ñåðâåð
|
||||
desc_ca=Servidor DNS BIND 4
|
||||
longdesc=Create and edit domains and DNS records.
|
||||
desc_zh_TW.UTF-8=BIND 4 DNS 伺æœ<C3A6>器
|
||||
desc_zh_CN.UTF-8=BIND 4 DNS æœ<C3A6>务器
|
||||
desc_ja_JP.UTF-8=BIND 4 DNS サーãƒ<C3A3>
|
||||
|
||||
4
fail2ban/config.info.no
Normal file
4
fail2ban/config.info.no
Normal file
@@ -0,0 +1,4 @@
|
||||
config_dir=Fail2Ban konfigurasjonskatalog,0
|
||||
client_cmd=Full stil til fail2ban-klient kommando,0
|
||||
server_cmd=Full stil til fail2ban-tjener kommando,0
|
||||
init_script=Oppstart handlingsnavn,3,Ingen konfigurert
|
||||
@@ -42,13 +42,13 @@ else {
|
||||
# Regexp to match
|
||||
my $fail = &find_value("failregex", $def);
|
||||
print &ui_table_row($text{'filter_fail'},
|
||||
&ui_textarea("fail", $fail, 5, 80, "hard")."<br>\n".
|
||||
&ui_textarea("fail", $fail, 5, 80, "off")."<br>\n".
|
||||
$text{'filter_desc'});
|
||||
|
||||
# Regexp to not match
|
||||
my $ignore = &find_value("ignoreregex", $def);
|
||||
print &ui_table_row($text{'filter_ignore'},
|
||||
&ui_textarea("ignore", $ignore, 5, 80, "hard"));
|
||||
&ui_textarea("ignore", $ignore, 5, 80, "off"));
|
||||
|
||||
print &ui_table_end();
|
||||
if ($in{'new'}) {
|
||||
|
||||
@@ -116,6 +116,7 @@ my @rv;
|
||||
while(<$fh>) {
|
||||
s/\r|\n//g;
|
||||
s/^\s*#.*$//;
|
||||
s/^\s;.*$//;
|
||||
if (/^\[([^\]]+)\]/) {
|
||||
# Start of a section
|
||||
$sect = { 'name' => $1,
|
||||
|
||||
@@ -34,7 +34,7 @@ my @titles = ( $text{'filters_title'}, $text{'actions_title'},
|
||||
my @icons = ( "images/filters.gif", "images/actions.gif",
|
||||
"images/jails.gif", "images/config.gif",
|
||||
"images/manual.gif", );
|
||||
print &icons_table(\@links, \@titles, \@icons, 5);
|
||||
&icons_table(\@links, \@titles, \@icons, 5);
|
||||
|
||||
# Show start / stop buttons
|
||||
print &ui_hr();
|
||||
|
||||
159
fail2ban/lang/no
Normal file
159
fail2ban/lang/no
Normal file
@@ -0,0 +1,159 @@
|
||||
__norefs=1
|
||||
action_ban=Kommando for å bannlyse en IP
|
||||
action_check=Kommando som skal kjøres før en IP bannlyses
|
||||
action_desc=<i><ip></i> vil bli erstattet med IP adressen som blir bannlyst.
|
||||
action_eclash=Handlingsnavn er allerede i bruk
|
||||
action_edefgone=Handling har ingen Definition seksjon
|
||||
action_egone=Handling finnes ikke lenger!
|
||||
action_einuse=Denne handlingen kan ikke slettes siden den brukes av fengslene : $1
|
||||
action_ename=Manglende eller ugyldig handlingsnavn
|
||||
action_err=Kunne ikke lagre handling
|
||||
action_header=Match handling detaljer
|
||||
action_name=Handling navn
|
||||
action_start=Kommando som skal kjøres ved Fail2Ban oppstart
|
||||
action_stop=Kommando som skal kjøres ved Fail2Ban avstenging
|
||||
action_title1=Opprett Match handling
|
||||
action_title2=Rediger Match handling
|
||||
action_unban=Kommando for å fjerne bannlysing av IP
|
||||
actions_add=Legg til ny handling.
|
||||
actions_ban=Ban kommando
|
||||
actions_delete=Slett valgte handlinger
|
||||
actions_derr=Kunne ikke slette handlinger
|
||||
actions_einuse=Handlingen $1 kan ikke slettes, siden den brukes i fengslene : $2
|
||||
actions_enone=Ingen valgt
|
||||
actions_name=Handling navn
|
||||
actions_return=liste over handlinger
|
||||
actions_title=Match handlinger
|
||||
check_eclient=Klient-kommandoen $1 ble ikke funnet
|
||||
check_econf=Konfigurasjonsfilen $2 i $1 finnes ikke
|
||||
check_edir=Konfigurasjonskatalogen $1 finnes ikke
|
||||
check_eserver=Tjenerkommandoen $1 ble ikke funnet
|
||||
config_default=Standard mål
|
||||
config_edef=Ingen Definition seksjon funnet i konfig.fil!
|
||||
config_elogtarget=Filen som logger skal skrives til må være en absolutt sti
|
||||
config_err=Kunne ikke lagre global konfigurasjon
|
||||
config_esocket=Socket-fil må være en absolutt sti
|
||||
config_file=Loggfil
|
||||
config_header=Konfig. innstillinger for Fail2Ban
|
||||
config_loglevel=Minimum loggingsnivå
|
||||
config_logtarget=Skriv logger til
|
||||
config_socket=Socket for kommunikasjon med tjener
|
||||
config_syslog=Syslog tjeneste
|
||||
config_title=Global konfigurasjon
|
||||
filter_desc=Bruk <i><HOST></i> i regulære uttrykk hvor vertsnavn eller IP-adresse skal forekomme.
|
||||
filter_eclash=Filternavn er allerede i bruk
|
||||
filter_edefgone=Filter har ingen Definition seksjon
|
||||
filter_efail=Det ble ikke angitt noe regulært uttrykk å matche
|
||||
filter_egone=Filter finnes ikke lenger!
|
||||
filter_einuse=Dette filteret kan ikke slettes siden det brukes av fengslene : $1
|
||||
filter_ename=Manglende eller ugyldig filternavn
|
||||
filter_err=Kunne ikke lagre filter
|
||||
filter_fail=Regulære uttrykk å matche
|
||||
filter_header=Loggfilter detaljer
|
||||
filter_ignore=Regulære uttrykk å ignorere
|
||||
filter_name=Filternavn
|
||||
filter_title1=Opprett filter
|
||||
filter_title2=Rediger filter
|
||||
filters_add=Legg til nytt loggfilter.
|
||||
filters_delete=Slett valgte filtere
|
||||
filters_derr=Kunne ikke slette filtere
|
||||
filters_einuse=Filteret $1 kan ikke slettes siden det brukes av fengslene : $2
|
||||
filters_enone=Ingen valgt
|
||||
filters_name=Filternavn
|
||||
filters_re=Regulært uttrykk
|
||||
filters_return=liste over filtere
|
||||
filters_title=Loggfiltere
|
||||
index_atboot=Start ved oppstart?
|
||||
index_atbootdesc=Endre denne innstillingen for å kontrollere hvorvidt Fail2Ban tjeneren startes når systemet startes opp. Hvis nødvendig, vil det bli opprettet et oppstartsscript slik at tjeneren startes på korrekt måte.
|
||||
index_echeck=En feil oppstod under oppdaging av Fail2Ban på dette systemet : $1. Enten er den ikke installert eller så er <a href='$2'>modulkonfigurasjonen</a> feil.
|
||||
index_fail2ban=Fail2Ban
|
||||
index_restart=Omstart Fail2Ban tjener
|
||||
index_restartdesc=Klikk på denne knappen for å ta i bruk gjeldende konfigurasjon ved å omstarte Fail2Ban tjeneren.
|
||||
index_return=modulindeks
|
||||
index_start=Start Fail2Ban tjener
|
||||
index_startdesc=Klikk på denne knappen for å starte Fail2Ban tjeneren, slik at logganalyse blir utført.
|
||||
index_stop=Stopp Fail2Ban tjener
|
||||
index_stopdesc=Klikk på denne knappen for å stoppe Fail2Ban tjeneren. All logganalyse vil umiddelbart stanses.
|
||||
index_title=Fail2Ban Innbruddsoppdager
|
||||
jail_action=Handling
|
||||
jail_actions=Handlinger som skal brukes
|
||||
jail_aname=Navn
|
||||
jail_auto=Bestem automatisk
|
||||
jail_backend=Sjekk for loggfil oppdateringer vha.
|
||||
jail_banaction=Standard handling å bruke
|
||||
jail_bantime=Tidsrom IP skal bannlyses i
|
||||
jail_defprotocol=Standard protokoll for handlinger
|
||||
jail_destemail=Standard varslings-e-post
|
||||
jail_eactions=Ingen handlinger valgt!
|
||||
jail_eaname=Ugyldig utseende parameter for handling $1
|
||||
jail_ebantime=Tidsrom for bannlysing av IP må være et tall større enn null
|
||||
jail_eclash=Et fengsel med samme navn finnes allerede
|
||||
jail_edestemail=Manglende eller ugyldig standard e-post adresse for varslinger
|
||||
jail_efindtime=Forsinkelse mellom matcher må være et tall større enn null
|
||||
jail_egone=Fengsel finnes ikke lenger!
|
||||
jail_eignoreip=Ugyldig IP-adresse å ignorere
|
||||
jail_elogpath=Alle loggfiler må være absolutte stier eller mønstere
|
||||
jail_elogpaths=Ingen loggfil-stier angitt
|
||||
jail_emaxretry=Matches for en handling tas i bruk må være et tall større enn null
|
||||
jail_enabled=Aktivert for øyeblikket?
|
||||
jail_ename=Manglende eller ugyldig fengsel-navn
|
||||
jail_eport=Ugyldig portnummer for handling $1
|
||||
jail_err=Kunne ikke lagre fengsel
|
||||
jail_filter=Filter det skal søkes i logg etter
|
||||
jail_findtime=Maks forsinkelse mellom matcher
|
||||
jail_gamin=Gamin filendrings-overvåker
|
||||
jail_header=Detaljer for filter-handling fengsel
|
||||
jail_ignoreip=IP-adresser som aldri skal bannlyses
|
||||
jail_logpath=Loggfil stier
|
||||
jail_maxretry=Matcher før en handling tas i bruk
|
||||
jail_name=Fengsel-navn
|
||||
jail_none=Ingen satt
|
||||
jail_others=Andre parametere
|
||||
jail_polling=Bakgrunns-polling
|
||||
jail_port=Port
|
||||
jail_protocol=Protokoll
|
||||
jail_title1=Opprett fengsel
|
||||
jail_title2=Rediger fengsel
|
||||
jaildef_egone=Ingen STANDARD fengsel funnet!
|
||||
jaildef_err=Kunne ikke lagre standard-innstillinger for fengsel
|
||||
jaildef_header=Standarder for alle fenglse
|
||||
jaildef_title=Standard fengsel-innstillinger
|
||||
jails_action=Resulterende handlinger
|
||||
jails_add=Legg til nytt fengsel.
|
||||
jails_def=Rediger fengsel standardverdier
|
||||
jails_defdesc=Rediger standard innstillinger og begrensinger som gjelder for alle fengsle listet ovenfor, så som antall påkrevde matcher og hvor lenge en IP skal bannlyses.
|
||||
jails_delete=Slett valgte fengsle
|
||||
jails_derr=Kunne ikke slette fengsle
|
||||
jails_enabled=Aktivert?
|
||||
jails_enone=Ingen valgt
|
||||
jails_filter=Logg-filter
|
||||
jails_name=Fengsel-navn
|
||||
jails_return=liste over fengsler
|
||||
jails_title=Filter-handling fengsler
|
||||
log_atboot=Aktiverte Fail2Ban ved systemoppstart
|
||||
log_config=Endret global konfigurasjon
|
||||
log_create_action=Opprettet handling $1
|
||||
log_create_filter=Opprettet filter $1
|
||||
log_create_jail=Opprettet fengsel $1
|
||||
log_delboot=Deaktiverte Fail2Ban ved oppstart
|
||||
log_delete_action=Slettet handling $1
|
||||
log_delete_filter=Slettet filter $1
|
||||
log_delete_jail=Slettet fengsel $1
|
||||
log_jaildef=Endret standard-innstillinger for fengsel
|
||||
log_manual=Redigerte konfigurasjonsfil $1
|
||||
log_restart=Omstartet Fail2Ban tjener
|
||||
log_start=Startet Fail2Ban tjener
|
||||
log_stop=Stoppet Fail2Ban tjener
|
||||
log_update_action=Endret handling $1
|
||||
log_update_filter=Endret filter $1
|
||||
log_update_jail=Endret fengsel $1
|
||||
manual_desc=Fil som skal redigeres:
|
||||
manual_edata=Ingen konfig.fil innhold angitt
|
||||
manual_efile=Valgt fil er ikke en del av Fail2Ban konfigurasjonen!
|
||||
manual_err=Kunne ikke redigere konfigurasjonsfil
|
||||
manual_ok=OK
|
||||
manual_title=Rediger konfig.filer
|
||||
restart_err=Kunne ikke omstarte tjener
|
||||
start_err=Kunne ikke starte tjener
|
||||
stop_err=Kunne ikke stoppe tjener
|
||||
syslog_logtarget=Fail2Ban handlingslogg
|
||||
@@ -9,3 +9,4 @@ longdesc_ms_MY=Fail2ban melindungi sistem anda dari serangan kekerasan dengan me
|
||||
syslog=1
|
||||
desc_ca=Detector d'Intrusions Fail2Ban
|
||||
longdesc_ca=Fail2ban protegeix el teu sistema d'atacs de força bruta detectant i bloquejant les IPs d'origen
|
||||
desc_no=Fail2Ban innbrudds-oppdager
|
||||
|
||||
@@ -74,7 +74,6 @@ else {
|
||||
push(@opts, split(/\s+/, $in{"others_$i"}));
|
||||
push(@actions, $in{"action_$i"}."[".join(", ", @opts)."]");
|
||||
}
|
||||
@actions || &error($text{'jail_eactions'});
|
||||
|
||||
# Split and validate log file paths
|
||||
my @logpaths = split(/\r?\n/, $in{'logpath'});
|
||||
@@ -110,7 +109,8 @@ else {
|
||||
# Save directives within the section
|
||||
&save_directive("enabled", $in{'enabled'} ? 'true' : 'false', $jail);
|
||||
&save_directive("filter", $in{'filter'}, $jail);
|
||||
&save_directive("action", join("\n", @actions), $jail);
|
||||
&save_directive("action", @actions ? join("\n", @actions)
|
||||
: undef, $jail);
|
||||
&save_directive("logpath", join("\n", @logpaths), $jail);
|
||||
foreach my $f ("maxretry", "findtime", "bantime") {
|
||||
&save_directive($f, $in{$f."_def"} ? undef : $in{$f}, $jail);
|
||||
|
||||
@@ -87,6 +87,7 @@ else {
|
||||
$ucount > $config{'max_users'});
|
||||
}
|
||||
endpwent() if ($gconfig{'os_type'} ne 'hpux');
|
||||
@users = sort { $a->[1]->[0] cmp $b->[1]->[0] } @users;
|
||||
if (!@users) {
|
||||
# None found
|
||||
print "<br><b>$text{'index_none'}</b><p>\n";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
virtualmin_spam=Camí complet del programa de consulta de spam d'usuaris de Virtualmin,3,No està instal·lat,40
|
||||
virtualmin_config=Camí complet del directori de configuració de Virtualmin,3,No instal·lat
|
||||
virtualmin_config=Camí complet del directori de configuracio de Virtualmin,3,No instal·lat
|
||||
virtualmin_spam=Camí complet del programa de consulta d'usuaris de spam de Virtualmin,3,No instal·lat,40
|
||||
warn_procmail=Mostra un avís si Procmail no està instal·lat,1,1-Sí,0-No
|
||||
forward_procmail=Crea fitxer .forward per executar procmail,1,1-Sí,0-No
|
||||
alias_files=Camí complet dels fitxers d'àlies globals,9,40,3,\t
|
||||
|
||||
@@ -155,7 +155,7 @@ if (($table->{'name'} eq 'nat' && $rule->{'chain'} ne 'PREROUTING' &&
|
||||
&can_jump("SNAT")) {
|
||||
if ($rule->{'j'}->[1] eq 'SNAT') {
|
||||
if ($rule->{'to-source'}->[1] =~
|
||||
/^([0-9\.]+)(\-([0-9\.]+))?(:(\d+)(\-(\d+))?)?$/) {
|
||||
/^([0-9\.]+)?(\-([0-9\.]+))?(:(\d+)(\-(\d+))?)?$/) {
|
||||
$sipfrom = $1;
|
||||
$sipto = $3;
|
||||
$spfrom = $5;
|
||||
|
||||
@@ -45,6 +45,8 @@ index_applydesc=Fes clic sobre aquest bot
|
||||
index_applydesc2=Fes clic sobre aquest botó per fer que la configuració del tallafocs llistada a sobre sigui activa a tots els servidors del cluster. Totes les regles que estiguin actualment en efecte seran descartades i reemplaçades.
|
||||
index_unapply=Reverteix la Configuració
|
||||
index_unapplydesc=Fes clic sobre aquest botó per reiniciar la configuració llistada a sobre amb els valors de la que està actualment activa.
|
||||
index_unapply2=Desa la Configuració
|
||||
index_unapply2desc=Fes clic sobre aquest botó per desar la configuració de sobre al fitxer permanent de configuració del tallafoc.
|
||||
index_table_filter=Filtratge de paquets (filter)
|
||||
index_table_nat=Traducció d'adreces de xarxa (nat)
|
||||
index_table_mangle=Alteració de paquets (mangle)
|
||||
|
||||
@@ -23,6 +23,7 @@ apply_err=Fehlgeschlagen die Konfiguration anzuwenden
|
||||
apply_remote=Fehler von $1 : $2
|
||||
bootup_ecannot=Es ist Ihnen nicht erlaubt die Firewall beim Booten zu aktivieren oder zu deaktivieren
|
||||
clear_ecannot=Es ist Ihnen nicht erlaubt die Regeln zu leeren
|
||||
clear_rusure=Sind Sie sicher, dass Sie alle $2 Regeln von Kette $1 löschen möchten?
|
||||
clear_title=Regeln leeren
|
||||
cluster_add=Füge Server hinzu
|
||||
cluster_delete=Ausgewähltes löschen
|
||||
@@ -36,6 +37,7 @@ cluster_return=Cluster Server
|
||||
cluster_title=Cluster Firewall Server
|
||||
delete_ecannot=Es ist Ihnen nicht erlaubt die Regeln zu löschen
|
||||
delete_ok=Lösche jetzt
|
||||
delete_rusure=Sind Sie sicher, dass Sie die Kette $1 löschen möchten? $2 Regeln werden in ihr gelöscht.
|
||||
delete_title=Lösche Regel
|
||||
desc_always=Immer
|
||||
desc_and=und
|
||||
@@ -170,6 +172,7 @@ index_auto5=Blockiere alles ausgenommen Ports die für virtuelles Hosting be
|
||||
index_bootup=Aktiviere beim Booten
|
||||
index_bootupdesc=Ändert die Option, um zu kontrollieren, ob Ihre Firewall beim Booten aktiviert ist oder nicht.
|
||||
index_cclear=Lösche alle Regeln
|
||||
index_cdelete=Lösche Kette
|
||||
index_cdeletesel=Lösches ausgewähltes
|
||||
index_chain=Regel $1
|
||||
index_chain_forward=Weitergeleitete Pakete (FORWARD) - Gilt nur für Pakete, die dieser Host weitergeleitet hat
|
||||
@@ -182,6 +185,7 @@ index_cluster=Cluster Server
|
||||
index_clusterdesc=Klicken Sie auf diese Schaltfläche, um zusätzliche Webmin-Server einzurichten, mit denen die Firewall-Konfiguration automatisch kopiert werden.
|
||||
index_cmovesel=Verschiebe ausgewählte
|
||||
index_comm=Kommentar
|
||||
index_crename=Benenne Kette um
|
||||
index_desc=Bedingung
|
||||
index_ecommand=Der Befehl $1 wurde nicht auf Ihrem System gefunden. Webmin benötigt diesen Befehl um IPtables zu konfigurieren.
|
||||
index_editing=Regel Datei $1
|
||||
@@ -199,6 +203,7 @@ index_jump_masquerade=Maskieren
|
||||
index_jump_queue=<font color=#0000ff>Userspace</font>
|
||||
index_jump_redirect=Leite um
|
||||
index_jump_reject=<font color=#ff4400>Zurückweisen</font>
|
||||
index_jump_return=Beende Kette
|
||||
index_jump_snat=Quell NAT
|
||||
index_move=Verschieben
|
||||
index_policy=Setze Standard-Aktion auf:
|
||||
@@ -227,17 +232,24 @@ log_bootdown=Firewall beim Booten deaktiviert
|
||||
log_bootup=Firewall beim Booten aktiviert
|
||||
log_convert=Bestehende Firewall konvertiert
|
||||
log_openports=Firewallports $1 geöffnet
|
||||
log_rename_chain=Kette $1 in Tabelle $2 umbenannt
|
||||
log_setup=Firewall eingerichtet
|
||||
log_unapply=Konfiguration zurückgesetzt
|
||||
move_chain=Aktuelle Änderung
|
||||
move_count=Regeln ausgewählt
|
||||
move_dest=Ziel-Kette
|
||||
move_header=Regel Verschiebe-Optionen
|
||||
move_ok=Verschiebe jetzt
|
||||
move_title=Verschiebe Regeln
|
||||
new_ecannot=Es ist Ihnen nicht erlaubt Ketten zu erstellen
|
||||
new_ename=Fehlender oder ungültiger Ketten-Name
|
||||
new_err=Fehlgeschlagen eine Regel zu erstellen
|
||||
new_etaken=Eine Regeln mit diesem Namen existiert bereits
|
||||
redhat_einstalled=Kein <tt>iptables</tt> Systemstart Aktion wurde festgestellt, was darauf hinweist, dass das IPtables-Paket nicht auf Ihrem System installiert ist.
|
||||
redhat_eoutput=Ein Fehler ist beim Abrufen des IPtables Status von dem Befehl $1 aufgetreten. Dies ist wahrscheinlich darauf zurückzuführen, dass Ihr System so konfiguriert wurde, IPchains anstelle von IPtables zu benutzen.
|
||||
rename_chain=Aktueller Name
|
||||
rename_count=Regel in Kette
|
||||
rename_ecannot=Es ist Ihnen nicht erlaubt Ketten umzubenennen
|
||||
rename_name=Neuer Name
|
||||
rename_none=Nichts
|
||||
rename_ok=Umbenenne jetzt
|
||||
|
||||
@@ -233,6 +233,8 @@ index_table_mangle=Pakke endring (mangle)
|
||||
index_table_nat=Nettverksadresse oversetting (nat)
|
||||
index_title=Linux brannmur
|
||||
index_unapply=Tilbakestill konfigurasjon
|
||||
index_unapply2=Lagre konfigurasjon
|
||||
index_unapply2desc=Klikk på denne knappen for å lagre konfigurasjonen ovenfor i den permanente brannmur-konfigurasjonsfilen
|
||||
index_unapplydesc=Klikk på denne knappen for å tilbakestille konfigurasjonen ovenfor til den konfigurasjonen som er aktive for øyeblikket.
|
||||
log_add_group=Added cluster servers from group $1
|
||||
log_add_host=Added cluster server $1
|
||||
@@ -267,8 +269,8 @@ new_ename=Missing or invalid chain name
|
||||
new_err=Failed to create chain
|
||||
new_etaken=A chain with this name already exists
|
||||
policy_ecannot=You are not allowed to change the default policy for this chain
|
||||
redhat_einstalled=Ingen oppstartshandling for <tt>iptables</tt> ble funnet, noe som antyder at IPtables pakken ikke er installert på systemet ditt
|
||||
redhat_eoutput=An error occured getting IPtables status from the command $1. This probably indicates that your system has been configured to use IPchains instead of IPtables.
|
||||
redhat_escript=Oppstarts-script $1 for Redhat IPtables ble ikke funnet på ditt system.
|
||||
rename_adjust=Endre andre regler som hopper til denne kjeden?
|
||||
rename_chain=Gjeldende navn
|
||||
rename_count=Regler i kjede
|
||||
|
||||
@@ -116,7 +116,8 @@ else {
|
||||
if ($table->{'name'} eq 'nat' && $rule->{'chain'} ne 'PREROUTING' &&
|
||||
$rule->{'chain'} ne 'OUTPUT') {
|
||||
if ($rule->{'j'}->[1] eq 'SNAT' && !$in{'snatdef'}) {
|
||||
&check_ipaddress($in{'sipfrom'}) ||
|
||||
(!$in{'sipfrom'} && !$in{'sipto'}) ||
|
||||
&check_ipaddress($in{'sipfrom'}) ||
|
||||
&error($text{'save_esipfrom'});
|
||||
!$in{'sipto'} || &check_ipaddress($in{'sipto'}) ||
|
||||
&error($text{'save_esipto'});
|
||||
@@ -406,9 +407,13 @@ else {
|
||||
|
||||
sub check_ipmask
|
||||
{
|
||||
return &to_ipaddress($_[0]) ||
|
||||
$_[0] =~ /^([0-9\.]+)\/([0-9\.]+)$/ &&
|
||||
&to_ipaddress("$1") &&
|
||||
(&check_ipaddress("$2") || ($2 =~ /^\d+$/ && $2 <= 32));
|
||||
foreach my $w (split(/,/, $_[0])) {
|
||||
my $ok = &to_ipaddress($w) ||
|
||||
$w =~ /^([0-9\.]+)\/([0-9\.]+)$/ &&
|
||||
&to_ipaddress("$1") &&
|
||||
(&check_ipaddress("$2") || ($2 =~ /^\d+$/ && $2 <= 32));
|
||||
return 0 if (!$ok);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
desc=Frox FTP Proxy
|
||||
category=servers
|
||||
os_support=*-linux freebsd
|
||||
longdesc=Configure Frox, a transparent proxy for FTP clients.
|
||||
desc_de=Frox FTP-Proxyserver
|
||||
desc_ca=Proxy FTP Frox
|
||||
desc_es=Frox - Proxy FTP
|
||||
@@ -10,4 +9,3 @@ desc_nl=Frox FTP Proxy-server
|
||||
desc_cz.UTF-8=Frox FTP-Proxy server
|
||||
desc_no=Frox FTP proxy tjener
|
||||
desc_ms_MY=Proksi FTP Frox
|
||||
longdesc_ms_MY=Mengkonfigurasi Frox, proksi telus untuk klien FTP.
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
|
||||
This can either be the path to a file to which the backup will be written,
|
||||
the path to a tape drive device (like <tt>/dev/st0</tt>), or a file or device
|
||||
on a remote host. For backups to a remote host to work, it must support the
|
||||
<tt>rsh</tt> protocol, which is not usually turned on by default for security
|
||||
reasons. <p>
|
||||
on a remote host. Backups to a remote system are done via the SSH protocol,
|
||||
or optionally the older insecure RSH protocol. <p>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
By default, the <tt>dump</tt> command will use the <tt>rsh</tt> command and
|
||||
protocol to backup to other servers. However, this field can be used to select
|
||||
a different command such as <tt>ssh</tt>, which is more secure and more
|
||||
commonly used. SSH will only work if the <tt>root</tt> user's SSH configuration
|
||||
allows passwordless logins from this system to the remote server. <p>
|
||||
commonly used. <p>
|
||||
|
||||
On Linux and BSD systems, you can also select the <tt>FTP</tt> option, which will
|
||||
use Webmin's built-in FTP client program to transfer the backup to or from
|
||||
|
||||
@@ -117,7 +117,7 @@ edit_header=$1 Dateisystemsicherungsdetails
|
||||
edit_header2=Backup-Zeitplan
|
||||
edit_header3=Backup-Optionen
|
||||
edit_restore=Wiederherstellung
|
||||
edit_return=dump
|
||||
edit_return=Sicherung
|
||||
edit_savenow=Speichern und jetzt sichern
|
||||
edit_special=Backup-Zeitplan
|
||||
edit_subject=Betreff der E-Mail
|
||||
|
||||
@@ -123,7 +123,7 @@ edit_enabled_yes=Enabled, at times chosen below..
|
||||
edit_enabled_af=Enabled, after:
|
||||
edit_savenow=Save and Backup Now
|
||||
edit_createnow=Create and Backup Now
|
||||
edit_return=dump
|
||||
edit_return=backup
|
||||
edit_email=Email scheduled output to
|
||||
edit_subject=Email message subject
|
||||
edit_restore=Restore ..
|
||||
|
||||
BIN
gray-theme/bind8/images/AAAA.gif
Normal file
BIN
gray-theme/bind8/images/AAAA.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
BIN
gray-theme/bind8/images/DMARC.gif
Normal file
BIN
gray-theme/bind8/images/DMARC.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
BIN
gray-theme/bind8/images/NSEC3PARAM.gif
Normal file
BIN
gray-theme/bind8/images/NSEC3PARAM.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -8,37 +8,4 @@ left_search=Busca:
|
||||
left_logs=Visualitza els Registres del Mòdul
|
||||
left_others=Altres
|
||||
|
||||
right_header0=Informació del Sistema
|
||||
right_host=Nom de host del sistema
|
||||
right_os=Sistema operatiu
|
||||
right_login=Identificat com a:
|
||||
right_from=Identificat des de:
|
||||
right_webmin=Versió Webmin
|
||||
right_usermin=Versió Usermin
|
||||
right_cpu=Càrrega mitjana de la CPU
|
||||
right_cpuinfo=Informació del processador
|
||||
right_cputype=$5, $8 nuclis
|
||||
right_load=$1 (1 min) $2 (5 mins) $3 (15 mins)
|
||||
right_cpuuse=Ús de la CPU
|
||||
right_cpustats=$1% usuari, $2% nucli, $4% E/S, $3% desocupada
|
||||
right_real=Memòria real
|
||||
right_virt=Memòria virtual
|
||||
right_procs=Processos en execució
|
||||
right_disk=Espai local en disc
|
||||
right_used=$1 total, $2 utilitzat
|
||||
right_out=$1 de $2
|
||||
right_quota=Ús del disc i quota
|
||||
right_header5=Informació del Compte
|
||||
right_uquota=Quota de disc i ús
|
||||
right_time=Hora del sistema
|
||||
right_uptime=En execució durant
|
||||
right_updays=$1 dies, $2 hores, $3 minuts
|
||||
right_uphours=$1 hores, $2 minuts
|
||||
right_upmins=$1 minuts
|
||||
right_kernel=Nucli i CPU
|
||||
right_kernelon=$1 $2 a $3
|
||||
right_updates=Actualitzacions de paquets
|
||||
right_upok=Tots els paquets instal·lats estan actualitzats
|
||||
right_upneed=Hi ha $1 actualitzacions de paquets disponibles
|
||||
right_upsec=Hi ha $1 actualitzacions de paquets disponibles, de les quals $2 són actualitzacions de seguretat
|
||||
__norefs=1
|
||||
|
||||
10
gray-theme/lang/no
Normal file
10
gray-theme/lang/no
Normal file
@@ -0,0 +1,10 @@
|
||||
__norefs=1
|
||||
left_feedback=Send tilbakemelding
|
||||
left_home=Systeminformasjon
|
||||
left_login=Brukernavn: $1
|
||||
left_logs=Vis modulens logger
|
||||
left_oc=Sponset av OpenCountry
|
||||
left_others=Andre
|
||||
left_search=Søk:
|
||||
left_search_usermin=Søk i Usermin:
|
||||
left_search_webmin=Søk i Webmin:
|
||||
@@ -9,10 +9,6 @@ our ($current_theme, $remote_user, %gconfig);
|
||||
our %text = &load_language($current_theme);
|
||||
my %gaccess = &get_module_acl(undef, "");
|
||||
|
||||
# Work out what modules and categories we have
|
||||
my @cats = &get_visible_modules_categories();
|
||||
my @modules = map { @{$_->{'modules'}} } @cats;
|
||||
|
||||
&popup_header();
|
||||
print <<EOF;
|
||||
<link rel="stylesheet" type="text/css" href="gray-left.css" />
|
||||
@@ -66,7 +62,7 @@ push(@leftmenu, &list_modules_webmin_menu());
|
||||
# Show module/help search form
|
||||
if ($gaccess{'webminsearch'}) {
|
||||
push(@leftmenu, { 'type' => 'input',
|
||||
'cgi' => '/webmin_search.cgi',
|
||||
'cgi' => $gconfig{'webprefix'}.'/webmin_search.cgi',
|
||||
'name' => 'search',
|
||||
'desc' => $text{'left_search'},
|
||||
'size' => 15 });
|
||||
@@ -192,7 +188,7 @@ foreach my $item (@$items) {
|
||||
"<font color='#000000'>$item->{'desc'}</font></a></div>";
|
||||
print "</div>\n";
|
||||
print "<div class='itemhidden' id='cat$c'>\n";
|
||||
show_menu_items_list($item->{'members'}, $indent+1);
|
||||
&show_menu_items_list($item->{'members'}, $indent+1);
|
||||
print "</div>\n";
|
||||
}
|
||||
elsif ($item->{'type'} eq 'text') {
|
||||
@@ -206,14 +202,15 @@ foreach my $item (@$items) {
|
||||
}
|
||||
elsif ($item->{'type'} eq 'input') {
|
||||
# For with an input of some kind
|
||||
print "<form action='$item->{'cgi'}' target=right>\n";
|
||||
my $cgi = add_webprefix($item->{'cgi'});
|
||||
print "<form action='$cgi' target=right>\n";
|
||||
foreach my $h (@{$item->{'hidden'}}) {
|
||||
print ui_hidden(@$h);
|
||||
}
|
||||
print "<div class='leftlink'>";
|
||||
print $item->{'desc'},"\n";
|
||||
print ui_textbox($item->{'name'}, $item->{'value'},
|
||||
$item->{'size'});
|
||||
$item->{'size'});
|
||||
if ($item->{'icon'}) {
|
||||
my $icon = add_webprefix($item->{'icon'});
|
||||
print "<input type=image src='$icon' ".
|
||||
|
||||
@@ -6,7 +6,7 @@ use warnings;
|
||||
require 'gray-theme/gray-theme-lib.pl';
|
||||
&ReadParse();
|
||||
&load_theme_library();
|
||||
our ($current_theme);
|
||||
our ($current_theme, %gconfig);
|
||||
our %text = &load_language($current_theme);
|
||||
my $bar_width = 300;
|
||||
|
||||
@@ -28,7 +28,9 @@ my @links = grep { $_->{'type'} eq 'link' } @info;
|
||||
@info = grep { $_->{'type'} ne 'link' } @info;
|
||||
if (@links) {
|
||||
my @linkshtml = map {
|
||||
&ui_link($_->{'link'}, $_->{'desc'}, undef,
|
||||
my $lnk = $_->{'link'};
|
||||
$lnk = $gconfig{'webprefix'}.$lnk if ($lnk =~ /^\//);
|
||||
&ui_link($lnk, $_->{'desc'}, undef,
|
||||
$_->{'target'} eq 'new' ? 'target=_blank' :
|
||||
$_->{'target'} eq 'window' ? 'target=_top' : '')
|
||||
} @links;
|
||||
@@ -108,6 +110,7 @@ print "</center>\n";
|
||||
sub bar_chart_three
|
||||
{
|
||||
my ($total, $used1, $used2, $used3) = @_;
|
||||
return "" if (!$total);
|
||||
my $rv;
|
||||
my $w1 = int($bar_width*$used1/$total)+1;
|
||||
my $w2 = int($bar_width*$used2/$total);
|
||||
|
||||
@@ -2,16 +2,17 @@
|
||||
# Icons copyright David Vignoni, all other theme elements copyright 2005-2007
|
||||
# Virtualmin, Inc.
|
||||
|
||||
$main::cloudmin_no_create_links = 1;
|
||||
$main::cloudmin_no_edit_buttons = 1;
|
||||
$main::cloudmin_no_global_links = 1;
|
||||
# Un-comment these when left.cgi is the same as in virtual-server-theme
|
||||
#$main::cloudmin_no_create_links = 1;
|
||||
#$main::cloudmin_no_edit_buttons = 1;
|
||||
#$main::cloudmin_no_global_links = 1;
|
||||
|
||||
$main::mailbox_no_addressbook_button = 1;
|
||||
$main::mailbox_no_folder_button = 1;
|
||||
#$main::mailbox_no_addressbook_button = 1;
|
||||
#$main::mailbox_no_folder_button = 1;
|
||||
|
||||
$main::basic_virtualmin_menu = 1;
|
||||
$main::nocreate_virtualmin_menu = 1;
|
||||
$main::nosingledomain_virtualmin_mode = 1;
|
||||
#$main::basic_virtualmin_menu = 1;
|
||||
#$main::nocreate_virtualmin_menu = 1;
|
||||
#$main::nosingledomain_virtualmin_mode = 1;
|
||||
|
||||
# Global state for wrapper
|
||||
# if 0, wrapper isn't on, add one and open it, if 1 close it, if 2+, subtract
|
||||
|
||||
@@ -22,3 +22,5 @@ Updated the API used by other modules to allow new actions to be created on MacO
|
||||
Converted commands in the module's API file to POD format, and added more details about each function.
|
||||
---- Changes since 1.540 ----
|
||||
Added support for the Upstart boot system, seen on Ubuntu 10 and later.
|
||||
---- Changes since 1.740 ----
|
||||
Added support for Launchd, as seen on newer MacOS X systems.
|
||||
|
||||
@@ -126,6 +126,11 @@ elsif ($init_mode eq "rc" || $init_mode eq "upstart" ||
|
||||
{ 'fork' => 1,
|
||||
'pidfile' => $var_directory."/miniserv.pid" });
|
||||
}
|
||||
elsif ($init_mode eq "launchd") {
|
||||
# Create launchd script
|
||||
&create_launchd_agent(&launchd_name($product),
|
||||
"$config_directory/start --nofork", 1);
|
||||
}
|
||||
|
||||
$config{'atboot_product'} = $product;
|
||||
&save_module_config();
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Creates some boot-time action
|
||||
|
||||
package server_manager;
|
||||
$main::no_acl_check++;
|
||||
package init;
|
||||
$ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin";
|
||||
$ENV{'WEBMIN_VAR'} ||= "/var/webmin";
|
||||
if ($0 =~ /^(.*\/)[^\/]+$/) {
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Disable some boot-time action
|
||||
|
||||
package server_manager;
|
||||
$main::no_acl_check++;
|
||||
package init;
|
||||
$ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin";
|
||||
$ENV{'WEBMIN_VAR'} ||= "/var/webmin";
|
||||
if ($0 =~ /^(.*\/)[^\/]+$/) {
|
||||
|
||||
77
init/edit_launchd.cgi
Executable file
77
init/edit_launchd.cgi
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Show a form for creating or editing a launchd agent
|
||||
|
||||
require './init-lib.pl';
|
||||
$access{'bootup'} || &error($text{'edit_ecannot'});
|
||||
&ReadParse();
|
||||
|
||||
if ($in{'new'}) {
|
||||
&ui_print_header(undef, $text{'launchd_title1'}, "");
|
||||
$u = { };
|
||||
}
|
||||
else {
|
||||
&ui_print_header(undef, $text{'launchd_title2'}, "");
|
||||
@systemds = &list_launchd_agents();
|
||||
($u) = grep { $_->{'name'} eq $in{'name'} } @systemds;
|
||||
$u || &error($text{'launchd_egone'});
|
||||
}
|
||||
|
||||
print &ui_form_start("save_launchd.cgi", "post");
|
||||
print &ui_hidden("new", $in{'new'});
|
||||
print &ui_hidden("name", $in{'name'}) if (!$in{'new'});
|
||||
print &ui_table_start($text{'launchd_header'}, undef, 2);
|
||||
|
||||
if ($in{'new'}) {
|
||||
# Service name
|
||||
print &ui_table_row($text{'launchd_name'},
|
||||
&ui_textbox("name", undef, 30));
|
||||
|
||||
# Server command and args
|
||||
print &ui_table_row($text{'launchd_start'},
|
||||
&ui_textarea("atstart", undef, 5, 80));
|
||||
|
||||
# Start at boot?
|
||||
print &ui_table_row($text{'upstart_boot'},
|
||||
&ui_yesno_radio("boot", 1));
|
||||
}
|
||||
else {
|
||||
# Service name (non-editable)
|
||||
print &ui_table_row($text{'launchd_name'},
|
||||
"<tt>$in{'name'}</tt>");
|
||||
|
||||
# Config file location
|
||||
print &ui_table_row($text{'launchd_file'},
|
||||
$u->{'file'} ? "<tt>$u->{'file'}</tt>"
|
||||
: "<i>$text{'launchd_nofile'}</i>");
|
||||
|
||||
if ($u->{'file'}) {
|
||||
# Config file contents
|
||||
$conf = &read_file_contents($u->{'file'});
|
||||
print &ui_table_row($text{'launchd_conf'},
|
||||
&ui_textarea("conf", $conf, 20, 80));
|
||||
}
|
||||
|
||||
# Current status
|
||||
print &ui_table_row($text{'launchd_status'},
|
||||
$u->{'status'} && $u->{'pid'} ?
|
||||
&text('systemd_status1', $u->{'pid'}) :
|
||||
$u->{'status'} ?
|
||||
$text{'systemd_status2'} :
|
||||
$text{'systemd_status0'});
|
||||
}
|
||||
|
||||
print &ui_table_end();
|
||||
if ($in{'new'}) {
|
||||
print &ui_form_end([ [ undef, $text{'create'} ] ]);
|
||||
}
|
||||
else {
|
||||
print &ui_form_end([ [ undef, $text{'save'} ],
|
||||
[ 'start', $text{'edit_startnow'} ],
|
||||
[ 'restart', $text{'edit_restartnow'} ],
|
||||
[ 'stop', $text{'edit_stopnow'} ],
|
||||
[ 'reload', $text{'edit_reloadnow2'} ],
|
||||
[ 'delete', $text{'delete'} ] ]);
|
||||
}
|
||||
|
||||
&ui_print_footer("", $text{'index_return'});
|
||||
|
||||
@@ -379,6 +379,41 @@ elsif ($init_mode eq "systemd" && $access{'bootup'}) {
|
||||
]);
|
||||
|
||||
}
|
||||
elsif ($init_mode eq "launchd" && $access{'bootup'}) {
|
||||
# Show launchd agents
|
||||
print &ui_form_start("mass_launchd.cgi", "post");
|
||||
@links = ( &select_all_link("d"),
|
||||
&select_invert_link("d"),
|
||||
&ui_link("edit_launchd.cgi?new=1", $text{'index_ladd'}) );
|
||||
print &ui_links_row(\@links);
|
||||
print &ui_columns_start([ "", $text{'index_lname'},
|
||||
$text{'index_uboot'},
|
||||
$text{'index_ustatus'}, ]);
|
||||
foreach $u (&list_launchd_agents()) {
|
||||
$l = "edit_launchd.cgi?name=".&urlize($u->{'name'});
|
||||
print &ui_columns_row([
|
||||
&ui_checkbox("d", $u->{'name'}, undef),
|
||||
&ui_link($l, $u->{'name'}),
|
||||
$u->{'boot'} ? $text{'yes'} :
|
||||
"<font color=#ff0000>$text{'no'}</font>",
|
||||
$u->{'status'} ? $text{'yes'} :
|
||||
"<font color=#ff0000>$text{'no'}</font>",
|
||||
]);
|
||||
}
|
||||
print &ui_columns_end();
|
||||
print &ui_links_row(\@links);
|
||||
print &ui_form_end([ [ "start", $text{'index_start'} ],
|
||||
[ "stop", $text{'index_stop'} ],
|
||||
[ "restart", $text{'index_restart'} ],
|
||||
undef,
|
||||
[ "addboot", $text{'index_addboot'} ],
|
||||
[ "delboot", $text{'index_delboot'} ],
|
||||
undef,
|
||||
[ "addboot_start", $text{'index_addboot_start'} ],
|
||||
[ "delboot_stop", $text{'index_delboot_stop'} ],
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
# reboot/shutdown buttons
|
||||
print &ui_hr();
|
||||
|
||||
256
init/init-lib.pl
256
init/init-lib.pl
@@ -28,7 +28,9 @@ use WebminCore;
|
||||
|
||||
This variable is set based on the bootup system in use. Possible values are :
|
||||
|
||||
=item osx - MacOSX hostconfig files
|
||||
=item osx - MacOSX hostconfig files, for older versions
|
||||
|
||||
=item launchd - MacOS Launchd, for newer versions
|
||||
|
||||
=item rc - FreeBSD 6+ RC files
|
||||
|
||||
@@ -38,14 +40,17 @@ This variable is set based on the bootup system in use. Possible values are :
|
||||
|
||||
=item win32 - Windows services
|
||||
|
||||
=item upstart - Upstart, seend on Ubuntu 11
|
||||
=item upstart - Upstart, seen on Ubuntu 11
|
||||
|
||||
=item systemd - SystemD, as seen on Fedora 16
|
||||
=item systemd - SystemD, seen on Fedora 16
|
||||
|
||||
=cut
|
||||
if ($config{'init_mode'}) {
|
||||
$init_mode = $config{'init_mode'};
|
||||
}
|
||||
elsif (&has_command("launchd")) {
|
||||
$init_mode = "launchd";
|
||||
}
|
||||
elsif ($config{'hostconfig'}) {
|
||||
$init_mode = "osx";
|
||||
}
|
||||
@@ -507,12 +512,13 @@ such as init.d, OSX and FreeBSD.
|
||||
=cut
|
||||
sub action_status
|
||||
{
|
||||
my ($name) = @_;
|
||||
if ($init_mode eq "upstart") {
|
||||
# Check upstart service status
|
||||
local $out = &backquote_command("initctl status ".
|
||||
quotemeta($_[0])." 2>&1");
|
||||
quotemeta($name)." 2>&1");
|
||||
if (!$?) {
|
||||
my $cfile = "/etc/init/$_[0].conf";
|
||||
my $cfile = "/etc/init/$name.conf";
|
||||
open(CONF, $cfile);
|
||||
while(<CONF>) {
|
||||
if (/^(#*)\s*start/) {
|
||||
@@ -525,7 +531,7 @@ if ($init_mode eq "upstart") {
|
||||
}
|
||||
elsif ($init_mode eq "systemd") {
|
||||
# Check systemd service status
|
||||
local $unit = $_[0];
|
||||
local $unit = $name;
|
||||
$unit .= ".service" if ($unit !~ /\.service$/);
|
||||
local $out = &backquote_command("systemctl show ".
|
||||
quotemeta($unit)." 2>&1");
|
||||
@@ -541,7 +547,7 @@ if ($init_mode eq "init" || $init_mode eq "upstart" ||
|
||||
local ($a, $exists, $starting, %daemon);
|
||||
foreach $a (&list_actions()) {
|
||||
local @a = split(/\s+/, $a);
|
||||
if ($a[0] eq $_[0]) {
|
||||
if ($a[0] eq $name) {
|
||||
$exists++;
|
||||
local @boot = &get_inittab_runlevel();
|
||||
foreach $s (&action_levels("S", $a[0])) {
|
||||
@@ -551,14 +557,14 @@ if ($init_mode eq "init" || $init_mode eq "upstart" ||
|
||||
}
|
||||
}
|
||||
if ($starting && $config{'daemons_dir'} &&
|
||||
&read_env_file("$config{'daemons_dir'}/$_[0]", \%daemon)) {
|
||||
&read_env_file("$config{'daemons_dir'}/$name", \%daemon)) {
|
||||
$starting = lc($daemon{'ONBOOT'}) eq 'yes' ? 1 : 0;
|
||||
}
|
||||
return !$exists ? 0 : $starting ? 2 : 1;
|
||||
}
|
||||
elsif ($init_mode eq "local") {
|
||||
# Look for entry in rc.local
|
||||
local $fn = "$module_config_directory/$_[0].sh";
|
||||
local $fn = "$module_config_directory/$name.sh";
|
||||
local $cmd = "$fn start";
|
||||
open(LOCAL, $config{'local_script'});
|
||||
while(<LOCAL>) {
|
||||
@@ -570,25 +576,31 @@ elsif ($init_mode eq "local") {
|
||||
}
|
||||
elsif ($init_mode eq "win32") {
|
||||
# Look for a win32 service, enabled at boot
|
||||
local ($svc) = &list_win32_services($_[0]);
|
||||
local ($svc) = &list_win32_services($name);
|
||||
return !$svc ? 0 :
|
||||
$svc->{'boot'} == 2 ? 2 : 1;
|
||||
}
|
||||
elsif ($init_mode eq "rc") {
|
||||
# Look for an RC script
|
||||
local @rcs = &list_rc_scripts();
|
||||
local ($rc) = grep { $_->{'name'} eq $_[0] } @rcs;
|
||||
local ($rc) = grep { $_->{'name'} eq $name } @rcs;
|
||||
return !$rc ? 0 :
|
||||
$rc->{'enabled'} ? 2 : 1;
|
||||
}
|
||||
elsif ($init_mode eq "osx") {
|
||||
# Look for a hostconfig entry
|
||||
local $ucname = uc($_[0]);
|
||||
local $ucname = uc($name);
|
||||
local %hc;
|
||||
&read_env_file($config{'hostconfig'}, \%hc);
|
||||
return $hc{$ucname} eq '-YES-' ? 2 :
|
||||
$hc{$ucname} eq '-NO-' ? 1 : 0;
|
||||
}
|
||||
elsif ($init_mode eq "launchd") {
|
||||
local @agents = &list_launchd_agents();
|
||||
local ($agent) = grep { $_->{'name'} eq &launchd_name($name) } @agents;
|
||||
return !$agent ? 0 :
|
||||
$agent->{'boot'} ? 2 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
=head2 enable_at_boot(action, description, startcode, stopcode, statuscode, &opts)
|
||||
@@ -970,6 +982,31 @@ elsif ($init_mode eq "osx") {
|
||||
&write_env_file($config{'hostconfig'}, \%hc);
|
||||
&unlock_file($config{'hostconfig'});
|
||||
}
|
||||
elsif ($init_mode eq "launchd") {
|
||||
# Create and if necessary enable a launchd agent
|
||||
my $name = &launchd_name($_[0]);
|
||||
my @agents = &list_launchd_agents();
|
||||
my ($agent) = grep { $_->{'name'} eq $name } @agents;
|
||||
if (!$agent) {
|
||||
# Need to create script
|
||||
&create_launchd_agent($name, $_[1], 1);
|
||||
}
|
||||
else {
|
||||
# Just enable at boot
|
||||
my $out = &read_file_contents($agent->{'file'});
|
||||
if ($out =~ /<key>RunAtLoad<\/key>/i) {
|
||||
# Just fix setting
|
||||
$out =~ s/<key>RunAtLoad<\/key>\s*<(true|false)\/>/<key>RunAtLoad<\/key>\n<true\/>/;
|
||||
}
|
||||
else {
|
||||
# Defaults to false, so need to add before </plist>
|
||||
$out =~ s/<\/plist>/<key>RunAtLoad<\/key>\n<true\/>\n<\/plist>/;
|
||||
}
|
||||
&open_lock_tempfile(PLIST, ">$agent->{'file'}");
|
||||
&print_tempfile(PLIST, $out);
|
||||
&close_tempfile(PLIST);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
=head2 disable_at_boot(action)
|
||||
@@ -981,6 +1018,7 @@ touched, so it can be re-enabled with the enable_at_boot function.
|
||||
=cut
|
||||
sub disable_at_boot
|
||||
{
|
||||
my ($name) = @_;
|
||||
local $st = &action_status($_[0]);
|
||||
return if ($st != 2); # not currently starting
|
||||
local $unit = $_[0];
|
||||
@@ -1102,6 +1140,18 @@ elsif ($init_mode eq "osx") {
|
||||
}
|
||||
&unlock_file($config{'hostconfig'});
|
||||
}
|
||||
elsif ($init_mode eq "launchd") {
|
||||
# Adjust plist file to not run at boot
|
||||
my @agents = &list_launchd_agents();
|
||||
my ($a) = grep { $_->{'name'} eq &launchd_name($name) } @agents;
|
||||
if ($a && $a->{'file'}) {
|
||||
my $out = &read_file_contents($a->{'file'});
|
||||
$out =~ s/<key>RunAtLoad<\/key>\s*<(true|false)\/>/<key>RunAtLoad<\/key>\n<false\/>/;
|
||||
&open_lock_tempfile(PLIST, ">$a->{'file'}");
|
||||
&print_tempfile(PLIST, $out);
|
||||
&close_tempfile(PLIST);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
=head2 delete_at_boot(name)
|
||||
@@ -1122,6 +1172,10 @@ elsif ($mode eq "upstart") {
|
||||
# Delete upstart service
|
||||
&delete_upstart_service($name);
|
||||
}
|
||||
elsif ($mode eq "launchd") {
|
||||
# Delete launchd service
|
||||
&delete_launchd_agent(&launchd_name($name));
|
||||
}
|
||||
elsif ($mode eq "init") {
|
||||
# Delete init script links and init.d file
|
||||
foreach my $a (&action_levels('S', $name)) {
|
||||
@@ -1204,6 +1258,10 @@ elsif ($action_mode eq "systemd") {
|
||||
# Start systemd service
|
||||
return &start_systemd_service($name);
|
||||
}
|
||||
elsif ($action_mode eq "launchd") {
|
||||
# Start launchd service
|
||||
return &start_launchd_agent(&launchd_name($name));
|
||||
}
|
||||
else {
|
||||
return (0, "Bootup mode $action_mode not supported");
|
||||
}
|
||||
@@ -1248,6 +1306,10 @@ elsif ($action_mode eq "systemd") {
|
||||
# Stop systemd service
|
||||
return &stop_systemd_service($name);
|
||||
}
|
||||
elsif ($action_mode eq "launchd") {
|
||||
# Stop launchd service
|
||||
return &stop_launchd_agent(&launchd_name($name));
|
||||
}
|
||||
else {
|
||||
return (0, "Bootup mode $action_mode not supported");
|
||||
}
|
||||
@@ -1302,7 +1364,13 @@ elsif ($action_mode eq "upstart") {
|
||||
elsif ($action_mode eq "systemd") {
|
||||
# Check with systemd if it is running
|
||||
my @systemds = &list_systemd_services();
|
||||
my ($u) = grep { $_->{'name'} eq $name } @systemds;
|
||||
my ($u) = grep { $_->{'name'} eq $name ||
|
||||
$_->{'name'} eq $name.".service" } @systemds;
|
||||
return !$u ? -1 : $u->{'status'} ? 1 : 0;
|
||||
}
|
||||
elsif ($action_mode eq "launchd") {
|
||||
my @agents = &list_launchd_agents();
|
||||
my ($a) = grep { $_->{'name'} eq &launchd_name($name) } @agents;
|
||||
return !$u ? -1 : $u->{'status'} ? 1 : 0;
|
||||
}
|
||||
else {
|
||||
@@ -1934,6 +2002,7 @@ sub list_systemd_services
|
||||
my $out = &backquote_command("systemctl list-units --full --all");
|
||||
&error("Failed to list systemd units : $out") if ($?);
|
||||
foreach my $l (split(/\r?\n/, $out)) {
|
||||
$l =~ s/^[^a-z0-9\-\_\.]+//i;
|
||||
my ($unit, $loaded, $active, $sub, $desc) = split(/\s+/, $l, 5);
|
||||
my $a = $unit;
|
||||
$a =~ s/\.service$//;
|
||||
@@ -2191,9 +2260,12 @@ sub shutdown_system
|
||||
&system_logged("$config{'shutdown_command'} >$null_file 2>$null_file");
|
||||
}
|
||||
|
||||
# get_action_args(filename)
|
||||
# Returns the args that this action script appears to support, like stop, start
|
||||
# and status.
|
||||
=head2 get_action_args(filename)
|
||||
|
||||
Returns the args that this action script appears to support, like stop, start
|
||||
and status.
|
||||
|
||||
=cut
|
||||
sub get_action_args
|
||||
{
|
||||
my ($file) = @_;
|
||||
@@ -2208,9 +2280,12 @@ close(FILE);
|
||||
return \%hasarg;
|
||||
}
|
||||
|
||||
# action_running(filename)
|
||||
# Assuming some init.d action supports the status parameter, returns a 1 if
|
||||
# running, 0 if not, or -1 if unknown
|
||||
=head2 action_running(filename)
|
||||
|
||||
Assuming some init.d action supports the status parameter, returns a 1 if
|
||||
running, 0 if not, or -1 if unknown
|
||||
|
||||
=cut
|
||||
sub action_running
|
||||
{
|
||||
my ($file) = @_;
|
||||
@@ -2233,4 +2308,147 @@ elsif ($out =~ /stopped/i) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
=head2 list_launchd_agents()
|
||||
|
||||
Returns an array of hash refs, each of which is a launchd daemon/agent
|
||||
|
||||
=cut
|
||||
sub list_launchd_agents
|
||||
{
|
||||
my @rv;
|
||||
|
||||
# Get the initial list of actions
|
||||
my $out = &backquote_command("launchctl list");
|
||||
&error("Failed to list launchd agents : $out") if ($?);
|
||||
foreach my $l (split(/\r?\n/, $out)) {
|
||||
next if ($l =~ /^PID/); # Header line
|
||||
my ($pid, $status, $label) = split(/\s+/, $l);
|
||||
next if ($label =~ /^0x/); # Not really a launchd job
|
||||
next if ($label =~ /\.peruser\./); # Skip user-owned actions
|
||||
push(@rv, { 'name' => $label,
|
||||
'status' => $pid eq "-" ? 0 : 1,
|
||||
'pid' => $pid eq "-" ? undef : $pid, });
|
||||
}
|
||||
|
||||
# Build map from plist files to agents
|
||||
my @dirs = ("/Library/LaunchAgents",
|
||||
"/Library/LaunchDaemons",
|
||||
"/System/Library/LaunchAgents",
|
||||
"/System/Library/LaunchDaemons");
|
||||
my (%pmap, %runatload);
|
||||
foreach my $dir (@dirs) {
|
||||
foreach my $file (glob("$dir/*.plist")) {
|
||||
my $plist = &read_file_contents($file);
|
||||
if ($plist =~ /<key>Label<\/key>\s*<string>([^<]+)/i) {
|
||||
$pmap{$1} = $file;
|
||||
}
|
||||
if ($plist =~ /<key>RunAtLoad<\/key>\s*<(true|false)\/>/i) {
|
||||
$runatload{$file} = $1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Get details on each one
|
||||
foreach my $a (@rv) {
|
||||
my $out = &backquote_command("launchctl list ".quotemeta($a->{'name'}));
|
||||
my %attrs;
|
||||
foreach my $l (split(/\r?\n/, $out)) {
|
||||
if ($l =~ /"(\S+)"\s*=\s*"([^"]*)";/ ||
|
||||
$l =~ /"(\S+)"\s*=\s*(\S+);/) {
|
||||
$attrs{lc($1)} = $2;
|
||||
}
|
||||
}
|
||||
$a->{'start'} = $attrs{'program'};
|
||||
$a->{'file'} = $pmap{$a->{'name'}};
|
||||
$a->{'boot'} = $runatload{$a->{'file'}} eq 'true';
|
||||
}
|
||||
|
||||
return @rv;
|
||||
}
|
||||
|
||||
=head2 create_launchd_agent(name, start-script, boot-flag)
|
||||
|
||||
Creates a new local launchd agent
|
||||
|
||||
=cut
|
||||
sub create_launchd_agent
|
||||
{
|
||||
my ($name, $start, $boot) = @_;
|
||||
my $file = "/Library/LaunchDaemons/".$name.".plist";
|
||||
my $plist = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n".
|
||||
"<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n".
|
||||
"<plist version=\"1.0\">\n".
|
||||
"<dict>\n".
|
||||
"<key>Label</key>\n";
|
||||
$plist .= "<string>$name</string>\n";
|
||||
$plist .= "<key>ProgramArguments</key>\n";
|
||||
$plist .= "<array>\n";
|
||||
foreach my $a (&split_quoted_string($start)) {
|
||||
$plist .= "<string>$a</string>\n";
|
||||
}
|
||||
$plist .= "</array>\n";
|
||||
$plist .= "<key>RunAtLoad</key>\n";
|
||||
$plist .= ($boot ? "<true/>\n" : "<false/>\n");
|
||||
$plist .= "<key>KeepAlive</key>\n";
|
||||
$plist .= "<false/>\n";
|
||||
$plist .= "</dict>\n";
|
||||
$plist .= "</plist>\n";
|
||||
&open_lock_tempfile(PLIST, ">$file");
|
||||
&print_tempfile(PLIST, $plist);
|
||||
&close_tempfile(PLIST);
|
||||
my $out = &backquote_logged("launchctl load ".quotemeta($file)." 2>&1");
|
||||
&error("Failed to load plist : $out") if ($?);
|
||||
}
|
||||
|
||||
=head2 delete_launchd_agent(name)
|
||||
|
||||
Stop and remove the agent with some name
|
||||
|
||||
=cut
|
||||
sub delete_launchd_agent
|
||||
{
|
||||
my ($name) = @_;
|
||||
&system_logged("launchctl stop ".quotemeta($name)." 2>&1");
|
||||
&system_logged("launchctl remove ".quotemeta($name)." 2>&1");
|
||||
my ($a) = grep { $_->{'name'} eq $name } &list_launchd_agents();
|
||||
if ($a && $a->{'file'} && -f $a->{'file'}) {
|
||||
&system_logged("launchctl unload ".quotemeta($a->{'file'})." 2>&1");
|
||||
&unlink_logged($a->{'file'});
|
||||
}
|
||||
}
|
||||
|
||||
=head2 stop_launchd_agent(name)
|
||||
|
||||
Kill the launchd daemon with some name
|
||||
|
||||
=cut
|
||||
sub stop_launchd_agent
|
||||
{
|
||||
my ($name) = @_;
|
||||
my $out = &backquote_logged(
|
||||
"launchctl stop ".quotemeta($name)." 2>&1 </dev/null");
|
||||
return (!$?, $out);
|
||||
}
|
||||
|
||||
=head2 start_launchd_agent(name)
|
||||
|
||||
Startup the launchd daemon with some name
|
||||
|
||||
=cut
|
||||
sub start_launchd_agent
|
||||
{
|
||||
my ($name) = @_;
|
||||
my $out = &backquote_logged(
|
||||
"launchctl start ".quotemeta($name)." 2>&1 </dev/null");
|
||||
return (!$?, $out);
|
||||
}
|
||||
|
||||
# launchd_name(name)
|
||||
# If an action name isn't fully qualified, prepend com.webmin to it
|
||||
sub launchd_name
|
||||
{
|
||||
my ($name) = @_;
|
||||
return $name =~ /\./ ? $name : "com.webmin.".$name;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
@@ -62,7 +62,9 @@ index_delboot_stop=Jetzt stoppen & zur Bootzeit deaktivieren
|
||||
index_desc=Beschreibung
|
||||
index_downscript=Gleichfalls wird das Skript $1, welches unten aufgeführt ist, beim Herunterfahren des Rechners ausgeführt. Sie können hier eigene Kommandos einfügen um beispielsweise sicher zu stellen, daß bestimmte Daemons oder Server sauber gestoppt werden.
|
||||
index_editconfig=Bearbeite die $1 Datei manuell
|
||||
index_ladd=Erstelle einen neuen launchd Agenten.
|
||||
index_levels=Starte in Runlevels
|
||||
index_lname=Agentname
|
||||
index_mode=Boot-System : $1
|
||||
index_order=Reihenfolge
|
||||
index_provides=bietet
|
||||
@@ -143,6 +145,7 @@ mass_ustarting=Starte Dienst $1 ..
|
||||
mass_ustop=Stoppe Dienste
|
||||
mass_ustopping=Stoppe Dienst $1 ..
|
||||
mode_init=SysV init
|
||||
mode_launchd=LaunchD
|
||||
mode_local=Single Boot Skript
|
||||
mode_osx=Mac OS X
|
||||
mode_rc=FreeBSD RC Skripte
|
||||
|
||||
25
init/lang/en
25
init/lang/en
@@ -50,6 +50,8 @@ index_ustatus=Running now?
|
||||
index_uadd=Create a new upstart service.
|
||||
index_sadd=Create a new systemd service.
|
||||
index_always=Always
|
||||
index_ladd=Create a new launchd agent.
|
||||
index_lname=Agent name
|
||||
|
||||
edit_title=Edit Action
|
||||
create_title=Create Action
|
||||
@@ -77,6 +79,7 @@ edit_stopat=Stop at
|
||||
edit_startnow=Start Now
|
||||
edit_stopnow=Stop Now
|
||||
edit_restartnow=Restart Now
|
||||
edit_reloadnow2=Re-Read Config File
|
||||
edit_condrestartnow=Restart If Needed
|
||||
edit_reloadnow=Reload Now
|
||||
edit_statusnow=Show Status
|
||||
@@ -187,6 +190,7 @@ mode_win32=Windows services
|
||||
mode_rc=FreeBSD RC scripts
|
||||
mode_upstart=Upstart
|
||||
mode_systemd=Systemd
|
||||
mode_launchd=LaunchD
|
||||
|
||||
upstart_title1=Create Upstart Service
|
||||
upstart_title2=Edit Upstart Service
|
||||
@@ -236,4 +240,25 @@ systemd_return=systemd service
|
||||
systemd_econf=No systemd configuration entered
|
||||
systemd_estart=Missing commands to run on startup
|
||||
|
||||
launchd_title1=Create Launchd Agent
|
||||
launchd_title2=Edit Launchd Agent
|
||||
launchd_egone=Agent no longer exists!
|
||||
launchd_header=Launchd service details
|
||||
launchd_name=Agent name
|
||||
launchd_file=Configuration file
|
||||
launchd_nofile=Not found!
|
||||
launchd_start=Server command
|
||||
launchd_conf=Launchd configuration
|
||||
launchd_boot=Start at boot time?
|
||||
launchd_status=Current status
|
||||
launchd_status0=Not running
|
||||
launchd_status1=Running with PID $1
|
||||
launchd_status2=Running
|
||||
launchd_err=Failed to save launchd agent
|
||||
launchd_ename=Missing or invalid-lookup launchd agent name
|
||||
launchd_eclash=An agent with the same name already exists
|
||||
launchd_return=launchd agent
|
||||
launchd_econf=No launchd configuration entered
|
||||
launchd_estart=Missing server command
|
||||
|
||||
__norefs=1
|
||||
|
||||
69
init/mass_launchd.cgi
Executable file
69
init/mass_launchd.cgi
Executable file
@@ -0,0 +1,69 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Start or stop a bunch of launchd services
|
||||
|
||||
require './init-lib.pl';
|
||||
&ReadParse();
|
||||
@sel = split(/\0/, $in{'d'});
|
||||
@sel || &error($text{'mass_enone'});
|
||||
|
||||
$start = 1 if ($in{'start'} || $in{'addboot_start'});
|
||||
$stop = 1 if ($in{'stop'} || $in{'delboot_stop'});
|
||||
$restart = 1 if ($in{'restart'} || $in{'delboot_restart'});
|
||||
$enable = 1 if ($in{'addboot'} || $in{'addboot_start'});
|
||||
$disable = 1 if ($in{'delboot'} || $in{'delboot_stop'});
|
||||
|
||||
&ui_print_unbuffered_header(undef, $start || $enable ? $text{'mass_ustart'}
|
||||
: $text{'mass_ustop'}, "");
|
||||
|
||||
if ($start || $stop || $restart) {
|
||||
# Starting or stopping a bunch of services
|
||||
$access{'bootup'} || &error($text{'ss_ecannot'});
|
||||
foreach $s (@sel) {
|
||||
if ($start) {
|
||||
print &text('mass_ustarting', "<tt>$s</tt>"),"<p>\n";
|
||||
($ok, $out) = &start_action($s);
|
||||
}
|
||||
elsif ($stop) {
|
||||
print &text('mass_ustopping', "<tt>$s</tt>"),"<p>\n";
|
||||
($ok, $out) = &stop_action($s);
|
||||
}
|
||||
elsif ($restart) {
|
||||
print &text('mass_urestarting', "<tt>$s</tt>"),"<p>\n";
|
||||
($ok, $out) = &restart_action($s);
|
||||
}
|
||||
print "<pre>$out</pre>";
|
||||
if (!$ok) {
|
||||
print $text{'mass_failed'},"<p>\n";
|
||||
}
|
||||
else {
|
||||
print $text{'mass_ok'},"<p>\n";
|
||||
}
|
||||
}
|
||||
&webmin_log($start ? 'massstart' : $stop ? 'massstop' : 'massrestart',
|
||||
'launchd', join(" ", @sel));
|
||||
}
|
||||
|
||||
if ($enable || $disable) {
|
||||
# Enable or disable at boot
|
||||
$access{'bootup'} == 1 || &error($text{'edit_ecannot'});
|
||||
foreach $b (@sel) {
|
||||
if ($enable) {
|
||||
print &text('mass_uenable', "<tt>$b</tt>"),"<p>\n";
|
||||
&enable_at_boot($b);
|
||||
}
|
||||
else {
|
||||
print &text('mass_udisable', "<tt>$b</tt>"),"<p>\n";
|
||||
&disable_at_boot($b);
|
||||
}
|
||||
}
|
||||
&webmin_log($enable ? 'massenable' : 'massdisable', 'launchd',
|
||||
join(" ", @sel));
|
||||
}
|
||||
|
||||
if ($in{'return'}) {
|
||||
&ui_print_footer("edit_launchd.cgi?name=".&urlize($in{'return'}),
|
||||
$text{'launchd_return'});
|
||||
}
|
||||
else {
|
||||
&ui_print_footer("", $text{'index_return'});
|
||||
}
|
||||
59
init/save_launchd.cgi
Executable file
59
init/save_launchd.cgi
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Create, update or delete a launchd service
|
||||
|
||||
require './init-lib.pl';
|
||||
&error_setup($text{'launchd_err'});
|
||||
$access{'bootup'} || &error($text{'edit_ecannot'});
|
||||
&ReadParse();
|
||||
@launchds = &list_launchd_agents();
|
||||
|
||||
# Get the service
|
||||
if (!$in{'new'}) {
|
||||
($u) = grep { $_->{'name'} eq $in{'name'} } @launchds;
|
||||
$u || &error($text{'launchd_egone'});
|
||||
}
|
||||
|
||||
if ($in{'start'} || $in{'stop'} || $in{'restart'}) {
|
||||
# Just redirect to the start page
|
||||
&redirect("mass_launchd.cgi?d=".&urlize($in{'name'})."&".
|
||||
($in{'start'} ? "start=1" :
|
||||
$in{'restart'} ? "restart=1" : "stop=1").
|
||||
"&return=".&urlize($in{'name'}));
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($in{'delete'}) {
|
||||
# Delete the service
|
||||
&delete_launchd_agent($in{'name'});
|
||||
&webmin_log("delete", "launchd", $in{'name'});
|
||||
}
|
||||
elsif ($in{'reload'}) {
|
||||
# Re-load the service from its config file
|
||||
&system_logged("launchctl unload ".quotemeta($u->{'file'})." 2>&1");
|
||||
&system_logged("launchctl load ".quotemeta($u->{'file'})." 2>&1");
|
||||
&webmin_log("reload", "launchd", $in{'name'});
|
||||
}
|
||||
elsif ($in{'new'}) {
|
||||
# Validate inputs and check for clash
|
||||
$in{'name'} =~ /^[a-z0-9\.\_\-]+$/i ||
|
||||
&error($text{'launchd_ename'});
|
||||
($clash) = grep { $_->{'name'} eq $in{'name'} } @launchds;
|
||||
$clash && &error($text{'launchd_eclash'});
|
||||
$in{'atstart'} =~ /\S/ || &error($text{'launchd_estart'});
|
||||
|
||||
# Create the config file
|
||||
&create_launchd_agent($in{'name'}, $in{'atstart'}, $in{'boot'});
|
||||
|
||||
&webmin_log("create", "launchd", $in{'name'});
|
||||
}
|
||||
else {
|
||||
# Just save the config file
|
||||
$in{'conf'} =~ /\S/ || &error($text{'launchd_econf'});
|
||||
$in{'conf'} =~ s/\r//g;
|
||||
&open_lock_tempfile(CONF, ">$u->{'file'}");
|
||||
&print_tempfile(CONF, $in{'conf'});
|
||||
&close_tempfile(CONF);
|
||||
&webmin_log("modify", "launchd", $in{'name'});
|
||||
}
|
||||
&redirect("");
|
||||
|
||||
@@ -186,6 +186,11 @@ while(<FILE>) {
|
||||
$rule->{'proto'} = shift(@w);
|
||||
}
|
||||
|
||||
# Skip inet keyword, which as far as I know does nothing
|
||||
if ($w[0] eq "inet") {
|
||||
shift(@w);
|
||||
}
|
||||
|
||||
# Parse from/to section
|
||||
if ($w[0] eq "all") {
|
||||
shift(@w);
|
||||
|
||||
@@ -284,7 +284,7 @@ sub get_ipsec_version
|
||||
{
|
||||
local $out = `$config{'ipsec'} --version 2>&1`;
|
||||
${$_[0]} = $out;
|
||||
return $out =~ /(FreeS\/WAN|Openswan|StrongSWAN)\s+([^ \n\(]+)/i ? ($2,$1) : (undef);
|
||||
return $out =~ /(FreeS\/WAN|Openswan|StrongSWAN|Libreswan)\s+([^ \n\(]+)/i ? ($2,$1) : (undef);
|
||||
}
|
||||
|
||||
# got_secret()
|
||||
|
||||
@@ -3,12 +3,50 @@ check_eserver=Das iSCSI-Server-Programm $1 wurde nicht auf Ihrem System gefunden
|
||||
check_etargets=Die iSCSI-Server-Konfigurationsdatei $1 wurde nicht auf Ihrem System gefunden.
|
||||
desc_device=Gerätekombination $1
|
||||
desc_extent=Gerät zu freigeben $1
|
||||
desc_target=Freigab target $1
|
||||
desc_target=Freigabe target $1
|
||||
device_create=Erstelle Geräte-Kombination
|
||||
device_derr=Fehlgeschlagen Geräte-Kombination zu löschen
|
||||
device_edit=Editiere Geräte-Kombination
|
||||
device_eextents=Keine Mitglieder-Geräte ausgewählt
|
||||
device_egone=Geräte-Kombination $1 existiert nicht!
|
||||
device_einuse=Diese Gerätekombination kann nicht gelöscht werden, da es durch $1 im Gebrauch ist
|
||||
device_err=Fehlgeschlagen beim Speichern von Gerätekombination
|
||||
device_eself=Eines der Mitgliedsgeräte, welches ausgewählt wurde, enthält dieses Gerät!
|
||||
device_extents=Mitglieder-Geräte
|
||||
device_got=Mitglieder-Geräte
|
||||
device_header=Details an Geräte-Kombinationen
|
||||
device_mode=Kombination-Typ
|
||||
device_name=Gerät-Kombination-Name
|
||||
device_poss=Alle verfügbaren Geräte
|
||||
device_rusure=Sind Sie sicher, dass Sie die Gerätekombination $1 löschen wollen? Der Inhalt wird beibehalten, aber es wird nicht mehr iSCSI Clients zugänglich sein.
|
||||
device_sure=Lösche Gerät-Kombination
|
||||
devices_add=Füge eine neue Gerätekombination hinzu.
|
||||
devices_delete=Lösche ausgewählte Kombinationen
|
||||
devices_denone=Nicht ausgewählt
|
||||
devices_derr=Fehlgeschlagen Geräte-Kombination zu löschen
|
||||
devices_drusure=Sind Sie sicher, dass Sie die folgenden Gerätekombinationen entfernen möchten : $1? Der Inhalt bleibt erhalten, aber es wird nicht mehr für iSCSI Clients zugänglich sein.
|
||||
devices_einuse=Kombination $1 kann nicht gelöscht werden, da es durch $2 im Gebrauch ist
|
||||
devices_extents=Mitgliedergeräte
|
||||
devices_mode=Kombinationstyp
|
||||
devices_mode_raid0=Linear (RAID0)
|
||||
devices_mode_raid1=Gespiegelt (RAID1)
|
||||
devices_name=Kombinationsname
|
||||
devices_none=Keine Gerätekombinationen wurden erstellt.
|
||||
devices_return=Liste an Geräte-Kombinationen
|
||||
devices_sure=Lösche Geräte-Kombinationen
|
||||
devices_title=Geräte-Kombinationen
|
||||
extent_create=Erstelle Gerät zum teilen
|
||||
extent_derr=Fehlgeschlagen Gerät zum teilen zu löschen
|
||||
extent_device=Datei oder Festplattengerät zum teilen
|
||||
extent_edit=Editiere Gerät zum teilen
|
||||
extent_egone=Gerät zum teilen $1 existiert nicht!
|
||||
extent_einuse=Dieses Gerät kann nicht gelöscht werden, da es durch $1 im Gebrauch ist
|
||||
extent_eother=Datei zum freigeben existiert nicht
|
||||
extent_err=Fehlgeschlagen Gerät zum teilen zu speichern
|
||||
extent_esize=Größe des extent muss eine Zahl sein
|
||||
extent_esizemax=Ende der extent darf nicht größer als der Gerätegröße von $1 sein
|
||||
extent_estart=Start des extent muss eine Zahl sein
|
||||
extent_header=Details des Gerätes zum teilen
|
||||
extent_lv=LVM VG $1, LV $2
|
||||
extent_lvm=LVM logisches Volume
|
||||
extent_md=RAID Gerät $1
|
||||
@@ -16,13 +54,26 @@ extent_name=Gerätename
|
||||
extent_other=Andere Datei oder Gerät
|
||||
extent_part=Logische Festplattenpartition
|
||||
extent_raid=RAID Gerät
|
||||
extent_rusure=Sind Sie sicher, dass Sie das gemeinsam genutzte Gerät $1 löschen möchten? Der Inhalt wird beibehalten, aber es wird nicht mehr für iSCSI Clients zugänglich sein.
|
||||
extent_size=Größe des extent zum Teilen
|
||||
extent_size_def0=Angegebene Größe
|
||||
extent_size_def1=Gesamte Datei oder Gerät
|
||||
extent_start=Start des extent zum Teilen
|
||||
extent_sure=Lösche Gerät
|
||||
extents_add=Füge ein neues Gerät zum Teilen hinzu.
|
||||
extents_delete=Lösche ausgewählte Geräte
|
||||
extents_denone=Nichts ausgewählt
|
||||
extents_derr=Fehlgeschlagen Geräte zu löschen
|
||||
extents_drusure=Sind Sie sicher, dass Sie die folgenden Geräte entfernen möchten: $1? Der Inhalt bleibt erhalten, aber sie werden nicht mehr für iSCSI Clients zugänglich sein.
|
||||
extents_einuse=Gerät $1 kann nicht gelöscht werden, da es durch $2 im Gebrauch ist
|
||||
extents_file=Datei oder Gerätepfad
|
||||
extents_name=Gerätename
|
||||
extents_none=Keine Geräte zum Teilen wurden bisher erstellt.
|
||||
extents_return=Liste an Geräte zum teilen
|
||||
extents_size=Größe des extent
|
||||
extents_start=Start des extent
|
||||
extents_sure=Lösche Geräte
|
||||
extents_title=Gerät zum Teilen
|
||||
index_atboot=Beim Booten starten?
|
||||
index_atbootdesc=Ändern diese Option, um zu kontrollieren, ob die iSCSI-Server beim Systemstart gestartet wird oder nicht. Wenn es aktuelle nicht beim Booten gestartet und "Ja" gewählt wird, wird ein neues Init-Skript erstellt werden.
|
||||
index_clink=Vielleicht ist es nicht installiert, oder Ihre <a href='$1'>Modulkonfiguration</a> ist falsch.
|
||||
@@ -35,13 +86,22 @@ index_stop=iSCSI-Server stoppen
|
||||
index_stopdesc=Klicke auf diese Schlatfläche, um den Betrieb von iSCSI-Server zu stoppen. Alle freigegebenen Geräte werden für Clients nicht mehr zugänglich sein.
|
||||
index_title=iSCSI-Server
|
||||
log_atboot=iSCSI-Server beim Booten aktiviert
|
||||
log_create_device=Gerätekombination $1 erstellt
|
||||
log_create_extent=Gerät zum Teilen $1 erstellt
|
||||
log_create_target=Freigabe target $1 ertellt
|
||||
log_create_user=iSCSI Benutzer $1 erstellt
|
||||
log_delboot=iSCSI-Server beim Booten deaktivieren
|
||||
log_delete_device=Gerätekombination $ 1 gelöscht
|
||||
log_delete_devices=$1 Gerätekombinationen gelöscht
|
||||
log_delete_extent=Gerät zum Teilen $1 gelöscht
|
||||
log_delete_extents=$1 Geräte zum Teilen gelöscht
|
||||
log_delete_target=Sharing Ziel $1 gelöscht
|
||||
log_delete_targets=$1 Freigabe targets
|
||||
log_delete_user=iSCSI Benutzer $1 gelöscht
|
||||
log_delete_users=$1 iSCSI Benutzer gelöscht
|
||||
log_manual=Konfigurationsdatei manuell editiert
|
||||
log_modify_device=Geräte-Kombination $1 aktualisiert
|
||||
log_modify_extent=Gerät zum teilen $1 aktualisiert
|
||||
log_modify_target=Freigabe target $1 aktualisiert
|
||||
log_modify_user=iSCSI Benutzer $1 aktualisiert
|
||||
log_restart=iSCSI-Server neu gestartet
|
||||
|
||||
@@ -8,3 +8,4 @@ desc_no=iSCSI tjener
|
||||
longdesc_no=Del disk-enheter over nettverket ved hjelp av iSCSI protokollen med netbsd-iscsi pakken.
|
||||
desc_ms_MY=Pelayan iSCSI
|
||||
longdesc_ms_MY=Berkongsi peranti disk di seluruh rangkaian menggunakan protokol iSCSI dengan menggunakan pakej NetBSD-iSCSI.
|
||||
longdesc_de=Teile Plattengeräte über das Netzwerk mit dem iSCSI-Protokoll mit dem netbsd-iscsi Paket.
|
||||
|
||||
8
lang/ca
8
lang/ca
@@ -123,10 +123,10 @@ help_eexec=$1 ha fallat: $2
|
||||
referer_title=Avís de Seguretat
|
||||
referer_warn=<b>Atenció!</b> Webmin ha detectat que el programa $2 és un enllaç a l'URL $1, que sembla ser que queda fora del servidor Webmin. Això pot ser un intent d'enganyar el servidor per tal que executi una ordre perillosa.
|
||||
referer_warn_unknown=<b>Atenció!</b> Webmin ha detectat que el programa $1 és un enllaç a un URL desconegut, que sembla ser que queda fora del servidor Webmin. Això pot ser un intent d'enganyar el servidor per tal que executi una ordre perillosa.
|
||||
referer_ok=Continua executant el programa Webmin
|
||||
referer_again=No tornis a mostrar aquest avís
|
||||
referer_eurl=URL original invàlid!
|
||||
referer_eself=referer_save.cgi no es pot enllaçar directament!
|
||||
referer_fix1=Si això és un enllaç legítim, pots permetre els enllaços des d'aquest URL tal i com segueix:<ul><li>Entra a Webmin normalment.<li>Ves al mòdul de <b>Configuració de Webmin</b>.<li>Fes clic a la icona de Referenciadors Fiables.<li>Introdueix el nom de host $1 al camp <b>Llocs Web fiables</b>, i fes clic a <b>Desa</b>.</ul>
|
||||
referer_fix2=Alternativament, pots configurar Webmin per que permeti aquest enllaç des de la línia d'ordres:<ul><li>Entra com a <tt>root</tt> i edita el fitxer <tt>/etc/webmin/config</tt>.<li>Afegeix-hi la línia <tt>referers=$1</tt> al final o, si ja existeix una línia <tt>referers</tt>, afegeix-hi <tt>$1</tt>.<li>Desa el fitxer.</ul>
|
||||
referer_fix3u=Assegura't que el teu navegador està configurat per enviar la informació del referenciador per tal que Webmin ho pugui verificar.
|
||||
referer_fix2u=Alternativament, pots configurar Webmin per permetre enllaços des de referenciadors desconeguts:<ul><li>Entra com a <tt>root</tt> i edita el fitxer <tt>/etc/webmin/config</tt>.<li>Busca la línia <tt>referers_none=1</tt> i canvia-la per <tt>referers_none=0</tt>.<li>Desa el fitxer.</ul>
|
||||
|
||||
session_header=Entrada a Webmin
|
||||
session_mesg=Per entrar al servidor Webmin de $1, has d'introduir un nom d'usuari i una contrasenya.
|
||||
|
||||
622
lang/de
622
lang/de
@@ -1,324 +1,324 @@
|
||||
readparse_enc=Form-Data-Encoding erwartet, jedoch normales Encoding erhalten
|
||||
modules_title2=Modul auswählen ..
|
||||
feedback_module=Betreffendes Modul
|
||||
help_efile=Fehler beim Lesen der Hilfe-Datei $1
|
||||
session_logout=Abmeldung erfolgreich. Benutzen Sie das nachfolgende Formular, um sich erneut anzumelden.
|
||||
session_failed=Anmeldung fehlgeschlagen. Bitte versuchen Sie es noch einmal.
|
||||
main_none=Sie haben für keine Webmin-Module Zugriffsrechte.
|
||||
header_statusmsg=$1 eingeloggt in $2 $3 auf $4 ($5)
|
||||
month_4=April
|
||||
password_enewpass=Neues Passwort ist nicht erlaubt : $1
|
||||
acl_gedit=Sichtbare Gruppen in Gruppenauswahl
|
||||
smonth_3=Mrz.
|
||||
config_dir=Für Modul $1
|
||||
pam_mesg2=Sie müssen auf die Frage unten antworten um sich anmelden zu können.
|
||||
feedback_desc2=Diese Rückmeldung wird zu den <b>Webmin-Entwicklern</b> gesendet, <u>nicht</u> zu Ihrem <i>System-Administrator</i>, <i>Internet Service Provider</i> oder Ihrer <i>Hosting-Firma</i>. Bitte schreiben Sie Ihre Rückmeldung in <u>Englisch</u>, auch wenn Sie für Webmin gerade eine andere Sprache eingestellt haben.
|
||||
readparse_cdheader=Fehlender Content-Disposition Header
|
||||
chooser_eopen=Auflistung fehlgeschlagen : $1
|
||||
egroupdbacl2=Konnte ACL Gruppe nicht aktualisieren : $1
|
||||
month_11=November
|
||||
acl_uedit_uid=Benutzer mit einer UID im Bereich
|
||||
pam_header=Anmelden an Webmin
|
||||
wsearch_type_config=Konfiguration
|
||||
main_logout=Abmelden
|
||||
sday_2=Di.
|
||||
feedback_ecannot=Sie sind nicht berechtigt eine Rückmeldung zu senden.
|
||||
modules_clear=Löschen
|
||||
feedback_prog=Sende Rückmeldung zu $1 mit Sendmail-Programm $2
|
||||
main_homepage=Homepage
|
||||
acl_home=Benutzer-Heimatverzeichnis
|
||||
chooser_dir=Verzeichnis von $1
|
||||
error_line=Zeile
|
||||
header_servers=Webmin-Server
|
||||
uptracker_title=Lade Datei hoch
|
||||
progress_data2n=Erhalten $1
|
||||
smonth_12=Dez.
|
||||
emodulecheck=Das $1 Modul ist auf Ihrem System nicht verfügbar
|
||||
wsearch_text=Benutzerinterface Text
|
||||
category_webmin=Webmin
|
||||
config_nochange=Nicht ändern
|
||||
sql_epostgresqldriver=Fehler beim PostgreSQL DBI Treiber laden
|
||||
modules_sel=Ausgewählte Module
|
||||
error_stack=Call Stack Trace
|
||||
groups_clear=Löschen
|
||||
wsearch_modt=Modul
|
||||
feedback_config=Modulkonfiguration in E-Mail einbeziehen?
|
||||
acl_gedit_all=Alle Gruppen
|
||||
feedback_ecannot2=Sie sind nicht berechtigt eine Rückmeldung mit enthaltenen Konfigurationsdateien zu senden.
|
||||
sday_3=Mi.
|
||||
acl_uedit_all=Alle Benutzer
|
||||
session_header=Anmelden bei Webmin
|
||||
no=Nein
|
||||
acl_gedit_none=Keine Gruppen
|
||||
config_none=Keine
|
||||
acl_rpc0=Nein
|
||||
longcategory_info=Module, die Informationen über Ihr System darstellen
|
||||
wsearch_title=Suche $1
|
||||
sday_4=Do.
|
||||
config_title=Konfiguration
|
||||
ui_filterbox=Filter eingeben..
|
||||
acl_uedit_except=Alle Benutzer außer
|
||||
smonth_7=Jul.
|
||||
__norefs=1
|
||||
acl_feedback=Darf Rückmeldungs-E-Mail senden?
|
||||
header_webmin=Webmin-Index
|
||||
smonth_2=Feb.
|
||||
wsearch_htext=Passender Text
|
||||
chooser_title1=Wähle Datei..
|
||||
groups_title1=Wähle Gruppen..
|
||||
session_mesg=Sie müssen einen Benutzernamen und ein Passwort zur Anmeldung am Webmin Server auf $1 eingeben.
|
||||
feedback_to=Sende Rückmeldung zu Adresse(n)
|
||||
wsearch_config_webmin=Webmin Modulkonfiguration
|
||||
referer_fix1=Wenn dies ein legitimer Link ist, können Sie Links von dieser URL wie befolgt erlauben :<ul><li>Normale einloggen in Webmin.<li> Gehen Sie zu dem <b>Webmin Konfigurations</b>-Modul.<li>Klicken Sie auf das Trusted Verweise Symbol.<li> Geben Sie den Hostnamen $1 in das <b>Trusted Webseiten</b>-Feld ein, und klicken Sie auf <b>Speichern</b>.</ul>
|
||||
wsearch_moddir=URL Pfad /$1/
|
||||
feedback_configdesc=Wenn dies gewählt ist, wird die E-Mail die Konfiguration des betreffenden Modules und die Inhalte sämtlicher Konfigurationsdateien die das Modul benutzt beinhalten. Wenn sich die Rückmeldung z.B. auf das Modul <i>Benutzer und Gruppen</i> bezieht, werden Ihre <tt>/etc/passwd</tt> und <tt>/etc/shadow</tt> Dateien gesendet!
|
||||
acl_feedback0=Nein
|
||||
acl_feedback1=Ja, aber ohne Konfigurationsdateien
|
||||
error_previous=Vorherige Seite
|
||||
feedback_emodule=Sie haben die Modulkonfiguration in die E-Mail einbezogen, aber kein Modul ausgewählt.
|
||||
month_1=Januar
|
||||
smonth_6=Jun.
|
||||
users_ok=OK
|
||||
sql_emysqlconnect=Fehler beim Verbinden zur MySQL Datenbank : $1
|
||||
feedback_os=Betriebssystem-Details in E-Mail einbeziehen?
|
||||
wsearch_type=Passender Typ
|
||||
wsearch_esearch=Nichts zum Suchen eingegeben.
|
||||
sday_6=Sa.
|
||||
month_8=August
|
||||
referer_warn_unknown=<b>Warnung!</b> Webmin hat entdeckt, dass das Programm $1 mit einer unbekannten URL verknüpft wurde, welche außerhalb des Webmin-Servers zu liegen scheint. Dies kann ein Versuch sein, ihren Server auszutricksen, um ein gefährliches Kommando auszuführen oder einzuschleusen.
|
||||
ui_searchcol=Finde Reihen die
|
||||
yes=Ja
|
||||
acl_rpc2=Nur für <tt>root</tt> oder <tt>admin</tt>
|
||||
main_title=Webmin $1 auf $2 ($3)
|
||||
ui_selall=Alle auswählen.
|
||||
chooser_ok=OK
|
||||
referer_title=Sicherheits-Warnung
|
||||
header_config=Modulkonfiguration
|
||||
euserdbacl=Konnte ACL Benutzer nicht laden : $1
|
||||
category_=Sonstiges
|
||||
ui_edate=Ungültiges Datum
|
||||
users_title1=Wähle Benutzer..
|
||||
ui_mandatory=Dieses Feld ist ein Pflichfeld
|
||||
progress_datan=Erhalten $1 ($2 %)
|
||||
session_mesg2=Sie müssen einen Benutzernamen und ein Passwort zur Anmeldung eingeben.
|
||||
password_header=Neues Passwort auswählen
|
||||
acl_sameunix=Gleiche wie Webmin Login
|
||||
groups_sel=Gewählte Gruppen
|
||||
helpsearch=Suche in der Hilfe..
|
||||
main_readonly=(Nur-lesen Modus)
|
||||
help_err=Fehler beim Anzeigen der Hilfe
|
||||
day_1=Montag
|
||||
acl_feedback2=Ja
|
||||
acl_feedback3=Ja, mit Konfigurationsdateien
|
||||
acl_fileunix=Durchsuche Dateien als Unix-Benutzer
|
||||
acl_gedit=Sichtbare Gruppen in Gruppenauswahl
|
||||
acl_gedit_all=Alle Gruppen
|
||||
acl_gedit_except=Alle außer diese Gruppen
|
||||
acl_gedit_gid=Gruppen mit GIDs im Bereich
|
||||
acl_gedit_none=Keine Gruppen
|
||||
acl_gedit_only=Nur folgende
|
||||
acl_home=Benutzer-Heimatverzeichnis
|
||||
acl_negative=Gewähre neue Modul Berechtigungen für Benutzer?
|
||||
acl_nodot=Verstecke Dateien mit führendem Punkt in der Dateiauswahl?
|
||||
acl_otherdirs=Andere sichtbare Verzeichnisse in Dateiauswahl
|
||||
acl_readonly2=Benutzer ist im Demomodus?
|
||||
chooser_title2=Wähle Verzeichnis..
|
||||
wsearch_on=(Auf $1)
|
||||
ui_checkmandatory=Es wurde nichts ausgewählt
|
||||
error=Fehler
|
||||
ui_searchfor=Beinhaltet den Text
|
||||
month_10=Oktober
|
||||
acl_rpc=Darf RPC-Aufrufe annehmen?
|
||||
create=Erstellen
|
||||
password_old=Momentanes Passwort
|
||||
feedback_text=Beschreibung des Problems oder Vorschlag
|
||||
progress_incache=$1 gefunden in Cache ..
|
||||
feedback_email=Ihre E-Mail-Adresse
|
||||
skill_medium=Fortgeschritten
|
||||
sql_eldaplogin=Fehler beim Login auf dem LDAP-Server als $1 : $2
|
||||
acl_webminsearch=Zeige Webmin Suchfeld?
|
||||
wsearch_enone=Keine Webmin-Module oder Seiten passend zu $1 gefunden.
|
||||
users_sel=Gewählte Benutzer
|
||||
euserdbacl2=Konnte ACL Benutzer nicht aktualisieren : $1
|
||||
password_new2=Zur Sicherheit, nochmals das neue Passwort
|
||||
efileopen=Fehler beim Öffnen von $1 zum Schreiben : $2
|
||||
acl_rpc1=Ja
|
||||
month_7=Juli
|
||||
acl_readonlyyes=Ja (manche Module sind nicht verfügbar)
|
||||
modules_ok=OK
|
||||
smonth_1=Jan.
|
||||
default=Standard
|
||||
acl_root=Hauptverzeichnis für Dateiauswahlfenster
|
||||
acl_rpc=Darf RPC-Aufrufe annehmen?
|
||||
acl_rpc0=Nein
|
||||
acl_rpc1=Ja
|
||||
acl_rpc2=Nur für <tt>root</tt> oder <tt>admin</tt>
|
||||
acl_sameunix=Gleiche wie Webmin Login
|
||||
acl_uedit=Sichtbare Benutzer in der Benutzerauswahl
|
||||
acl_uedit_all=Alle Benutzer
|
||||
acl_uedit_except=Alle Benutzer außer
|
||||
acl_uedit_group=Benutzer mit Gruppe
|
||||
acl_uedit_none=Keine Benutzer
|
||||
acl_uedit_only=Nur Benutzer
|
||||
acl_uedit_uid=Benutzer mit einer UID im Bereich
|
||||
acl_webminsearch=Zeige Webmin Suchfeld?
|
||||
cancel=Abbruch
|
||||
category_=Sonstiges
|
||||
category_cluster=Cluster
|
||||
category_hardware=Hardware
|
||||
category_info=Information
|
||||
category_net=Netzwerk
|
||||
groups_cancel=Abbrechen
|
||||
day_4=Donnerstag
|
||||
category_servers=Server
|
||||
category_syslet=Syslets
|
||||
password_eold=Das momentante Passwort ist falsch
|
||||
smonth_5=Mai
|
||||
category_system=System
|
||||
category_webmin=Webmin
|
||||
chooser_date=Datum wählen
|
||||
chooser_dir=Verzeichnis von $1
|
||||
chooser_eopen=Auflistung fehlgeschlagen : $1
|
||||
chooser_ok=OK
|
||||
chooser_title1=Wähle Datei..
|
||||
chooser_title2=Wähle Verzeichnis..
|
||||
config_dir=Für Modul $1
|
||||
config_eaccess=Sie haben keine Berechtigung auf dieses Modul zuzugreifen
|
||||
config_ecannot=Sie haben nicht die Berechtigung die Konfiguration dieses Moduls zu ändern
|
||||
config_err=Speichern der Konfiguration gescheitert
|
||||
config_ewebmin=Parametertyp 14 funktioniert nur in Webmin
|
||||
config_header=Konfigurierbare Einstellungen für $1
|
||||
config_nochange=Nicht ändern
|
||||
config_none=Keine
|
||||
config_setto=Einstellen auf
|
||||
config_title=Konfiguration
|
||||
create=Erstellen
|
||||
day_0=Sonntag
|
||||
day_1=Montag
|
||||
day_2=Dienstag
|
||||
day_3=Mittwoch
|
||||
day_4=Donnerstag
|
||||
day_5=Freitag
|
||||
day_6=Samstag
|
||||
default=Standard
|
||||
delete=Löschen
|
||||
efileclose=Fehler beim Schreiben zu $1 beim Schließen : $2
|
||||
efileopen=Fehler beim Öffnen von $1 zum Schreiben : $2
|
||||
efilewrite=Fehler beim Schreiben zu $1 : $2
|
||||
egroupdbacl=Konnte ACL Gruppe nicht laden : $1
|
||||
egroupdbacl2=Konnte ACL Gruppe nicht aktualisieren : $1
|
||||
elock_tries2=Konnte die Datei $1 nach $2 Minuten nicht sperren. Letzter Fehler war : $3
|
||||
emodule=Zugriff verweigert: Benutzer $1 ist nicht berechtigt, das $2 Modul zu benutzen
|
||||
emodulecheck=Das $1 Modul ist auf Ihrem System nicht verfügbar
|
||||
error=Fehler
|
||||
error_file=Datei
|
||||
error_line=Zeile
|
||||
error_previous=Vorherige Seite
|
||||
error_stack=Call Stack Trace
|
||||
error_stackline=In Datei $1 in Zeile $2 aufgerufen $3
|
||||
error_sub=Funktion
|
||||
euserdbacl=Konnte ACL Benutzer nicht laden : $1
|
||||
euserdbacl2=Konnte ACL Benutzer nicht aktualisieren : $1
|
||||
feedback_all=Alle Module
|
||||
feedback_attach=Zusätzliche Dateien anfügen
|
||||
feedback_config=Modulkonfiguration in E-Mail einbeziehen?
|
||||
feedback_configdesc=Wenn dies gewählt ist, wird die E-Mail die Konfiguration des betreffenden Modules und die Inhalte sämtlicher Konfigurationsdateien die das Modul benutzt beinhalten. Wenn sich die Rückmeldung z.B. auf das Modul <i>Benutzer und Gruppen</i> bezieht, werden Ihre <tt>/etc/passwd</tt> und <tt>/etc/shadow</tt> Dateien gesendet!
|
||||
feedback_desc=Dieses Formular erlaubt Ihnen, den Webmin-Entwicklern Fehler zu melden oder Vorschläge zu machen bezüglich eines Fehlers oder einer fehlenden Eigenschaft, die Sie gefunden haben oder vermissen. Wenn die Senden-Schaltfläche gedrückt wird, werden die eingegebenen Details an $1 gesendet.
|
||||
feedback_desc2=Diese Rückmeldung wird zu den <b>Webmin-Entwicklern</b> gesendet, <u>nicht</u> zu Ihrem <i>System-Administrator</i>, <i>Internet Service Provider</i> oder Ihrer <i>Hosting-Firma</i>. Bitte schreiben Sie Ihre Rückmeldung in <u>Englisch</u>, auch wenn Sie für Webmin gerade eine andere Sprache eingestellt haben.
|
||||
feedback_ecannot=Sie sind nicht berechtigt eine Rückmeldung zu senden.
|
||||
feedback_ecannot2=Sie sind nicht berechtigt eine Rückmeldung mit enthaltenen Konfigurationsdateien zu senden.
|
||||
feedback_econfig=Sie haben keinen Vollzugriff zum ausgewählten Modul.
|
||||
feedback_email=Ihre E-Mail-Adresse
|
||||
feedback_emodule=Sie haben die Modulkonfiguration in die E-Mail einbezogen, aber kein Modul ausgewählt.
|
||||
feedback_emodule2=Gewähltes Modul existiert nicht
|
||||
feedback_enoto=Keine Adressen zum Senden der Rückmeldung eingegeben
|
||||
feedback_err=Beim Versenden der Rückmeldung ist ein Fehler aufgetreten
|
||||
feedback_esend=Beim Versenden der Rückmeldung via Sendmail-Programm oder lokalem SMTP-Server ist ein Fehler aufgetreten.
|
||||
feedback_header=Rückmeldung-Einzelheiten
|
||||
feedback_mailserver=Sende via SMTP-Server
|
||||
feedback_mailserver_def=Lokales Sendmail-Programm
|
||||
feedback_module=Betreffendes Modul
|
||||
feedback_name=Ihr Name
|
||||
feedback_os=Betriebssystem-Details in E-Mail einbeziehen?
|
||||
feedback_osdesc=Wenn diese Option gewählt ist, wird die automatische Rückmeldung Bezeichnung und Version Ihres Betriebssystems beinhalten.
|
||||
feedback_prog=Sende Rückmeldung zu $1 mit Sendmail-Programm $2
|
||||
feedback_send=Sende Rückmeldung
|
||||
feedback_text=Beschreibung des Problems oder Vorschlag
|
||||
feedback_title=Webmin-Rückmeldung
|
||||
feedback_to=Sende Rückmeldung zu Adresse(n)
|
||||
feedback_via=Sende Rückmeldung zu $1 via SMTP-Server $2
|
||||
find=Finden
|
||||
groups_all=Alle Gruppen
|
||||
groups_cancel=Abbrechen
|
||||
groups_clear=Löschen
|
||||
groups_ok=OK
|
||||
groups_sel=Gewählte Gruppen
|
||||
groups_title1=Wähle Gruppen..
|
||||
groups_title2=Wähle Gruppe..
|
||||
header_config=Modulkonfiguration
|
||||
header_help=Hilfe..
|
||||
header_module=Modulindex
|
||||
header_servers=Webmin-Server
|
||||
header_statusmsg=$1 eingeloggt in $2 $3 auf $4 ($5)
|
||||
header_webmin=Webmin-Index
|
||||
help_eexec=$1 schlug fehl : $2
|
||||
help_efile=Fehler beim Lesen der Hilfe-Datei $1
|
||||
help_eheader=Fehlender <header> Teil
|
||||
help_eif=$1 schlug fehl : $2
|
||||
help_einclude=Fehler beim Einbinden von $1
|
||||
help_epath=Fehlender Hilfe-Pfad
|
||||
help_err=Fehler beim Anzeigen der Hilfe
|
||||
helpsearch=Suche in der Hilfe..
|
||||
index=Startseite
|
||||
link_essl=Das Perl-Modul Net::SSLeay, welches für HTTPS-Verbindungen benötigt wird, ist auf Ihrem System nicht installiert.
|
||||
longcategory_=Module, die nicht in andere Kategorien einzuordnen sind
|
||||
longcategory_cluster=Module, die verschiedene Server von einem Interface aus steuern
|
||||
longcategory_hardware=Module für Drucker-, Festplatten- und andere Hardware-Konfigurationen
|
||||
longcategory_info=Module, die Informationen über Ihr System darstellen
|
||||
longcategory_net=Module, die Netzwerk und Netzwerk-Dienste konfigurieren
|
||||
longcategory_servers=Module für Web-, E-Mail-, FTP- und andere Server
|
||||
longcategory_system=Module für Benutzer, Dateisysteme, Cron-Aufträge und andere Systemeinstellungen
|
||||
longcategory_webmin=Module, um Webmin selbst zu konfigurieren.
|
||||
main_feedback=Rückmeldung..
|
||||
main_homepage=Homepage
|
||||
main_logout=Abmelden
|
||||
main_none=Sie haben für keine Webmin-Module Zugriffsrechte.
|
||||
main_readonly=(Nur-lesen Modus)
|
||||
main_refreshmods=Aktualisiere Module
|
||||
main_return=Zurück zu $1
|
||||
main_skill=Fähigkeitsniveau
|
||||
main_switch=Benutzer wechseln..
|
||||
main_title=Webmin $1 auf $2 ($3)
|
||||
main_title2=Webmin
|
||||
main_title3=Webmin $1 ($2)
|
||||
main_unused=Nicht benutzte Module
|
||||
main_version=Version $1 auf $2 ($3)
|
||||
modify=Modifizieren
|
||||
modules_all=Alle Module
|
||||
modules_cancel=Abbrechen
|
||||
modules_clear=Löschen
|
||||
modules_ok=OK
|
||||
modules_sel=Ausgewählte Module
|
||||
modules_title1=Module auswählen ..
|
||||
modules_title2=Modul auswählen ..
|
||||
month_1=Januar
|
||||
month_10=Oktober
|
||||
month_11=November
|
||||
month_12=Dezember
|
||||
month_2=Februar
|
||||
month_3=März
|
||||
month_4=April
|
||||
month_5=Mai
|
||||
month_6=Juni
|
||||
month_7=Juli
|
||||
month_8=August
|
||||
month_9=September
|
||||
no=Nein
|
||||
ok=OK
|
||||
pam_header=Anmelden an Webmin
|
||||
pam_login=Fortsetzen
|
||||
pam_mesg=Sie müssen auf die Frage unten antworten um sich am Webmin-Server $1 anmelden zu können.
|
||||
pam_mesg2=Sie müssen auf die Frage unten antworten um sich anmelden zu können.
|
||||
pam_restart=Neustart
|
||||
password_clear=Löschen
|
||||
password_done=Ihr Passwort wurde erfolgreich geändert. Sie können sich nun mit dem neuen Passwort <a href='$1'>erneut anmelden</a>.
|
||||
password_emodpam=Das Authen::PAM-Perlmodul, welches für das Ändern von Passworten benutzt wird, ist nicht installiert!
|
||||
password_enew1=Es wurde kein neues Passwort eingegeben
|
||||
password_enew2=Ihre Passworte stimmen nicht überein
|
||||
password_enewpass=Neues Passwort ist nicht erlaubt : $1
|
||||
password_eold=Das momentante Passwort ist falsch
|
||||
password_epam=PAM-Fehler : $1
|
||||
password_err=Konnte Passwort nicht ändern
|
||||
password_euser=Ihr Username und Passwort konnte nicht in der Passwortdatei gefunden werden!
|
||||
password_expired=Ihr Passwort ist abgelaufen und Sie müssen nun ein neues angeben.
|
||||
password_header=Neues Passwort auswählen
|
||||
password_new1=Neues Passwort
|
||||
password_new2=Zur Sicherheit, nochmals das neue Passwort
|
||||
password_ok=Ändern
|
||||
password_old=Momentanes Passwort
|
||||
password_temp=Sie müssen ein neues Passwort wählen um Ihren temporären Login zu ersetzen.
|
||||
password_user=Benutzername
|
||||
programname=Webmin
|
||||
progress_data2n=Erhalten $1
|
||||
progress_datan=Erhalten $1 ($2 %)
|
||||
progress_done=.. Herunterladen komplett.
|
||||
progress_incache=$1 gefunden in Cache ..
|
||||
progress_nosize=Lade $1 herunter ..
|
||||
progress_size2=Herunterladen $1 ($2) ..
|
||||
readparse_cdheader=Fehlender Content-Disposition Header
|
||||
readparse_enc=Form-Data-Encoding erwartet, jedoch normales Encoding erhalten
|
||||
readparse_max=Die Daten überschreiten die maximale Größe von $1 bytes
|
||||
referer_fix1=Wenn dies ein legitimer Link ist, können Sie Links von dieser URL wie befolgt erlauben :<ul><li>Normale einloggen in Webmin.<li> Gehen Sie zu dem <b>Webmin Konfigurations</b>-Modul.<li>Klicken Sie auf das Trusted Verweise Symbol.<li> Geben Sie den Hostnamen $1 in das <b>Trusted Webseiten</b>-Feld ein, und klicken Sie auf <b>Speichern</b>.</ul>
|
||||
referer_fix2=Alternativ können Sie Webmin konfigurieren, um diesen Link aus der Befehlszeile zu ermöglichen :<ul><li>Login als<tt>root</tt> und bearbeiten Sie die <tt>/etc/webmin/config</tt>-Datei.<li>Fügen Sie die Zeile <tt>referers=$1</tt> am Ende ein, oder wenn eine <tt>referers</tt> Zeile bereits vorhanden ist, fügen Sie <tt>$1</tt> hinzu. <li>Speichern Sie die Datei.</ul>
|
||||
referer_fix2u=Alternativ können Sie Webmin konfigurieren, um Links von unbekannten Referern zuzulassen :<ul><li>Login als <tt>root</tt> und bearbeiten Sie die <tt>/etc/webmin/config</tt> Datei. <li>Suchen Sie die Zeile <tt>referers_none=1</tt> und ändern Sie es in <tt>referers_none=0</tt> ab.<li>Speichern Sie die Datei.</ul>
|
||||
help_epath=Fehlender Hilfe-Pfad
|
||||
groups_ok=OK
|
||||
password_temp=Sie müssen ein neues Passwort wählen um Ihren temporären Login zu ersetzen.
|
||||
category_cluster=Cluster
|
||||
modify=Modifizieren
|
||||
longcategory_net=Module, die Netzwerk und Netzwerk-Dienste konfigurieren
|
||||
emodule=Zugriff verweigert: Benutzer $1 ist nicht berechtigt, das $2 Modul zu benutzen
|
||||
acl_feedback2=Ja
|
||||
acl_nodot=Verstecke Dateien mit führendem Punkt in der Dateiauswahl?
|
||||
wsearch_type_text=Benutzer Schnittstelle
|
||||
acl_otherdirs=Andere sichtbare Verzeichnisse in Dateiauswahl
|
||||
header_module=Modulindex
|
||||
modules_all=Alle Module
|
||||
skill_low=Neuling
|
||||
sday_5=Fr.
|
||||
save=Speichern
|
||||
wsearch_type_mod=Modulname
|
||||
feedback_header=Rückmeldung-Einzelheiten
|
||||
month_9=September
|
||||
session_save=Anmeldung dauerhaft speichern?
|
||||
uptracker_size=Größe
|
||||
config_err=Speichern der Konfiguration gescheitert
|
||||
longcategory_hardware=Module für Drucker-, Festplatten- und andere Hardware-Konfigurationen
|
||||
feedback_econfig=Sie haben keinen Vollzugriff zum ausgewählten Modul.
|
||||
main_unused=Nicht benutzte Module
|
||||
session_twofailed=2-Faktor-Authentifizierung fehlgeschlagen : $1
|
||||
category_info=Information
|
||||
ui_selinv=Auswahl umkehren.
|
||||
main_switch=Benutzer wechseln..
|
||||
main_skill=Fähigkeitsniveau
|
||||
config_ewebmin=Parametertyp 14 funktioniert nur in Webmin
|
||||
ui_errors=Mehrere Fehler sind aufgetreten :
|
||||
sql_eldaptls=Fehler beim Starten der TLS-Verschlüsselung für LDAP : $1
|
||||
delete=Löschen
|
||||
referer_fix3u=Stellen Sie sicher, Ihrem Browser so konfiguriert ist, dass Referrer Informationen gesendet werden, damit diese von Webmin überprüft werden können.
|
||||
referer_title=Sicherheits-Warnung
|
||||
referer_warn=<b>Warnung!</b> Webmin hat entdeckt, dass auf das Programm $2 von der URL $1 verwiesen wurde, welche scheinbar außerhalb des Webmin-Servers liegt. Dies kann ein Versuch sein, ihren Server auszutricksen, um ein gefährliches Kommando auszuführen oder einzuschleusen.
|
||||
config_eaccess=Sie haben keine Berechtigung auf dieses Modul zuzugreifen
|
||||
wsearch_hmod=Modul
|
||||
groups_title2=Wähle Gruppe..
|
||||
ok=OK
|
||||
wsearch_mod=$1 Modul
|
||||
elock_tries2=Konnte die Datei $1 nach $2 Minuten nicht sperren. Letzter Fehler war : $3
|
||||
help_eexec=$1 schlug fehl : $2
|
||||
sql_eldapdriver=Fehler beim Lades des LDAP perl Modul
|
||||
uptracker_pc=Fortschritt
|
||||
acl_fileunix=Durchsuche Dateien als Unix-Benutzer
|
||||
wsearch_what=Passende Seite
|
||||
index=Startseite
|
||||
feedback_mailserver=Sende via SMTP-Server
|
||||
day_3=Mittwoch
|
||||
ui_paging=Anzeige der Reihen $1 bis $2 von $3
|
||||
feedback_title=Webmin-Rückmeldung
|
||||
password_clear=Löschen
|
||||
month_12=Dezember
|
||||
password_epam=PAM-Fehler : $1
|
||||
password_done=Ihr Passwort wurde erfolgreich geändert. Sie können sich nun mit dem neuen Passwort <a href='$1'>erneut anmelden</a>.
|
||||
acl_uedit_group=Benutzer mit Gruppe
|
||||
uptracker_of=$1 von $2
|
||||
efileclose=Fehler beim Schreiben zu $1 beim Schließen : $2
|
||||
acl_feedback3=Ja, mit Konfigurationsdateien
|
||||
main_title2=Webmin
|
||||
feedback_enoto=Keine Adressen zum Senden der Rückmeldung eingegeben
|
||||
wsearch_hcgis=Referenzen
|
||||
feedback_err=Beim Versenden der Rückmeldung ist ein Fehler aufgetreten
|
||||
efilewrite=Fehler beim Schreiben zu $1 : $2
|
||||
month_6=Juni
|
||||
feedback_all=Alle Module
|
||||
chooser_date=Datum wählen
|
||||
programname=Webmin
|
||||
config_setto=Einstellen auf
|
||||
modules_cancel=Abbrechen
|
||||
help_eheader=Fehlender <header> Teil
|
||||
wsearch_htype=Quelle
|
||||
ui_rowlabel=$2 in Reihe $1 :
|
||||
wsearch_config_usermin=Usermin Einstellungen
|
||||
password_emodpam=Das Authen::PAM-Perlmodul, welches für das Ändern von Passworten benutzt wird, ist nicht installiert!
|
||||
acl_uedit_only=Nur Benutzer
|
||||
password_enew1=Es wurde kein neues Passwort eingegeben
|
||||
category_system=System
|
||||
smonth_10=Okt.
|
||||
longcategory_=Module, die nicht in andere Kategorien einzuordnen sind
|
||||
month_3=März
|
||||
uptracker_eid=Keine Upload ID angegeben
|
||||
password_ok=Ändern
|
||||
feedback_via=Sende Rückmeldung zu $1 via SMTP-Server $2
|
||||
day_5=Freitag
|
||||
acl_gedit_except=Alle außer diese Gruppen
|
||||
smonth_9=Sep.
|
||||
password_new1=Neues Passwort
|
||||
acl_gedit_gid=Gruppen mit GIDs im Bereich
|
||||
session_login=Anmelden
|
||||
pam_mesg=Sie müssen auf die Frage unten antworten um sich am Webmin-Server $1 anmelden zu können.
|
||||
category_servers=Server
|
||||
main_refreshmods=Aktualisiere Module
|
||||
error_sub=Funktion
|
||||
error_file=Datei
|
||||
progress_done=.. Herunterladen komplett.
|
||||
smonth_4=Apr.
|
||||
wsearch_type_help=Hilfeseite
|
||||
day_2=Dienstag
|
||||
users_clear=Löschen
|
||||
feedback_desc=Dieses Formular erlaubt Ihnen, den Webmin-Entwicklern Fehler zu melden oder Vorschläge zu machen bezüglich eines Fehlers oder einer fehlenden Eigenschaft, die Sie gefunden haben oder vermissen. Wenn die Senden-Schaltfläche gedrückt wird, werden die eingegebenen Details an $1 gesendet.
|
||||
progress_nosize=Lade $1 herunter ..
|
||||
feedback_mailserver_def=Lokales Sendmail-Programm
|
||||
egroupdbacl=Konnte ACL Gruppe nicht laden : $1
|
||||
acl_feedback0=Nein
|
||||
wsearch_help=Hilfeseite
|
||||
password_err=Konnte Passwort nicht ändern
|
||||
longcategory_webmin=Module, um Webmin selbst zu konfigurieren.
|
||||
password_euser=Ihr Username und Passwort konnte nicht in der Passwortdatei gefunden werden!
|
||||
sday_1=Mo.
|
||||
acl_uedit=Sichtbare Benutzer in der Benutzerauswahl
|
||||
users_cancel=Abbrechen
|
||||
sql_emysqldriver=Fehler beim Laden des MySQL DBI Treiber
|
||||
feedback_attach=Zusätzliche Dateien anfügen
|
||||
smonth_11=Nov.
|
||||
ui_etime=Ungültige Zeit
|
||||
acl_uedit_none=Keine Benutzer
|
||||
main_version=Version $1 auf $2 ($3)
|
||||
find=Finden
|
||||
session_pass=Passwort
|
||||
skill_high=Experte
|
||||
longcategory_cluster=Module, die verschiedene Server von einem Interface aus steuern
|
||||
main_return=Zurück zu $1
|
||||
modules_title1=Module auswählen ..
|
||||
ui_nothing=Nichts wurde eingegeben
|
||||
wsearch_inmod=In $1
|
||||
feedback_send=Sende Rückmeldung
|
||||
acl_gedit_only=Nur folgende
|
||||
longcategory_system=Module für Benutzer, Dateisysteme, Cron-Aufträge und andere Systemeinstellungen
|
||||
month_5=Mai
|
||||
acl_root=Hauptverzeichnis für Dateiauswahlfenster
|
||||
feedback_name=Ihr Name
|
||||
feedback_osdesc=Wenn diese Option gewählt ist, wird die automatische Rückmeldung Bezeichnung und Version Ihres Betriebssystems beinhalten.
|
||||
groups_all=Alle Gruppen
|
||||
progress_size2=Herunterladen $1 ($2) ..
|
||||
referer_fix1u=Falls Ihr Browser den benötigten <tt>Referer</tt>-Header nicht sendet, können Sie die Prüfungen wie folgt ausschalten :<ul><li>Normale einloggen in Webmin.<li>Zum <b>Webminkonfiguration-</b>Modul.<li>Klicken Sie auf das Trusted Verweise Symbol.<li>Klicken Sie die <b>Vertrauen Links von unbekannten Referrer</b> und klicken Sie auf <b>Speichern</b>.</ul>
|
||||
switch_remote_euser=Der Unixbenutzer $1 existiert nicht.
|
||||
wsearch_mtitle=Modulname
|
||||
wsearch_found=$1 Resultat gefunden :
|
||||
sql_eldapconnect=Fehlgeschlagen Verbindung zum LDAP-Server herzustellen $1
|
||||
config_header=Konfigurierbare Einstellungen für $1
|
||||
link_essl=Das Perl-Modul Net::SSLeay, welches für HTTPS-Verbindungen benötigt wird, ist auf Ihrem System nicht installiert.
|
||||
wsearch_type_dir=Modul URL
|
||||
longcategory_servers=Module für Web-, E-Mail-, FTP- und andere Server
|
||||
day_6=Samstag
|
||||
uptracker_eid2=Upload ID ist ungültig!
|
||||
session_clear=Zurücksetzen
|
||||
main_feedback=Rückmeldung..
|
||||
help_einclude=Fehler beim Einbinden von $1
|
||||
wsearch_searching=Suche nach $1 . .
|
||||
smonth_8=Aug.
|
||||
cancel=Abbruch
|
||||
__norefs=1
|
||||
session_user=Benutzername
|
||||
session_twofactor=2-Faktor-Token
|
||||
users_all=Alle Benutzer
|
||||
ui_searchok=Suche
|
||||
acl_negative=Gewähre neue Modul Berechtigungen für Benutzer?
|
||||
feedback_emodule2=Gewähltes Modul existiert nicht
|
||||
config_ecannot=Sie haben nicht die Berechtigung die Konfiguration dieses Moduls zu ändern
|
||||
session_timed_out=Sitzung abgebrochen nach $1 Minuten ohne Aktivität.
|
||||
wsearch_helpfor=Hilfe für <i>$1</i>
|
||||
sday_0=So.
|
||||
referer_warn_unknown=<b>Warnung!</b> Webmin hat entdeckt, dass das Programm $1 mit einer unbekannten URL verknüpft wurde, welche außerhalb des Webmin-Servers zu liegen scheint. Dies kann ein Versuch sein, ihren Server auszutricksen, um ein gefährliches Kommando auszuführen oder einzuschleusen.
|
||||
reset=Reset
|
||||
main_title3=Webmin $1 ($2)
|
||||
uptracker_file=Dateiname
|
||||
password_expired=Ihr Passwort ist abgelaufen und Sie müssen nun ein neues angeben.
|
||||
error_stackline=In Datei $1 in Zeile $2 aufgerufen $3
|
||||
day_0=Sonntag
|
||||
pam_login=Fortsetzen
|
||||
help_eif=$1 schlug fehl : $2
|
||||
readparse_max=Die Daten überschreiten die maximale Größe von $1 bytes
|
||||
feedback_esend=Beim Versenden der Rückmeldung via Sendmail-Programm oder lokalem SMTP-Server ist ein Fehler aufgetreten.
|
||||
save=Speichern
|
||||
sday_0=So.
|
||||
sday_1=Mo.
|
||||
sday_2=Di.
|
||||
sday_3=Mi.
|
||||
sday_4=Do.
|
||||
sday_5=Fr.
|
||||
sday_6=Sa.
|
||||
session_clear=Zurücksetzen
|
||||
session_failed=Anmeldung fehlgeschlagen. Bitte versuchen Sie es noch einmal.
|
||||
session_header=Anmelden bei Webmin
|
||||
session_login=Anmelden
|
||||
session_logout=Abmeldung erfolgreich. Benutzen Sie das nachfolgende Formular, um sich erneut anzumelden.
|
||||
session_mesg=Sie müssen einen Benutzernamen und ein Passwort zur Anmeldung am Webmin Server auf $1 eingeben.
|
||||
session_mesg2=Sie müssen einen Benutzernamen und ein Passwort zur Anmeldung eingeben.
|
||||
session_pass=Passwort
|
||||
session_save=Anmeldung dauerhaft speichern?
|
||||
session_timed_out=Sitzung abgebrochen nach $1 Minuten ohne Aktivität.
|
||||
session_twofactor=2-Faktor-Token
|
||||
session_twofailed=2-Faktor-Authentifizierung fehlgeschlagen : $1
|
||||
session_user=Benutzername
|
||||
skill_high=Experte
|
||||
skill_low=Neuling
|
||||
skill_medium=Fortgeschritten
|
||||
smonth_1=Jan.
|
||||
smonth_10=Okt.
|
||||
smonth_11=Nov.
|
||||
smonth_12=Dez.
|
||||
smonth_2=Feb.
|
||||
smonth_3=Mrz.
|
||||
smonth_4=Apr.
|
||||
smonth_5=Mai
|
||||
smonth_6=Jun.
|
||||
smonth_7=Jul.
|
||||
smonth_8=Aug.
|
||||
smonth_9=Sep.
|
||||
sql_eldapconnect=Fehlgeschlagen Verbindung zum LDAP-Server herzustellen $1
|
||||
sql_eldapdriver=Fehler beim Lades des LDAP perl Modul
|
||||
sql_eldaplogin=Fehler beim Login auf dem LDAP-Server als $1 : $2
|
||||
sql_eldaptls=Fehler beim Starten der TLS-Verschlüsselung für LDAP : $1
|
||||
sql_emysqlconnect=Fehler beim Verbinden zur MySQL Datenbank : $1
|
||||
sql_emysqldriver=Fehler beim Laden des MySQL DBI Treiber
|
||||
sql_epostgresqlconnect=Fehler beim Verbinden zur PostgreSQL Datenbank : $1
|
||||
sql_epostgresqldriver=Fehler beim PostgreSQL DBI Treiber laden
|
||||
switch_remote_euser=Der Unixbenutzer $1 existiert nicht.
|
||||
ui_checkmandatory=Es wurde nichts ausgewählt
|
||||
ui_edate=Ungültiges Datum
|
||||
ui_errors=Mehrere Fehler sind aufgetreten :
|
||||
ui_etime=Ungültige Zeit
|
||||
ui_filterbox=Filter eingeben..
|
||||
ui_mandatory=Dieses Feld ist ein Pflichfeld
|
||||
ui_nothing=Nichts wurde eingegeben
|
||||
ui_paging=Anzeige der Reihen $1 bis $2 von $3
|
||||
ui_rowlabel=$2 in Reihe $1 :
|
||||
ui_searchcol=Finde Reihen die
|
||||
ui_searchfor=Beinhaltet den Text
|
||||
ui_searchok=Suche
|
||||
ui_selall=Alle auswählen.
|
||||
ui_selinv=Auswahl umkehren.
|
||||
uptracker_eid=Keine Upload ID angegeben
|
||||
uptracker_eid2=Upload ID ist ungültig!
|
||||
uptracker_file=Dateiname
|
||||
uptracker_of=$1 von $2
|
||||
uptracker_pc=Fortschritt
|
||||
uptracker_size=Größe
|
||||
uptracker_title=Lade Datei hoch
|
||||
users_all=Alle Benutzer
|
||||
users_cancel=Abbrechen
|
||||
users_clear=Löschen
|
||||
users_ok=OK
|
||||
users_sel=Gewählte Benutzer
|
||||
users_title1=Wähle Benutzer..
|
||||
users_title2=Wähle Benutzer..
|
||||
month_2=Februar
|
||||
pam_restart=Neustart
|
||||
password_enew2=Ihre Passworte stimmen nicht überein
|
||||
password_user=Benutzername
|
||||
category_hardware=Hardware
|
||||
wsearch_config_usermin=Usermin Einstellungen
|
||||
wsearch_config_webmin=Webmin Modulkonfiguration
|
||||
wsearch_enone=Keine Webmin-Module oder Seiten passend zu $1 gefunden.
|
||||
wsearch_esearch=Nichts zum Suchen eingegeben.
|
||||
wsearch_found=$1 Resultat gefunden :
|
||||
wsearch_hcgis=Referenzen
|
||||
wsearch_help=Hilfeseite
|
||||
wsearch_helpfor=Hilfe für <i>$1</i>
|
||||
wsearch_hmod=Modul
|
||||
wsearch_htext=Passender Text
|
||||
wsearch_htype=Quelle
|
||||
wsearch_inmod=In $1
|
||||
wsearch_mod=$1 Modul
|
||||
wsearch_moddir=URL Pfad /$1/
|
||||
wsearch_modt=Modul
|
||||
wsearch_mtitle=Modulname
|
||||
wsearch_on=(Auf $1)
|
||||
wsearch_searching=Suche nach $1 . .
|
||||
wsearch_text=Benutzerinterface Text
|
||||
wsearch_title=Suche $1
|
||||
wsearch_type=Passender Typ
|
||||
wsearch_type_config=Konfiguration
|
||||
wsearch_type_dir=Modul URL
|
||||
wsearch_type_help=Hilfeseite
|
||||
wsearch_type_mod=Modulname
|
||||
wsearch_type_text=Benutzer Schnittstelle
|
||||
wsearch_what=Passende Seite
|
||||
yes=Ja
|
||||
|
||||
2
lang/en
2
lang/en
@@ -125,7 +125,7 @@ referer_warn=<b>Warning!</b> Webmin has detected that the program $2 was linked
|
||||
referer_warn_unknown=<b>Warning!</b> Webmin has detected that the program $1 was linked to from an unknown URL, which appears to be outside the Webmin server. This may be an attempt to trick your server into executing a dangerous command.
|
||||
referer_fix1=If this is a legitimate link, you can allow links from this URL as follows :<ul><li>Login to Webmin normally.<li>Go to the <b>Webmin Configuration</b> module.<li>Click on the Trusted Referrers icon.<li>Enter the hostname $1 into the <b>Trusted websites</b> field, and click <b>Save</b>.</ul>
|
||||
referer_fix2=Alternately, you can configure Webmin to allow this link from the command line by :<ul><li>Login as <tt>root</tt>, and edit the <tt>/etc/webmin/config</tt> file.<li>Add the line <tt>referers=$1</tt> at the end, or if a <tt>referers</tt> line already exists add <tt>$1</tt> to it.<li>Save the file.</ul>
|
||||
referer_fix1u=If your browser does not send the <tt>Referer</tt> header needed, you can turn off this check as follows :<ul><li>Login to Webmin normally.<li>Go to the <b>Webmin Configuration</b> module.<li>Click on the Trusted Referrers icon.<li>Check the <b>Trust links from unknown referrers</b> box, and click <b>Save</b>.</ul>
|
||||
referer_fix3u=Make sure your browser is configured to send referrer information so that it can be verified by Webmin.
|
||||
referer_fix2u=Alternately, you can configure Webmin to allow links from unknown referers by :<ul><li>Login as <tt>root</tt>, and edit the <tt>/etc/webmin/config</tt> file.<li>Find the line <tt>referers_none=1</tt> and change it to <tt>referers_none=0</tt>.<li>Save the file.</ul>
|
||||
|
||||
session_header=Login to Webmin
|
||||
|
||||
3
lang/en_GB
Normal file
3
lang/en_GB
Normal file
@@ -0,0 +1,3 @@
|
||||
# The lang/en file doesn't contain any strings that need conversion to UK
|
||||
# english, but this file still needs to exist so that Webmin offers en_GB.UTF-8
|
||||
# as a language option.
|
||||
2
lang/no
2
lang/no
@@ -214,9 +214,9 @@ readparse_cdheader=Manglende Content-Disposition header
|
||||
readparse_enc=Forventet form-data tegnkoding, men mottok normal tegnkoding
|
||||
readparse_max=Data overskred maksimumsstørrelse på $1 bytes
|
||||
referer_fix1=Dersom dette er en gyldig lenke, kan du tillate lenker fra denne URLen på følgende måte:<ul><li>Logg inn på Webmin på vanlig måte.<li>Gå til <b>Webmin konfigurasjon</b> modulen.<li>Klikk på ikonet Betrodde referenter.<li>Skriv inn vertsnavnet $1 inn i feltet <b>Betrodde nettsteder</b>, og klikk <b>Lagre</b>.</ul>
|
||||
referer_fix1u=Dersom nettleseren din ikke sender den nødvendige <tt>Referer</tt> headeren, kan du slå av denne sjekken på følgende måte :<ul><li>Logg inn på Webmin på vanlig måte.<li>Gå til <b>Webmin konfigurasjon</b> modulen.<li>Klikk på ikonet Betrodde Referenter.<li>Kryss av i boksen <b>Stol på lenker fra ukjente referenter</b>, og klikk <b>Lagre</b>.</ul>
|
||||
referer_fix2=Alternativt kan du konfigurere Webmin til å tillate denne lenken fra kommandolinjen ved å:<ul><li>Logge inn som <tt>root</tt>, og redigere filen <tt>/etc/webmin/config</tt>.<li>Legg til linjen <tt>referers=$1</tt> på slutten, eller dersom en <tt>referers</tt> linje allerede finnes legger du til <tt>$1</tt> til den.<li>Lagre filen.</ul>
|
||||
referer_fix2u=Alternativt kan du konfigurere Webmin til å tillate lenker fra ukjente referenter ved å :<ul><li>Logge inn som <tt>root</tt>, og redigere filen <tt>/etc/webmin/config</tt>.<li>Finn linjen <tt>referers_none=1</tt> og endre den til <tt>referers_none=0</tt>.<li>Lagre filen.</ul>
|
||||
referer_fix3u=Forsikre deg om at nettleseren din er konfigurert til å sende referer-informasjon slik at den kan verifiseres av Webmin
|
||||
referer_title=Sikkerhetsadvarsel
|
||||
referer_warn=<b>Advarsel!</b> Webmin har oppdaget at URL $1 linken til programmet $2, ser ut til å vare utenfor Webmin serveren. Dette kan vare ett forsøk på å lure din server til å utføre ett farligt kommando.
|
||||
referer_warn_unknown=<b>Advarsel!</b> Webmin har oppdaget at programmet $1 ble lenket til fra en ukjent URL, som ser ut til å ligge utenfor Webmin serveren. Dette kan være ett forsøk på å lure din server til å utføre en farlig kommando.
|
||||
|
||||
@@ -15,3 +15,5 @@ Improved support for older versions of Net::LDAP without the hosts() function.
|
||||
If a TLS certificate and key are defined in the LDAP client configuration file, they will be used by Webmin when connecting to the LDAP database.
|
||||
---- Changes since 1.690 ----
|
||||
Added support for nslcd as seen on CentOS 6 and above.
|
||||
---- Changes since 1.740 ----
|
||||
Various fixes needed to support the new NSLCD LDAP client used by CentOS 7.
|
||||
|
||||
@@ -8,8 +8,24 @@ $conf = &get_config();
|
||||
print &ui_form_start("save_base.cgi", "post");
|
||||
print &ui_table_start($text{'base_header'}, "width=100%", 2);
|
||||
|
||||
@bases = &find_value("base", $conf);
|
||||
@scopes = &find_value("scope", $conf);
|
||||
@filters = &find_value("filter", $conf);
|
||||
|
||||
if (&get_ldap_client() eq "nss") {
|
||||
# Base is just one directive
|
||||
$base = $bases[0];
|
||||
$scope = $scopes[0];
|
||||
$filter = $filters[0];
|
||||
}
|
||||
else {
|
||||
# Default base, scope and filter are the ones with no DB
|
||||
($base) = grep { /^\S+$/ } @bases;
|
||||
($scope) = grep { /^\S+$/ } @scopes;
|
||||
($filter) = grep { /^\S+$/ } @filters;
|
||||
}
|
||||
print &ui_table_row($text{'base_base'},
|
||||
&ui_textbox("base", &find_svalue("base", $conf), 50)."\n".
|
||||
&ui_textbox("base", $base, 50)."\n".
|
||||
&base_chooser_button("base", 0));
|
||||
|
||||
$scopes = [ [ "", $text{'default'} ],
|
||||
@@ -17,7 +33,7 @@ $scopes = [ [ "", $text{'default'} ],
|
||||
[ "one", $text{'base_sone'} ],
|
||||
[ "base", $text{'base_sbase'} ] ];
|
||||
print &ui_table_row($text{'base_scope'},
|
||||
&ui_select("scope", &find_svalue("scope", $conf), $scopes));
|
||||
&ui_select("scope", $scope, $scopes));
|
||||
|
||||
print &ui_table_row($text{'base_timelimit'},
|
||||
&ui_opt_textbox("timelimit", &find_svalue("timelimit", $conf), 5,
|
||||
@@ -25,16 +41,29 @@ print &ui_table_row($text{'base_timelimit'},
|
||||
|
||||
$sp = " " x 5;
|
||||
foreach $b (@base_types) {
|
||||
local $base = &find_svalue("nss_base_".$b, $conf);
|
||||
local ($scope, $filter);
|
||||
if ($base =~ /^(.*)\?(.*)\?(.*)$/) {
|
||||
$base = $1;
|
||||
$scope = $2;
|
||||
$filter = $3;
|
||||
local ($base, $scope, $filter);
|
||||
if (&get_ldap_client() eq "nss") {
|
||||
# Older LDAP config uses directives like nss_base_passwd, with
|
||||
# the scope and filter separated by ?
|
||||
$base = &find_svalue("nss_base_".$b, $conf);
|
||||
if ($base =~ /^(.*)\?(.*)\?(.*)$/) {
|
||||
$base = $1;
|
||||
$scope = $2;
|
||||
$filter = $3;
|
||||
}
|
||||
elsif ($base =~ /^(.*)\?(.*)$/) {
|
||||
$base = $1;
|
||||
$scope = $2;
|
||||
}
|
||||
}
|
||||
elsif ($base =~ /^(.*)\?(.*)$/) {
|
||||
$base = $1;
|
||||
$scope = $2;
|
||||
else {
|
||||
# Newer LDAP config uses
|
||||
($base) = map { /^\S+\s+(\S+)/; $1 }
|
||||
grep { /^\Q$b\E\s/ } @bases;
|
||||
($scope) = map { /^\S+\s+(\S+)/; $1 }
|
||||
grep { /^\Q$b\E\s/ } @scopes;
|
||||
($filter) = map { /^\S+\s+(\S+)/; $1 }
|
||||
grep { /^\Q$b\E\s/ } @filters;
|
||||
}
|
||||
print &ui_table_row($text{'base_'.$b},
|
||||
&ui_opt_textbox("base_$b", $base, 50, $text{'base_global'})." ".
|
||||
|
||||
@@ -50,6 +50,8 @@ if ($config{'init_name'} &&
|
||||
($st = &init::action_status($config{'init_name'}))) {
|
||||
# Start or stop
|
||||
if (&init::status_action($config{'init_name'}) == 1) {
|
||||
print &ui_buttons_row("restart.cgi", $text{'index_restart'},
|
||||
$text{'index_restartdesc'});
|
||||
print &ui_buttons_row("stop.cgi", $text{'index_stop'},
|
||||
$text{'index_stopdesc'});
|
||||
}
|
||||
|
||||
@@ -1,24 +1,60 @@
|
||||
__norefs=1
|
||||
base_aliases=Basis für E-Mail-Aliase
|
||||
base_base=Globale Suchbasis
|
||||
base_bfilter=Suchfilter
|
||||
base_bscope=Suchtiefe
|
||||
base_ealiases=Fehlende Basis für E-Mail-Aliase
|
||||
base_ebase=Fehlende globale Suchbasis
|
||||
base_egroup=Fehlende Basis für Unix Gruppen
|
||||
base_ehosts=Fehlende Basis für Hostnamen
|
||||
base_enetgroup=Fehlende Basis für Netzgruppen
|
||||
base_enetmasks=Fehlende Basis für Netzwerknamen
|
||||
base_enetworks=Fehlende Basis für Netzwerknamen
|
||||
base_epasswd=Fehlende Basis für Unix Benutzer
|
||||
base_eprotocols=Fehlende Basis für Protokolle
|
||||
base_err=Fehlgeschlagen LDAP Suchbasen zu speichern
|
||||
base_eservices=Fehlende Basis für Netzwerkdienste
|
||||
base_eshadow=Fehlende Basis für Unix Passwörter
|
||||
base_etimelimit=Fehlende oder ungültige Suchfrist
|
||||
base_global=Globale Basis
|
||||
base_group=Basis für Unix Gruppen
|
||||
base_header=LDAP Verzeichnis Suchorte
|
||||
base_hosts=Basis für Hostnamen
|
||||
base_netgroup=Basis für Netzgruppen
|
||||
base_netmasks=Basis für Netzwerknamen
|
||||
base_networks=Basis für Netzwerknamen
|
||||
base_passwd=Basis für Unix Benutzer
|
||||
base_protocols=Basis für Protokolle
|
||||
base_sbase=Nur Basis
|
||||
base_scope=Suchtiefe
|
||||
base_secs=Sekunden
|
||||
base_services=Basis für Netzwerkdienste
|
||||
base_shadow=Basis für Unix Passwörter
|
||||
base_sone=Eine Level
|
||||
base_ssub=Kompletter Teilbaum
|
||||
base_timelimit=Such-Frist
|
||||
base_title=LDAP Such-Basen
|
||||
browser_attrs=Objektattribute
|
||||
browser_base=Browse:
|
||||
browser_econn=Der LDAP-Browser können nicht verwendet werden : $1
|
||||
browser_esearch=LDAP-Suche fehlgeschlagen : $1
|
||||
browser_none=Keine
|
||||
browser_ok=Zeigen
|
||||
browser_parent=Durchsuche Übergeordnetes
|
||||
browser_sel=OK
|
||||
browser_subs=Untergeordnete Objekte
|
||||
browser_title=LDAP Browser
|
||||
check_base=Finde LDAP Basis für Benutzer ..
|
||||
check_based=...Basis gefunden $1.
|
||||
check_connect=Verbinde zu LDAP Server ..
|
||||
check_connected=.. verbunden mit $1
|
||||
check_done=Ihr System wurde erfolgreich als LDAP-Client konfiguriert!
|
||||
check_ebase=.. keine Basis in Client Konfiguration gefunden!
|
||||
check_econnect=...Verbindung fehlgeschlagen : $1
|
||||
check_ematch=...Benutzer existiert nicht.
|
||||
check_enss=.. Dienst ist nicht eingestellt LDAP zu benutzen.
|
||||
check_esearch=...Suche fehlgeschlagen : $1
|
||||
check_eusers=.. keine Benutzer bei der Basis $1 gefunden.
|
||||
check_found=.. $1 Benutzer gefunden.
|
||||
check_match=Schaue nach Unix Benutzer $1 ..
|
||||
check_matched=.. Benutzer erfolgreich gefunden.
|
||||
@@ -85,9 +121,12 @@ index_atbootdesc=Ändert, ob der LDAP-Client Dämon beim Booten gestarte
|
||||
index_check=Überprüfe Konfiguration
|
||||
index_checkdesc=Klicken Sie auf diese Schaltfläche, um Webmin ver veranlassen Ihren LDAP-Server-Konfiguration zu validieren, indem sichergestellt wird, dass der Server kontaktiert werden kann und dass dieser Benutzer und Gruppen enthält.
|
||||
index_econf=Der NSS-LDAP-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Vielleicht ist die LDAP-Client-Unterstützung nicht installiert, oder die <a href='$2'>Modulkonfiguration</a> ist falsch.
|
||||
index_fix=Behebe durch Linken von Dateien
|
||||
index_fixpam=<b>Warnung</b> - Webmin hat zwei separaten LDAP-Konfigurations-Dateien auf Ihrem System erkannt. NSS-LDAP ist konfiguriert $1 zu nutzen, während PAM-LDAP verwendet $2 nutzt. Dies kann Unstimmigkeiten zwischen den beiden Diensten führen.
|
||||
index_ignore=Zeige diese Nachricht nicht
|
||||
index_ldapmod=LDAP Client
|
||||
index_restart=LDAP Client Daemon neu gestartet
|
||||
index_restartdesc=Übernehme die aktuelle Konfiguration durch den Neustart des lokalen LDAP-Client-Daemons.
|
||||
index_return=Modul Index
|
||||
index_start=Starte LDAP Client Dämon
|
||||
index_startdesc=Startet den lokalen LDAP-Client Dämon herunter, welcher benötigt wird um den entfernten LDAP-Server abzufragen. Bis dieser gestartet ist können Benutzer und Gruppen in LDAP nicht zugreifen.
|
||||
@@ -103,9 +142,11 @@ ldap_emodule2=Das Perl-Modul $1, welche zum Kommunizieren mit dem LDAP-Server be
|
||||
ldap_eparse=Konnte nicht den LDAP-Server URI $1 analysieren
|
||||
ldap_etls=Fehlgeschlagen zum TLS-Modus zu wechseln : $1
|
||||
log_atboot=LDAP Client beim Booten aktiviert
|
||||
log_base=LDAP Such Basis modifiziert
|
||||
log_delboot=LDAP Client beim Booten deaktviert
|
||||
log_modify_switch=Ändere Dienst $1
|
||||
log_pam=Authentifizierungsoptionen geändert
|
||||
log_restart=LDAP Client Daemon neu gestartet
|
||||
log_server=LDAP Server Konfiguration modifiziert
|
||||
log_start=LDAP Client Dämon gestartet
|
||||
log_stop=LDAP Client Dämon gestoppt
|
||||
|
||||
@@ -10,6 +10,8 @@ index_stop=Stop LDAP Client Daemon
|
||||
index_stopdesc=Shut down the local LDAP client daemon, which is needed to query the remote LDAP server.
|
||||
index_start=Start LDAP Client Daemon
|
||||
index_startdesc=Start up the local LDAP client daemon, which is needed to query the remote LDAP server. Until it is started, users and groups in LDAP will not be accessible.
|
||||
index_restart=Restart LDAP Client Daemon
|
||||
index_restartdesc=Apply the current configuration by restarting the local LDAP client daemon.
|
||||
index_atboot=Start LDAP Client At Boot
|
||||
index_atbootdesc=Changes whether the LDAP client daemon is started when the system boots up or not.
|
||||
|
||||
@@ -212,6 +214,7 @@ log_atboot=Enabled LDAP client daemon at boot time
|
||||
log_delboot=Disabled LDAP client daemon at boot time
|
||||
log_start=Started LDAP client daemon
|
||||
log_stop=Stopped LDAP client daemon
|
||||
log_restart=Restarted LDAP client daemon
|
||||
|
||||
check_title=Validating LDAP Configuration
|
||||
check_base=Finding LDAP base for users ..
|
||||
|
||||
@@ -45,6 +45,7 @@ return \@get_config_cache;
|
||||
}
|
||||
|
||||
# find(name, &conf, disabled-mode)
|
||||
# Returns the directive objects with some name
|
||||
sub find
|
||||
{
|
||||
local ($name, $conf, $dis) = @_;
|
||||
@@ -60,7 +61,8 @@ elsif ($dis == 1) {
|
||||
return wantarray ? @rv : $rv[0];
|
||||
}
|
||||
|
||||
# find_value(name, &conf)
|
||||
# find_value(name, &conf, [disabled])
|
||||
# Finds the value or values of a directive
|
||||
sub find_value
|
||||
{
|
||||
local ($name, $conf, $dis) = @_;
|
||||
@@ -68,51 +70,61 @@ local @rv = map { $_->{'value'} } &find($name, $conf, $dis);
|
||||
return wantarray ? @rv : $rv[0];
|
||||
}
|
||||
|
||||
# find_svalue(name, &conf, [disabled])
|
||||
# Like find_value, but only returns a single value
|
||||
sub find_svalue
|
||||
{
|
||||
local $rv = &find_value(@_);
|
||||
return $rv;
|
||||
}
|
||||
|
||||
# save_directive(&conf, name, [value])
|
||||
# save_directive(&conf, name, [value|&values])
|
||||
# Update one or more directives with some name
|
||||
sub save_directive
|
||||
{
|
||||
local ($conf, $name, $value) = @_;
|
||||
local $old = &find($name, $conf);
|
||||
local $oldcmt = &find($name, $conf, 1);
|
||||
local ($conf, $name, $valuez) = @_;
|
||||
local @values = ref($valuez) ? @$valuez : ( $valuez );
|
||||
local @old = &find($name, $conf);
|
||||
local @oldcmt = &find($name, $conf, 1);
|
||||
local $deffile = &get_ldap_config_file();
|
||||
local $lref = &read_file_lines($old ? $old->{'file'} :
|
||||
$oldcmt ? $oldcmt->{'file'} :
|
||||
$deffile);
|
||||
if (defined($value) && $old) {
|
||||
# Just update value
|
||||
$old->{'value'} = $value;
|
||||
$lref->[$old->{'line'}] = "$name $value";
|
||||
}
|
||||
elsif (defined($value) && $oldcmt) {
|
||||
# Add value after commented version
|
||||
splice(@$lref, $oldcmt->{'line'}+1, 0, "$name $value");
|
||||
&renumber($conf, $oldcmt->{'line'}+1, $oldcmt->{'file'}, 1);
|
||||
push(@$conf, { 'name' => $name,
|
||||
'value' => $value,
|
||||
'enabled' => 1,
|
||||
'line' => $oldcmt->{'line'}+1,
|
||||
'file' => $oldcmt->{'file'} });
|
||||
}
|
||||
elsif (!defined($value) && $old) {
|
||||
# Delete current value
|
||||
splice(@$lref, $old->{'line'}, 1);
|
||||
&renumber($conf, $old->{'line'}, $old->{'file'}, -1);
|
||||
@$conf = grep { $_ ne $old } @$conf;
|
||||
}
|
||||
elsif ($value) {
|
||||
# Add value at end of file
|
||||
push(@$conf, { 'name' => $name,
|
||||
'value' => $value,
|
||||
'enabled' => 1,
|
||||
'line' => scalar(@$lref),
|
||||
'file' => $deffile });
|
||||
push(@$lref, "$name $value");
|
||||
|
||||
for(my $i=0; $i<@old || $i<@values; $i++) {
|
||||
local $old = $old[$i];
|
||||
local $oldcmt = $oldcmt[$i];
|
||||
local $value = $values[$i];
|
||||
local $lref = &read_file_lines($old ? $old->{'file'} :
|
||||
$oldcmt ? $oldcmt->{'file'} :
|
||||
$deffile);
|
||||
if (defined($value) && $old) {
|
||||
# Just update value
|
||||
$old->{'value'} = $value;
|
||||
$lref->[$old->{'line'}] = "$name $value";
|
||||
}
|
||||
elsif (defined($value) && $oldcmt) {
|
||||
# Add value after commented version
|
||||
splice(@$lref, $oldcmt->{'line'}+1, 0, "$name $value");
|
||||
&renumber($conf, $oldcmt->{'line'}+1, $oldcmt->{'file'}, 1);
|
||||
push(@$conf, { 'name' => $name,
|
||||
'value' => $value,
|
||||
'enabled' => 1,
|
||||
'line' => $oldcmt->{'line'}+1,
|
||||
'file' => $oldcmt->{'file'} });
|
||||
}
|
||||
elsif (!defined($value) && $old) {
|
||||
# Delete current value
|
||||
splice(@$lref, $old->{'line'}, 1);
|
||||
&renumber($conf, $old->{'line'}, $old->{'file'}, -1);
|
||||
@$conf = grep { $_ ne $old } @$conf;
|
||||
}
|
||||
elsif ($value) {
|
||||
# Add value at end of file
|
||||
push(@$conf, { 'name' => $name,
|
||||
'value' => $value,
|
||||
'enabled' => 1,
|
||||
'line' => scalar(@$lref),
|
||||
'file' => $deffile });
|
||||
push(@$lref, "$name $value");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -434,5 +446,12 @@ if ($changed) {
|
||||
&unlock_file($afile);
|
||||
}
|
||||
|
||||
# get_ldap_client()
|
||||
# Returns either "nss" or "nslcd" depending on the LDAP client being used
|
||||
sub get_ldap_client
|
||||
{
|
||||
return $config{'auth_ldap'} =~ /nslcd/ ? 'nslcd' : 'nss';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
15
ldap-client/restart.cgi
Executable file
15
ldap-client/restart.cgi
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Re-start the LDAP client daemon
|
||||
|
||||
require './ldap-client-lib.pl';
|
||||
&error_setup($text{'start_err'});
|
||||
|
||||
&fix_ldap_authconfig();
|
||||
&foreign_require("init");
|
||||
&init::stop_action($config{'init_name'});
|
||||
($ok, $out) = &init::start_action($config{'init_name'});
|
||||
$ok || &error($out);
|
||||
|
||||
&webmin_log("restart");
|
||||
&redirect("");
|
||||
|
||||
@@ -10,10 +10,11 @@ $conf = &get_config();
|
||||
|
||||
# Validate and save inputs, starting with global base
|
||||
$in{'base'} =~ /\S/ || &error($text{'base_ebase'});
|
||||
&save_directive($conf, "base", $in{'base'});
|
||||
@bases = ( $in{'base'} );
|
||||
|
||||
# Save scope
|
||||
&save_directive($conf, "scope", $in{'scope'} || undef);
|
||||
@scopes = ( );
|
||||
push(@scopes, $in{'scope'}) if ($in{'scope'});
|
||||
|
||||
# Save time limit
|
||||
if ($in{'timelimit_def'}) {
|
||||
@@ -26,21 +27,50 @@ else {
|
||||
|
||||
# Save per-service bases
|
||||
foreach $b (@base_types) {
|
||||
local $base;
|
||||
if ($in{"base_".$b."_def"}) {
|
||||
&save_directive($conf, "nss_base_".$b, undef);
|
||||
$base = undef;
|
||||
}
|
||||
else {
|
||||
local $base = $in{"base_".$b};
|
||||
$base = $in{"base_".$b};
|
||||
$base =~ /\S/ || &error($text{'base_e'.$b});
|
||||
if ($in{'scope_'.$b}) {
|
||||
$base .= "?".$in{'scope_'.$b};
|
||||
if (&get_ldap_client() eq "nss") {
|
||||
# Scope is appended to the base
|
||||
$base .= "?".$in{'scope_'.$b};
|
||||
}
|
||||
else {
|
||||
# Scopes are saved separately
|
||||
push(@scopes, $b." ".$in{'scope_'.$b});
|
||||
}
|
||||
}
|
||||
if ($in{'filter_'.$b}) {
|
||||
$base .= "?" if ($in{'scope_'.$b});
|
||||
$file .= "?".$in{'filter_'.$b};
|
||||
if (&get_ldap_client() eq "nss") {
|
||||
# Filter is appended to the base
|
||||
$base .= "?" if ($in{'scope_'.$b});
|
||||
$file .= "?".$in{'filter_'.$b};
|
||||
}
|
||||
else {
|
||||
# Filters are saved separately
|
||||
push(@filters, $b." ".$in{'filter_'.$b});
|
||||
}
|
||||
}
|
||||
}
|
||||
if (&get_ldap_client() eq "nss") {
|
||||
# Update DB-specific directive
|
||||
&save_directive($conf, "nss_base_".$b, $base);
|
||||
}
|
||||
else {
|
||||
# Add to list of base directives to save
|
||||
push(@bases, $b." ".$base) if ($base);
|
||||
}
|
||||
}
|
||||
|
||||
# Save all base, scope and filter directives
|
||||
&save_directive($conf, "base", \@bases);
|
||||
&save_directive($conf, "scope", \@scopes);
|
||||
if (&get_ldap_client() eq "nslcd") {
|
||||
&save_directive($conf, "filter", \@filters);
|
||||
}
|
||||
|
||||
# Write out config
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user