Compare commits

..

232 Commits
1.730 ... 1.750

Author SHA1 Message Date
Jamie Cameron
a6901947c2 New version bump 2015-05-10 13:42:47 -07:00
Jamie Cameron
8912154c0b New Postfix version 2015-05-10 13:40:53 -07:00
Jamie Cameron
6b34d179bb changelog for pkgsrc support 2015-05-10 11:00:48 -07:00
Jamie Cameron
bb2f091a17 pkgsrc has no local install mode 2015-05-10 10:50:47 -07:00
Jamie Cameron
dfd337009f Translation function for pkgsrc package names 2015-05-10 10:41:07 -07:00
Jamie Cameron
554cba6eba MacOS is supported now, with pkgsrc 2015-05-10 10:28:46 -07:00
Jamie Cameron
9d3e0e85ba Correct version and description display for packages not installed yet 2015-05-10 10:25:29 -07:00
Jamie Cameron
7d670cc449 More work on MacOS pkgsrc support 2015-05-10 09:57:25 -07:00
Jamie Cameron
0cc0a893a2 Get list of files in a package on MacOS 2015-05-09 21:55:38 -07:00
Jamie Cameron
b7190b1927 Start of work on pkgsrc support 2015-05-09 15:36:55 -07:00
Jamie Cameron
68890d8f2b Remove from the distribution modules for ancient software 2015-05-07 16:50:00 -07:00
Jamie Cameron
03f4c9fd56 Dev version bump 2015-05-05 19:55:50 -07:00
Jamie Cameron
c813b1c068 Allow multiple comma-separated IPs 2015-05-05 18:42:38 -07:00
Jamie Cameron
aafb66e45c changelog for launchd support 2015-05-03 10:23:05 -07:00
Jamie Cameron
8f0d32b764 More changes needed to support launchd 2015-05-03 10:14:03 -07:00
Jamie Cameron
62bf3b6cd4 Change the usermin boot script slightly to work with launchd 2015-05-03 10:10:20 -07:00
Jamie Cameron
58a454dc23 Change the webmin boot script slightly to work with launchd 2015-05-03 10:08:10 -07:00
Jamie Cameron
5a74498b87 Mailcap module needs to access the user's config 2015-05-03 10:07:21 -07:00
Jamie Cameron
ac238e37d1 More work on launchd support for MacOS X 2015-05-02 15:33:36 -07:00
Jamie Cameron
9e4269ebae Add command line option to not fork 2015-05-02 15:09:53 -07:00
Jamie Cameron
dfb0db593d New Debian versions 2015-04-29 19:52:55 -07:00
Jamie Cameron
79e2bf69b4 Show at-boot setting 2015-04-28 21:34:52 -07:00
Jamie Cameron
c153fae3d8 Suppress warnings when gpg doesn't output anything http://virtualmin.com/node/36979 2015-04-28 20:57:18 -07:00
Jamie Cameron
c1105d0ac5 Add support for deleting launchd agents 2015-04-26 17:22:38 -07:00
Jamie Cameron
fdffa9ee42 Use consistent comment type 2015-04-26 16:52:34 -07:00
Jamie Cameron
cb008888bf Launchd action creation now working 2015-04-26 16:30:27 -07:00
Jamie Cameron
86ce05ec3b UI for adding a launchd agent 2015-04-26 15:35:31 -07:00
Jamie Cameron
a42fbc5bd0 Param for MAC address is actually hwaddress https://sourceforge.net/p/webadmin/bugs/4589/ 2015-04-26 15:28:09 -07:00
Jamie Cameron
441b9f1502 Show detailed CPU information on MacOS 2015-04-26 10:19:09 -07:00
Jamie Cameron
1e0100b424 Show memory usage in bytes too 2015-04-26 10:03:05 -07:00
Jamie Cameron
288a377e71 Collect RAM and swap usage on macos 2015-04-26 09:50:50 -07:00
Jamie Cameron
12e2aecbda Give credit for translations 2015-04-26 09:23:44 -07:00
Jamie Cameron
2d83ca6cdf Catalan update from Jaume Badiella 2015-04-26 09:23:16 -07:00
Jamie Cameron
f498f36bef Catalan update from Jaume Badiella 2015-04-26 09:23:04 -07:00
Jamie Cameron
2eb957fc04 German translation updates from Raymond Vetter 2015-04-26 09:21:06 -07:00
Jamie Cameron
9cff0de208 Correct function's documented return type 2015-04-25 22:00:29 -07:00
Jamie Cameron
4b2ba48e58 Work on launchd support 2015-04-25 22:00:07 -07:00
Jamie Cameron
d47ee41c32 Fix remote host to run command on after failure in the case where there are multiple hosts http://virtualmin.com/node/36948 2015-04-25 21:54:38 -07:00
Jamie Cameron
22f3d49e5c Show password DB type 2015-04-25 15:02:00 -07:00
Jamie Cameron
a10dd02a49 New Mint versions 2015-04-23 17:03:37 -07:00
Jamie Cameron
52196635a3 Use reload command by default to avoid cache re-read https://sourceforge.net/p/webadmin/bugs/4588/ 2015-04-21 14:52:10 -07:00
Jamie Cameron
59efd239ea Devel version bump 2015-04-17 12:39:51 -07:00
Jamie Cameron
1a1deef64a UNit names can have spaces or funny characters at the start 2015-04-16 19:04:25 -07:00
Jamie Cameron
132ea695bc UNit names can have spaces or funny characters at the start 2015-04-16 19:03:50 -07:00
Jamie Cameron
743d0d59ad Multi-part TXT records are not automatically joined by a space, so when creating an SPF record this has to be explicitly added 2015-04-15 21:19:52 -07:00
Jamie Cameron
7162dbaa8e Detect more IPsec variants 2015-04-15 18:47:25 -07:00
Jamie Cameron
c378e60ec7 Show process sizes using sensible units https://github.com/webmin/webmin/issues/202 2015-04-13 22:34:02 -07:00
Jamie Cameron
9612e05536 give credit for norwegian 2015-04-10 22:31:09 -07:00
Jamie Cameron
f38442bbae Sort users by login 2015-04-08 17:18:22 -07:00
Jamie Cameron
cf0ddafbe0 German translation updates from Raymond Vetter 2015-04-07 20:31:04 -07:00
Jamie Cameron
1727c9917d German translation updates from Raymond Vetter 2015-04-07 20:30:57 -07:00
Jamie Cameron
18d16d7639 Don't append the architecture un-necessarily, as this breaks upgrades that change it http://virtualmin.com/node/36740 2015-04-05 16:19:53 -07:00
Jamie Cameron
3d20f8c56e Jails can apparently have no actions http://virtualmin.com/node/36768 2015-04-05 14:45:13 -07:00
Jamie Cameron
d4264be5fd A max tick time of -1 means unlimited 2015-04-05 12:05:32 -07:00
Jamie Cameron
6d553a10ad Allow max ticks time to be edited 2015-04-05 12:02:40 -07:00
Jamie Cameron
5f4180cf13 Update docs to modern day 2015-04-02 21:08:27 -07:00
Jamie Cameron
4aedfdb006 Update docs to modern day 2015-04-02 21:07:28 -07:00
Jamie Cameron
a3658ff653 fix wording 2015-04-02 20:59:39 -07:00
Jamie Cameron
d040242a7e Also use yum updateinfo to get security updates 2015-04-02 19:12:50 -07:00
Jamie Cameron
019e5e15e6 Semicolon can be a comment character too 2015-04-02 16:57:38 -07:00
Jamie Cameron
2a8797c49c Merge pull request #199 from tandrup/httpOnly-cookies
Add httpOnly to cookies on login page. Solves #4565.
2015-04-01 21:03:44 -07:00
Jamie Cameron
ab1095e529 Disallow TRACE requests, which we don't even support 2015-04-01 16:54:38 -07:00
Mads Mætzke Tandrup
30168f57bb Add httpOnly to cookies on login page. Solves #4565.
Add httpOnly to pam_login and session_login to avoid security scans reporting false positives on cookies without httpOnly
2015-04-01 14:37:02 +02:00
Jamie Cameron
0a2eb1d520 --to-source can be followed by just a :port 2015-03-29 21:47:13 -07:00
Jamie Cameron
ec4f05ec5f Use correct permissions for MH format too 2015-03-29 18:09:18 -07:00
Jamie Cameron
7a9b4d0b2b Use correct permissions when moving email between users http://virtualmin.com/node/36696 2015-03-29 18:07:40 -07:00
Jamie Cameron
b7b6624ee8 Fix escaping of % in commands http://virtualmin.com/node/36673 2015-03-27 15:06:42 -07:00
Jamie Cameron
f455c24054 Make Net::SSLeay mandatory 2015-03-26 20:30:52 -07:00
Jamie Cameron
ee94c220da German translation updates from Raymond Vetter 2015-03-26 20:30:08 -07:00
Jamie Cameron
615f97f47e German translation updates from Raymond Vetter 2015-03-26 20:29:51 -07:00
Jamie Cameron
1ef26769b6 IPfilter live output can contain inet before 'from' http://virtualmin.com/node/36645 2015-03-26 17:22:29 -07:00
Jamie Cameron
04ed6406e7 Add separate command before/after blacklist refresh http://virtualmin.com/node/36643 2015-03-25 23:10:09 -07:00
Jamie Cameron
882dcb7384 Don't wrap regexps unexpectedly http://virtualmin.com/node/36656 2015-03-25 10:26:33 -07:00
Jamie Cameron
f29f13f817 Fix enabling of command block 2015-03-24 20:23:25 -07:00
Jamie Cameron
0a8abc529b German translation updates from Raymond Vetter 2015-03-23 20:22:53 -07:00
Jamie Cameron
72e2faa5b6 Dev version bump 2015-03-21 20:17:35 -07:00
Jamie Cameron
8291e1c98d Under NSLCD, scope and filter are separate directives 2015-03-21 20:09:06 -07:00
Jamie Cameron
df3fa20d6f Add button to restart LDAP client daemon, which is needed to apply settings 2015-03-21 18:01:08 -07:00
Jamie Cameron
4f532659b3 changelog for ldap fixes 2015-03-21 17:20:42 -07:00
Jamie Cameron
e1f086944d Permissions fix 2015-03-21 17:17:53 -07:00
Jamie Cameron
a13bce59e3 Fixes needed for CentOS 7 support 2015-03-21 17:17:39 -07:00
Jamie Cameron
ad46361cb0 for systemd services, the name may have .service appended 2015-03-21 17:11:19 -07:00
Jamie Cameron
fd5f09a816 Add Net::SSLeay as optional dependency to the Webmin RPM 2015-03-21 16:44:51 -07:00
Jamie Cameron
c38570cb9d In some cases, RPM mamay not list the file in the rpm --dump output if there are multiple hard links to it 2015-03-21 13:39:33 -07:00
Jamie Cameron
324732d948 Norwegian update from Stein-Aksel Basma 2015-03-20 15:45:13 -07:00
Jamie Cameron
78c5892c6a Handle different format for base directive in NSLCD http://virtualmin.com/node/36531 2015-03-18 21:53:55 -07:00
Jamie Cameron
a1e74e6659 Deal with long user/group names by requesting UIDs instead 2015-03-17 22:34:15 -07:00
Jamie Cameron
4caa56aa80 Deal with long user/group names by requesting UIDs instead 2015-03-17 22:33:31 -07:00
Jamie Cameron
95c494d9fc Handle un-formatted MAC addresses 2015-03-16 19:01:14 -07:00
Jamie Cameron
2dd92dc2b7 Allow default match mode to be configured 2015-03-16 18:59:29 -07:00
Jamie Cameron
f5580c4046 Exclude release scripts from modules 2015-03-15 11:49:39 -07:00
Jamie Cameron
cefecfb173 Don't modify a list that is being iterated over 2015-03-13 16:41:34 -07:00
Jamie Cameron
181d92ff48 New version bump 2015-03-12 17:32:01 -07:00
Jamie Cameron
d27a31e2d6 Fix dupe string 2015-03-12 17:30:19 -07:00
Jamie Cameron
c07bd9ca04 New windows versions 2015-03-12 17:08:01 -07:00
Jamie Cameron
ce5a1484fe give credit for catalan update 2015-03-10 23:27:18 -07:00
Jamie Cameron
22cb340cb3 More catalana 2015-03-10 23:25:05 -07:00
Jamie Cameron
f27cad3665 Catalan update from Jaume Badiella 2015-03-10 23:23:00 -07:00
Jamie Cameron
701795dc51 Catalan update from Jaume Badiella 2015-03-10 23:22:43 -07:00
Jamie Cameron
1cf1cf12f4 Allow Squid 3.5 https://sourceforge.net/p/webadmin/bugs/4573/ 2015-03-10 23:00:18 -07:00
Jamie Cameron
6790c03792 Filename is not a username 2015-03-10 16:59:21 -07:00
Jamie Cameron
8f38cdac33 Users can actually have numeric names 2015-03-10 16:58:23 -07:00
Jamie Cameron
3a833870ff Fix spelling error 2015-03-08 21:52:19 -07:00
Jamie Cameron
723e5fd0ad Skip packages inside module or theme directores 2015-03-08 12:27:30 -07:00
Jamie Cameron
63132ded2a New dev version bump 2015-03-06 10:42:28 -08:00
Jamie Cameron
968456b408 Include authentic theme 2015-03-05 14:27:13 -08:00
Jamie Cameron
3f53a503db Make the upload tracker a bit larger https://github.com/webmin/webmin/issues/196 2015-03-05 10:17:37 -08:00
Jamie Cameron
31ad58fda8 Use a single line break instead of <p> 2015-03-05 09:31:28 -08:00
Jamie Cameron
005873dcd9 Handle un-readable DBM format files http://virtualmin.com/node/36386 2015-03-04 14:12:29 -08:00
Jamie Cameron
18fdc2a9ba Take summary of disk usage out of header 2015-03-04 14:02:54 -08:00
Jamie Cameron
e11ef0ed93 Don't un-comment or use cace_dir entries that are not paths https://sourceforge.net/p/webadmin/bugs/4523/ 2015-03-04 11:25:54 -08:00
Jamie Cameron
b33a605699 German translation updates from Raymond Vetter 2015-03-02 15:09:34 -08:00
Jamie Cameron
bab827542b Don't use modifiers that don't look valid 2015-02-28 16:15:37 -08:00
Jamie Cameron
ea838d0500 Respect modifiers when generating records https://sourceforge.net/p/webadmin/bugs/4566/ 2015-02-28 16:13:11 -08:00
Jamie Cameron
975e7ad13f Allow saving of generators with modifiers https://sourceforge.net/p/webadmin/bugs/4566/ 2015-02-28 16:03:09 -08:00
Jamie Cameron
34e9b20324 German translation updates from Raymond Vetter 2015-02-28 10:17:42 -08:00
Jamie Cameron
7d42268b80 Properly pass through the referrer header http://virtualmin.com/node/36327 2015-02-27 18:20:18 -08:00
Jamie Cameron
64d1e8f4b4 The output from yum list-sec doesn't always contain the word security 2015-02-26 21:30:09 -08:00
Jamie Cameron
d40b907ad2 Update message to better reflect actual UI http://virtualmin.com/node/36326 2015-02-26 10:56:29 -08:00
Jamie Cameron
e30670bb2e German translation updates from Raymond Vetter 2015-02-25 17:05:41 -08:00
Jamie Cameron
3115b17fa1 Add MostlyLinux support 2015-02-24 16:13:52 -08:00
Jamie Cameron
d3242017bc German translation updates from Raymond Vetter 2015-02-24 14:29:40 -08:00
Jamie Cameron
aeb98e9d77 Merge pull request #192 from bradleykite/master
Allow "transfer-source" to be specified so slave zones within the views ...
2015-02-23 14:28:33 -08:00
Bradley Kite
118f705eb4 Allow "transfer-source" to be specified so slave zones within the views can match the correct view on the master. 2015-02-23 11:06:41 +00:00
Jamie Cameron
f302357943 Allow use of status description in custom email https://sourceforge.net/p/webadmin/bugs/4561/ 2015-02-22 14:37:02 -08:00
Jamie Cameron
a81c833462 German translation updates from Raymond Vetter 2015-02-22 13:18:56 -08:00
Jamie Cameron
d5f2981d02 When looking for the default lib.pl in a clone, the name should be based on the original module 2015-02-21 22:03:06 -08:00
Jamie Cameron
8ed9a84180 Allow module-level vetoing 2015-02-21 09:30:08 -08:00
Jamie Cameron
14af860ed5 Handle case where devices directory doesn't exist, due to remove of Network Manager 2015-02-20 21:56:53 -08:00
Jamie Cameron
dbd29ec126 If a slave zone is in binary format, convert it to text when it becomes a master http://virtualmin.com/node/36245 2015-02-20 16:58:22 -08:00
Jamie Cameron
3fcb565086 German translation updates from Raymond Vetter 2015-02-19 21:31:06 -08:00
Jamie Cameron
c7789ce801 Fix bug that prevents sending email if a single DB backup fails http://virtualmin.com/node/33129 2015-02-19 17:46:43 -08:00
Jamie Cameron
79d3d04fc3 Fix passing of miniserv config https://sourceforge.net/p/webadmin/bugs/4560/ 2015-02-19 10:20:11 -08:00
Jamie Cameron
ad5a6c9688 Fix inconsistency 2015-02-18 22:44:31 -08:00
Jamie Cameron
80a428e0e6 German translation updates from Raymond Vetter 2015-02-18 22:43:05 -08:00
Jamie Cameron
45cd9cf322 Installation into VMs is actually OK, as they can still have the non-hardware time set https://sourceforge.net/p/webadmin/bugs/4534/ 2015-02-18 21:42:49 -08:00
Jamie Cameron
7fd6e5f0ef Show full IMAP response if line cannot be parsed 2015-02-17 21:51:25 -08:00
Jamie Cameron
cf091c95e1 German translation updates from Raymond Vetter 2015-02-15 16:57:24 -08:00
Jamie Cameron
959b355848 Refresh package caches in all modules http://www.virtualmin.com/node/36084 2015-02-13 14:53:37 -08:00
Jamie Cameron
baf5d23a6f Don't use double header https://github.com/webmin/webmin/issues/189 2015-02-11 19:56:43 -08:00
Jamie Cameron
ec1353a720 icons_table function already prints https://sourceforge.net/p/webadmin/bugs/4492/ 2015-02-08 18:59:19 -08:00
Jamie Cameron
9938636224 Clarify param meaning 2015-02-08 10:35:53 -08:00
Jamie Cameron
ac8634bf75 Actually, the inet6 addr: format is only used by the ifconfig command 2015-02-08 10:34:49 -08:00
Jamie Cameron
5a8ae25d02 Handle different output format from ip addr command http://virtualmin.com/comment/edit/143915 2015-02-08 10:33:03 -08:00
Jamie Cameron
990e75724d Remove redundant fallback method http://virtualmin.com/node/36094 2015-02-08 10:30:22 -08:00
Jamie Cameron
8099d2b045 Bring functions for checking allowed IPs into sync http://virtualmin.com/node/36017 2015-02-06 14:34:36 -08:00
Jamie Cameron
0ffdd6c842 German translation updates from Raymond Vetter 2015-02-04 22:03:10 -08:00
Jamie Cameron
61f55a1343 German translation updates from Raymond Vetter 2015-02-04 22:03:07 -08:00
Jamie Cameron
8297c3d42f Pass port flag to backup and restore commands http://virtualmin.com/node/36093 2015-02-03 19:34:41 -08:00
Jamie Cameron
c5c8f0d05f Fix IP matching function when dealing with partial networks http://virtualmin.com/node/36017 2015-02-03 15:31:57 -08:00
Jamie Cameron
a71bf42232 Bugfixes and custom port support 2015-02-02 19:50:27 -08:00
Jamie Cameron
6e873a172a Merge branch 'master' of git@github.com:webmin/webmin 2015-01-31 15:56:06 -08:00
Jamie Cameron
e4766eb2ba German translation updates from Raymond Vetter 2015-01-31 15:55:35 -08:00
Joe Cooper
1c2bdf0f0c Typo 2015-01-30 18:09:38 -06:00
Jamie Cameron
aef1cbbeab Deal with different ifconfig format 2015-01-29 21:20:49 -08:00
Jamie Cameron
dc9cb83946 Add delay before starting to placate systemd 2015-01-29 15:37:12 -08:00
Jamie Cameron
288c05d8f1 Deal with different output format as seen in BareOS 1.4 2015-01-27 21:52:22 -08:00
Jamie Cameron
2f34f1412d Don't link back to virtualmin for root 2015-01-26 20:27:48 -08:00
Jamie Cameron
99e1eda954 Stop setting un-needed var to diable ACL checking 2015-01-26 20:04:38 -08:00
Jamie Cameron
bae3f5e77b Skip ACL check for scripts that aren't run via the web 2015-01-26 20:02:14 -08:00
Jamie Cameron
ada457ed56 German translation updates from Raymond Vetter 2015-01-25 10:24:10 -08:00
Jamie Cameron
f9a2d37e08 Add empty en_GB file at top level, so that .UTF-8 variant gets created 2015-01-24 21:14:49 -08:00
Jamie Cameron
c30ca90170 Show charset 2015-01-24 21:01:50 -08:00
Jamie Cameron
ceb1a57dd8 Don't wrap command in brackets if it already starts with them, as this can cause escaping problems with some shells 2015-01-23 17:20:09 -08:00
Jamie Cameron
cbeaed860b Allow restore of non-module files from the backup https://sourceforge.net/p/webadmin/bugs/4545/ 2015-01-23 16:12:45 -08:00
Jamie Cameron
9054e37d3a German translation updates from Raymond Vetter 2015-01-22 17:46:08 -08:00
Jamie Cameron
1925ba53c4 Handle some odd IP route setup seen on CentOS 7 http://virtualmin.com/node/35910 2015-01-22 08:16:47 -08:00
Jamie Cameron
998407be9a icon for new record type 2015-01-20 22:22:49 -08:00
Jamie Cameron
416ae2b62f icon for new record type 2015-01-20 22:18:06 -08:00
Jamie Cameron
1c38031703 icon for new record type 2015-01-20 22:17:38 -08:00
Jamie Cameron
6d5f109068 Use ; and space as DMARC separators 2015-01-19 17:45:29 -08:00
Jamie Cameron
d05c0c70f4 Fix typo 2015-01-19 16:31:20 -08:00
Jamie Cameron
14d8e45d4f Version bump for DMARC feature 2015-01-19 15:01:06 -08:00
Jamie Cameron
75518c5227 Fix theme name 2015-01-19 14:40:10 -08:00
Jamie Cameron
6b1a006ca1 Fix version 2015-01-19 14:30:04 -08:00
Jamie Cameron
5e68b937d7 Remove bad links 2015-01-19 14:29:28 -08:00
Jamie Cameron
d65ff9a623 Bring back the old blue theme, but with modern code 2015-01-19 14:24:12 -08:00
Jamie Cameron
a116a5e10f Apache 2.4 needs a Require all granted directive to allow access 2015-01-19 11:14:05 -08:00
Jamie Cameron
889d7d2ea0 Fixes for DMARC record editing 2015-01-18 22:39:39 -08:00
Jamie Cameron
754248f6af Support for editing DMARC records, similar to the way SPF is handled 2015-01-18 18:41:07 -08:00
Jamie Cameron
f3fba12703 Add ID for recollect button, so it can be vetod 2015-01-18 11:57:16 -08:00
Jamie Cameron
a71f333ff0 When overwriting a file via a temp file, keep the old permissions. Otherwise, let the umask apply 2015-01-17 23:31:28 -08:00
Jamie Cameron
8c80095878 000 is a valid umask 2015-01-17 23:15:50 -08:00
Jamie Cameron
dad6a7c3e9 Use correct permissions on source and dest folders when copying 2015-01-17 20:18:30 -08:00
Jamie Cameron
50991313bf German translation updates from Raymond Vetter 2015-01-17 15:52:47 -08:00
Jamie Cameron
6b4ec5b3f0 Use modern UI library 2015-01-17 12:03:51 -08:00
Jamie Cameron
88b73eaea4 Allow visible system info sections to be selected in the module ACL 2015-01-17 11:50:23 -08:00
Jamie Cameron
e263e49912 Ignore commented out cache paths that are actually just headings http://virtualmin.com/node/35881 2015-01-17 10:33:20 -08:00
Jamie Cameron
f8dfa52d92 Allow display of system temps in fahrenheit http://virtualmin.com/node/35875 2015-01-16 23:34:34 -08:00
Jamie Cameron
73cc25e127 Fix checking of server type 2015-01-13 18:51:03 -08:00
Jamie Cameron
07e9a01919 MYSQL_PASS can't be used when running as a different user if the user has a .my.cnf file https://www.virtualmin.com/node/35764 2015-01-13 15:58:34 -08:00
Jamie Cameron
04cc026a61 Document function 2015-01-13 15:42:29 -08:00
Jamie Cameron
17c63ef178 Put file handle into a package, so that all callers can use it 2015-01-12 16:37:06 -08:00
Jamie Cameron
51ca560718 Clear out SMTP SSL and port when connecting locally 2015-01-12 16:31:51 -08:00
Jamie Cameron
2c363c3238 German translation updates from Raymond Vetter 2015-01-12 15:50:47 -08:00
Jamie Cameron
12735f1c54 Fix checkbox image 2015-01-11 16:01:57 -08:00
Jamie Cameron
a87593651f Dev version bump 2015-01-11 14:05:12 -08:00
Jamie Cameron
5f54caa5a9 Support easier to use release flag 2015-01-11 10:03:25 -08:00
Jamie Cameron
89897579f5 Use named param 2015-01-11 10:03:15 -08:00
Jamie Cameron
3d18a1b9fd Add support for SSL encrypted SMTP connections 2015-01-11 10:03:02 -08:00
Jamie Cameron
b8073652fd Allow selection of SSL mode for sending email 2015-01-11 09:44:12 -08:00
Jamie Cameron
6cf9f5243c Make default more obvious 2015-01-11 09:34:31 -08:00
Jamie Cameron
5ea42f455e Use webprefix relative path 2015-01-10 20:24:27 -08:00
Jamie Cameron
34d891545e Add webprefix for CGI scripts 2015-01-10 20:22:11 -08:00
Jamie Cameron
0ef822606b Make notifications scarier 2015-01-10 16:16:05 -08:00
Jamie Cameron
69185c1df3 Use proper args in send_mail function 2015-01-09 18:25:54 -08:00
Jamie Cameron
64468f1afa Add webprefix back to links http://sourceforge.net/p/webadmin/bugs/4536 2015-01-09 15:24:42 -08:00
Jamie Cameron
84bb9e4d22 Show current theme even if it should be hidden 2015-01-09 15:13:34 -08:00
Jamie Cameron
3e1cf3c298 Hide themes that are just links 2015-01-09 15:12:17 -08:00
Jamie Cameron
43039ddc43 Explicitly login as root, rather than having mysql commands guess this based on the username 2015-01-09 12:49:46 -08:00
Jamie Cameron
5e2c23e0c2 When deleting from an mbox file, open the temp file with root permissions but only if it doesn't yet exist https://github.com/webmin/webmin/issues/184 2015-01-08 23:27:46 -08:00
Jamie Cameron
fd6b3b3529 Correct encoding on french translation http://virtualmin.com/node/35757 2015-01-08 21:46:15 -08:00
Jamie Cameron
c8f8f55f1b Add webprefix to top-frame links http://sourceforge.net/p/webadmin/bugs/4536 2015-01-08 17:44:06 -08:00
Jamie Cameron
39bf55a410 Fix collection of RAID errors 2015-01-08 17:24:58 -08:00
Jamie Cameron
807de6e9ce Hide password in FTP error message http://virtualmin.com/node/35772 2015-01-08 10:54:12 -08:00
Jamie Cameron
6a30643822 Show error message if some disks have failed, even if there is no failure status https://sourceforge.net/p/webadmin/bugs/4497/ 2015-01-07 17:26:54 -08:00
Jamie Cameron
9d84a6fdca Use correct GID function 2015-01-07 13:57:28 -08:00
Jamie Cameron
c8b4672cc8 Use UUIDs in mdadm.conf when creating new arrays, thanks to Caspar Smit 2015-01-06 16:43:49 -08:00
Jamie Cameron
65ee16aad9 Fix error message 2015-01-06 10:13:21 -08:00
Jamie Cameron
fe4758b8eb Add reload button, and change the reload_postfix function to return an error instead of showing it to the user 2015-01-05 15:26:49 -08:00
Jamie Cameron
49e05cbdfe Users are referred to by username now, not index https://sourceforge.net/p/webadmin/bugs/4532/ 2015-01-05 10:41:16 -08:00
Jamie Cameron
8d9a68461d Also recognize a passphrase prompt http://sourceforge.net/p/webadmin/bugs/4531 2015-01-05 10:33:53 -08:00
Jamie Cameron
3037f233ac Gray theme doesn't do the full left menu yet https://sourceforge.net/p/webadmin/usermin-bugs/431/ 2015-01-05 10:15:02 -08:00
Jamie Cameron
852b8d7576 Don't show invalid bar charts 2015-01-05 09:58:23 -08:00
Jamie Cameron
4d0befa26f Remove vars we never use 2015-01-04 23:03:24 -08:00
Jamie Cameron
d39b7875e9 Actually, let modules choose their preferred sort order 2015-01-04 22:53:46 -08:00
Jamie Cameron
5b8308c011 Ensure sub-category items are sorted 2015-01-04 22:43:38 -08:00
Jamie Cameron
c48e9412e2 Give credit for translations 2015-01-04 15:56:00 -08:00
Jamie Cameron
4f1226697e Norwegian update from Stein-Aksel Basma 2015-01-04 15:55:31 -08:00
Jamie Cameron
fb66b43c67 German translation updates from Raymond Vetter 2015-01-03 22:23:17 -08:00
Jamie Cameron
e3bbfdda7c Show critical module versions 2015-01-01 19:13:28 -08:00
Jamie Cameron
b7eb16fe3a German translation updates from Raymond Vetter 2015-01-01 18:22:50 -08:00
439 changed files with 9108 additions and 4294 deletions

View File

@@ -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
View File

@@ -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

View File

@@ -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'});
}
}

View File

@@ -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

View 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.

View File

@@ -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=&lt;Enhver&gt;
core_realm=Navn for autentiseringsomr&#229;de
core_resp=Svar
core_rtout=Tidsavbrudd for foresp&#248;rsel
@@ -341,6 +343,7 @@ cvirt_eport='$1' er ikke en gyldig port
cvirt_eroot1=Du m&#229; oppgi dokumentrot
cvirt_eroot2=Kunne ikke opprette katalog '$1' : $2
cvirt_eroot3=Du har ikke tilgang til &#229; 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

View File

@@ -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;
}

View File

@@ -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));

View File

@@ -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...

View File

@@ -43,6 +43,7 @@ edit_mods=Module zum Sichern
edit_mods2=Module zum Zur&#252;ckschreiben
edit_nofiles=Server-Konfigurationsdateien
edit_other=Andere ausgew&#228;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&#228;hlt
restore_err=Wiederherstellung gescheitert!
restore_failed=.. gescheitert! $1
restore_testing=Extrahiere Inhalt von Backup von $1 ..

View File

@@ -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 ..

View File

@@ -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 &#229; 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&#248;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 ..

View File

@@ -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";

View File

@@ -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;
}

View File

@@ -371,35 +371,57 @@ log_delete_pool=Volume-Pool $1 gel&#246;scht
log_delete_pools=$1 Volume-Pools gel&#246;scht
log_delete_schedule=Backup-Zeitplan $1 gel&#246;scht
log_delete_schedules=$1 Backup-Zeitplan gel&#246;scht
log_delete_sdirector=Speicher-Daemon-Direktor $1 gel&#246;scht
log_delete_sdirectors=$1 Speicher-Daemon-Direktoren gel&#246;scht
log_delete_storage=Storage Daemon $1 gel&#246;scht
log_delete_storages=$1 Storage Daemons gel&#246;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&#228;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&#228;ndert
log_modify_sdirector=Speicher-Daemon-Direktor $1 modifiziert
log_modify_storage=Speicher-Daemon $1 modifiziert
log_mount=Speicher-Ger&#228;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&#228;t $1 unmounted
mount_done=.. erfolgreicht gemountet.
mount_err=Fehlgeschlagen Speicher-Ger&#228;t zu mounten
mount_eslot=Fehlende oder ung&#252;ltige Slot Nummer
mount_failed=.. mounten fehlgeschlagen! Siehe die Fehlermeldung f&#252;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&#228;t $1 ..
mount_slot=Auto-Lader-Slot
mount_slotno=Slotnummer
mount_storage=Speicherger&#228;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&#228;fix beschriften
pool_echild=Dieser Client kann nicht gel&#246;scht werden, da dieser von $1 genutzt wird
pool_eclash=Ein Speicherger&#228;t mit dem gleichen Namen ist bereits vorhanden
pool_egone=Volume Pool existiert nicht l&#228;nger!
pool_emax=Fehlende oder ung&#252;ltige maximale Anzahl an Jobs pro Volume
pool_ename=Fehlender Speicherger&#228;t-Name
pool_ereten=Fehlende oder ung&#252;ltige Aufbewahrungsfrist
pool_err=Fehlgeschlagen Speicherger&#228;t zu speichern
pool_header=Details vom Backup Volume Pool
pool_max=Maximale Jobs pro Volume
pool_maxvolsize=Maximale Volume Gr&#246;&#223;e (z.B. 5G f&#252;r 5 Gigabyte)
@@ -413,6 +435,7 @@ pool_type=Volume Pool Typ
pool_unlimited=Unlimitiert
pools_add=F&#252;ge einen neuen Volume Pool hinzu.
pools_delete=L&#246;sche ausgew&#228;hlte Datentr&#228;ger-Pools
pools_derr=Fehlgeschlagen Volume-Pools zu l&#246;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&#252;r <b>Wiederherstellen zum Client oder Gruppen</b> ausgew&#228;hlt werden, wenn eine Gruppe Bacula Job wiederhergestellt werden soll.
restore_eall2=Die <b>Alle Clients in Backup</b> Option kann nur gew&#228;hlt werden, f&#252;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&#228;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&#252;hren
schedule_times=L&#228;uft um
schedule_title1=Erstelle Backup-Zeitplan
schedule_title2=Editiere Backup-Zeitplan
schedules_add=F&#252;ge einen neuen Backup-Zeitplan hinzu.
schedules_delete=L&#246;sche ausgew&#228;hlte Zeitpl&#228;ne
schedules_derr=Fehlgeschlagen Zeitpl&#228;ne zu l&#246;schen
schedules_name=Zeitplan Name
schedules_none=Keine Sicherungspl&#228;ne wurden bisher festgelegt.
schedules_return=Liste der Zeitpl&#228;ne
schedules_sched=Level und Zeiten ausf&#252;hren
schedules_title=Backup-Zeitpl&#228;ne
sdirector_eclash=Ein Direktor mit dem gleichen Namen ist bereits vorhanden
sdirector_egone=Director existiert nicht l&#228;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 &#220;berwachung der Verbindung erlauben?
sdirector_name=Director Name
sdirector_pass=Akzeptiertes Passwort

View File

@@ -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.

View File

@@ -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

View File

@@ -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();
&copy_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("");

View File

@@ -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) {

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

BIN
bind8/images/NSEC3PARAM.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

View File

@@ -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

View File

@@ -106,7 +106,10 @@ controls_unixopt=Erlaube Kontrolle &#252;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&#246;tigt wird, um von einem bin&#228;ren Slave-Zone in ein Textformat-Master zu konvertieren, ist nicht installiert
convert_ecompile=Bin&#228;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&#228;ge-Datei $1 existiert nicht oder ist leer
convert_err=Zone konnte nicht umgewandelt werden
create_edom='$1' ist kein g&#252;ltiger Domainname
create_edom2='$1' muss eine Domain und kein Netzwerk sein
@@ -185,6 +188,7 @@ dt_zone_createkrf=Erstelle keyrec Datei f&#252;r die Zone $1 und verschiebe Schl
dt_zone_deleting_state=L&#246;sche aller Zust&#228;nde, die mit Zone $1 verbunden sind ...
dt_zone_desc=Diese Zone hat noch nicht bisher DNSSEC aktiviert. Sie k&#246;nnen dieses Formular nutzen, um Webmin mit DNSSEC-Tools automatisieren, so dass die Clients der Zone durch dieser Zone gegen DNS-Spoofing-Attacken gesch&#252;tzt sind.
dt_zone_disable=Deaktiviere DNSSEC
dt_zone_disabledesc=Entfernt diese Zone aus der Liste der Zonen, die durch DNSSEC-Tools f&#252;r die Zone-Signierung und Schl&#252;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=&#214;ffentlicher Schl&#252;ssel
edit_LOC=Ortsangabe
@@ -238,6 +243,9 @@ edit_ecname='$1' ist kein g&#252;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&#252;r $1
edit_eemail='$1' ist keine g&#252;ltige E-Mail-Adresse
edit_eflags='$1' ist keine g&#252;ltige dezimale oder hexadezimale Flagzahl
@@ -269,6 +277,7 @@ edit_espfinclude='$1' ist keine g&#252;ltige zus&#228;tzliche Domain von der E-M
edit_espfip='$1' ist keine g&#252;ltige IP-Adresse oder IP/Netzmaske um den Versand zu erlauben
edit_espfip6='$1' ist keine g&#252;ltige IPv6 Adresse oder IPv6/prefix von dem gesendet werden kann
edit_espfmx='$1' ist kein g&#252;ltiger Domainname um vom MX aus zu senden
edit_espfmxmax=Sie d&#252;rfen nicht mehr als 10 Domains erlauben MX zu senden von
edit_espfredirect='$1' ist kein alternativer Domainname
edit_etarget='$1' ist kein g&#252;ltiger Servername oder keine g&#252;ltige IP-Adresse.
edit_ettl='$1' ist keine g&#252;ltige Time-To-Live
@@ -362,7 +371,7 @@ gen_eskip=Fehlende oder ung&#252;ltige Schrittweite f&#252;r den Eintrag $1
gen_estart=Fehlender oder ung&#252;ltiger Startwert f&#252;r Eintrag $1
gen_estop=Fehlender oder ung&#252;ltiger Eintrag f&#252;r das Ende des Bereiches beim Eintrag $1
gen_evalue=Fehlendes oder ung&#252;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&#228;ge
@@ -370,7 +379,7 @@ gen_skip=Schrittweite
gen_title=Generierung von fortlaufenden Eintr&#228;gen
gen_title2=Erzeugte Eintr&#228;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&#246;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&#246;tigen Sie eventuell eine eigene Root-Zone in jeder Ansicht, so dass alle Clients die Internet Domains korrekt aufl&#246;sen k&#246;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&#246;scht
log_delete_zones=$1 Zonen gel&#246;scht
log_files=Dateien und Verzeichnisse ge&#228;ndert
log_forwarding=Forwarding und Transfer ge&#228;ndert
log_freeze=Zone $1 eingefroren
log_hint=Root-Zone erstellt
log_keys=DNS-Schl&#252;ssel ge&#228;ndert
log_logging=Logging und Fehler ge&#228;ndert
@@ -508,6 +518,7 @@ log_start=Gestarteter DNS-Server
log_stop=Gestoppter DNS-Server
log_stub=Stub Zone $1 erstellt
log_text=Datens&#228;tze f&#252;r $1 manuell bearbeitet
log_thaw=Zone $1 aufgetaut
log_trusted=DNSSEC Verifikation ge&#228;ndert
log_update_zones=Eintr&#228;ge in $1 Zonen ge&#228;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=&#214;ffentlicher Schl&#252;ssel
recs_LOC=Ortsangabe
@@ -958,6 +970,7 @@ type_A=Adresse
type_AAAA=IPv6-Adresse
type_ALL=Alle Eintr&#228;ge
type_CNAME=Namens-Alias
type_DMARC=DMARC
type_HINFO=Host-Information
type_KEY=&#214;ffentlicher Schl&#252;ssel
type_LOC=Ortsangabe
@@ -990,6 +1003,7 @@ umass_type=Eintragsarten f&#252;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&#252;r E-Mails, welche SPF oder DKIM fehlschl&#228;gt
value_dmarcpct=Prozentsatz der Nachrichten, um Regel anzuwenden
value_dmarcquar=Quarant&#228;ne-E-Mail
value_dmarcreject=Weise E-Mail zur&#252;ck
value_dmarcrua=Sende aggregiertes Feedback an
value_dmarcruf=Sende forensische Informationen an
value_dmarcsp=Regeln f&#252;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&#252;bertragung mit $1 Datens&#228;tze erfolgreich aus mindestens einem Nameserver empfangen. Die tats&#228;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&#252;ssel-Algorithmus
zonekey_already=Die Zone hat bereits einen DNSSEC-Schl&#252;ssel, und so ist es bereits signiert.
zonekey_ave=Durchschnittliche Gr&#246;&#223;e
zonekey_creating=Erstelle DNSSEC Schl&#252;ssel f&#252;r $1 ..
zonekey_desc=Diese Zone hat bisher keine DNSSEC-Signaturschl&#252;ssel. Sie k&#246;nnen dieses Formular verwenden, um mit Webmin welche zu erstellen, so dass die Clients diese Zone aufl&#246;sen k&#246;nnen und gegen DNS-Spoofing-Attacken gesch&#252;tzt sind.
zonekey_disable=L&#246;sche Schl&#252;ssel
zonekey_disabledesc=Entfernt die DNSSEC-Schl&#252;ssel aus dieser Zone und alle signierten Eintr&#228;gen. Sobald dies erledigt ist, werden Sie in der Lage, einen neuen Schl&#252;ssel zu generieren.
zonekey_done=.. fertig
zonekey_ds=DS Eintrag f&#252;r &#252;bergeordnete Zone :
zonekey_ecreate=.. Erzeugung fehlgeschlagen : $1

View File

@@ -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

View File

@@ -224,6 +224,7 @@ edit_KEY=Offentlig n&#248;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&#248;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&#248;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&#248;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&#229; salt
value_NSEC3PARAM5=Salt streng
value_PTR1=Vertsnavn
value_RP1=E-post adresse
value_RP2=Tekst-oppf&#248;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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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+$/ ||

View File

@@ -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
View 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 &#229; starte cfd,3,Bare kj&#248;r programmet
stop_cmd=Kommando for &#229; stoppe cfd,3,Bare stopp prosessen

387
cfengine/lang/no Normal file
View File

@@ -0,0 +1,387 @@
add_ecfengine=CFengine er ikke installert p&#229; tjener $1
add_echeck=Tjener $1 har ikke konfigurasjonsmotor modulen
add_err=Kunne ikke legge til tjener
add_eversion=CFengine p&#229; tjener $1 er versjon $2, men denne Webmin modulen st&#248;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&#229; systemet ditt. Kanskje den ikke er installert, eller s&#229; 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&#229; denne knappen for &#229; starte Configuration Engine daemonen med innstillingene ovenfor. Dette vil tillate andre verter &#229; kj&#248;re konfigurasjonen p&#229; denne tjeneren, og start tidsplanlagt kj&#248;ring av konfigurasjonen (hvis dette er aktivert).
cfd_stop=Stop Konfigurasjonsmotor Daemon
cfd_stopdesc=Klikk p&#229; denne knappen for &#229; stoppe Konfigurasjonsmotor daemonen. Dette vil forhindre andre verter fra &#229; kj&#248;re konfigurasjonen p&#229; denne tjeneren, og stopp den planlagte kj&#248;ringen av konfigurasjonen.
cfd_title=Konfigurasjonsmotor Daemon
cluster_failed=Kunne ikke kj&#248;re CFengine p&#229; $1 : $2
cluster_header=Kj&#248;rer konfigurasjonsmotor p&#229; alle verter i klyngen ..
cluster_success=Output fra CFengine p&#229; $1 ..
cluster_title=Kj&#248;r Konfigurasjonsmotor
edit_actionadd=Legg til valgt handling
edit_actionseq=Handlinger som skal kj&#248;res i rekkef&#248;lge
edit_admit=Gi tilgang til kataloger
edit_all=Enhver klasse
edit_class=Bruk p&#229; klasse
edit_cmd=Skall-kommando som skal kj&#248;res
edit_cmdgroup=Kj&#248;r som gruppe
edit_cmdowner=Kj&#248;r som bruker
edit_cmdtimeout=Tidsavbrudd
edit_controlall=Alle adresser
edit_controlallow=Tillat tilkoblinger fra
edit_controlauto=Kommando som skal kj&#248;res i hht. tidsplan
edit_controldef=Global definisjon
edit_controldeny=Nekt tilkoblinger fra
edit_controldom=Domenenavn
edit_controlelapsed=Minimum minutter mellom kj&#248;ringer
edit_controlinterval=Minutter mellom tidsplanlagte kj&#248;ringer
edit_controllog=Loggf&#248;r alle tilkoblinger?
edit_controlmax=Maksimum samtidige kj&#248;ringer
edit_controlnone=Ingen adresser
edit_controlrun=Kommando som skal kj&#248;res p&#229; foresp&#248;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&#229;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&#248;rrelses-begrensing
edit_copysize1=Er lik
edit_copysize2=Mindre enn
edit_copysize3=St&#248;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 &#229; deaktivere
edit_disrot=Handling ved deaktivering
edit_disrot0=Omd&#248;p med <tt>.cfdisabled</tt> tilf&#248;yd
edit_disrot1=Trunker fil
edit_disrot2=Roter $1 ganger
edit_dissize=Deaktiver bare dersom st&#248;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&#248;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&#248;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&#229;
edit_grant=$edit_admit
edit_grantdir=Katalog
edit_granthosts=Verter og verts-m&#248;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&#248;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&#248;nster som skal matches
edit_procowner=Kj&#248;r kommando som bruker
edit_procrestart=Kommando som skal kj&#248;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&#248;rrelsesbegrensing
edit_tidysize0=Enhver filst&#248;rrelse
edit_tidysize1=Tomme filer
edit_tidysize2=Filer st&#248;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&#248;r konfigurasjon
hosts_copydesc=Klikk p&#229; denne knappen for &#229; 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&#248;rer CFengine er definert enda.
hosts_opts=Innstillinger for kj&#248;rende konfigurasjoner
hosts_return=tjener liste
hosts_run=Kj&#248;r Configuration Engine
hosts_rundesc=Klikk p&#229; denne knappen for &#229; kj&#248;re Konfigurasjonsmotor p&#229; 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&#248;r kommando $1
index_classes=Bruk p&#229; klasser
index_control=Kj&#248;r handling $1
index_control2=Kj&#248;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&#229; systemet ditt. Kanskje den ikke er installert, eller s&#229; er <a href='$2'>modulkonfigurasjonen</a> feil.
index_econfig=Konfigurasjonsmotor konfig.filen $1 ble ikke funnet p&#229; systemet ditt. Kanskje den ikke er installert, eller s&#229; 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&#229; systemet ditt er versjon $2, men denne Webmin modulen st&#248;tter bare versjonene $3.
index_files=Sett tillatelser p&#229; $1
index_files2=Sett tillatelser p&#229; $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 &#248;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&#248;r Konfigurasjonsmotor
index_rundesc=Klikk p&#229; denne knappen for &#229; kj&#248;re kommandoen $1 p&#229; denne verten. Alle handlinger listet ovenfor vil bli utf&#248;rt umiddelbart, der det er n&#248;dvendig.
index_section=Handlingstype
index_shellcommands=Kj&#248;r kommando $1
index_shellcommands2=Kj&#248;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&#248;rte vertskonfigurasjoner
log_push=Endret eksterne konfigurasjonsverter
log_run=Kj&#248;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&#229; systemet ditt. Kanskje den ikke er installert, eller s&#229; 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&#248;rer vertskonfigurasjoner med kommandoen $1 ..
push_header=Konfigurasjonstjener distribusjonsinnstillinger
push_host=Klient vertsnavn
push_opts=CFengine innstillinger for klient
push_push=Kj&#248;r vertskonfigurasjoner
push_pushdesc=Klikk p&#229; denne knappen for &#229; kj&#248;re Konfigurasjonsmotor p&#229; 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&#248;r vertskonfigurasjoner
push_users=Brukere som kan kj&#248;re <tt>cfrun</tt>
run_desc=Denne siden kan brukes til &#229; kj&#248;re Konfigurasjonsmotor p&#229; denne verten. N&#229;r den kj&#248;res vil handlingene du har konfigurert bli utf&#248;rt der det er n&#248;dvendig.
run_dry=Vis bare det som ville blitt gjort?
run_exec=Kj&#248;rer kommando $1 ..
run_header=Innstillinger for &#229; kj&#248;re CFengine p&#229; denne verten
run_nocmd=Kan utf&#248;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&#248;r n&#229;
run_title=Kj&#248;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 &#229; tillate angitt
save_econtrolauto=Kommando som skal kj&#248;res automatisk '$1' finnes ikke
save_econtroldef=Ugyldig navn for global definisjon $1
save_econtroldeny=Ingen adresser &#229; nekte angitt
save_econtroldomain=Ugyldig domenenavn
save_econtrolelapsed=Ugyldig minimum minutter mellom kj&#248;ringer
save_econtrolinterval=Ugyldig antall minutter mellom tidsplanlagte kj&#248;ringer
save_econtrolrun=Kommando &#229; kj&#248;re '$1' finnes ikke
save_econtrolskip=Ingen adresser &#229; hoppe over omvendt oppslag for angitt
save_ecopydest=Mangler m&#229;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&#229; for kopi av $1
save_ecopyserver=Manglende eller ugyldig tjener for kopi av $1
save_ecopysize=Manglende eller ugyldig st&#248;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&#248;rrelse for fil $1
save_eeditfile=Manglende fil &#229; 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&#248;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&#248;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&#229; for filer i katalogen $1
save_egrantdir=Ugyldig sti for katalog $1
save_egranthost='$1' er ikke gyldig vert eller vertsm&#248;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&#248;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 &#229; 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 &#229; rydde $1
save_etidyage=Manglende eller ugyldig antall dager for katalog $1
save_etidypat=Manglende eller ugyldig film&#248;nster for katalog $1
save_etidyrec=Manglende elelr ugyldig heltalls rekursjonsniv&#229; for katalog $1
save_etidysize=Manglende eller ugyldig filst&#248;rrelse for katalog $1
section_admit=Tillatte kataloger
section_binservers=Tjenere for bin&#230;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&#248;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&#248;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&#248;nstre (som <tt>*.domene.no</tt>).
type_classes=$type_group
type_control_0=Feltet nedenfor angir handlinger som utf&#248;res n&#229;r konfigurasjonsmotoren kj&#248;rer, i den rekkef&#248;lgen de utf&#248;res. Handlinger som ikke vises her vil ikke bli kj&#248;rt, selv om de er angitt p&#229; hovedsiden.
type_control_1=Innstillingene nedenfor kontrollerer den globale oppf&#248;rselsen til bakgrunnsprosessen som mottar foresp&#248;rsler om &#229; utf&#248;re konfigurasjonen p&#229; denne verten, n&#229;r dette foresp&#248;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&#229;lkatalogen/-disken, n&#229;r n&#248;dvendig. Du kan ogs&#229; velge &#229; kopiere fra en ekstern vert, s&#229; lenge den verten kj&#248;rer konfigurasjonsmotor daemonen og tillater denne verten &#229; kopiere filer.
type_defaultroute=N&#229;r denne handlingen kj&#248;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&#248;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 &#229; se om de finnes og er i overenstemmelse med valgte st&#248;rrelses- og type-kriterier, og i s&#229; fall bli deaktivert enten ved omd&#248;ping aller avkorting.
type_disks=$type_required
type_editfiles=Tekstomr&#229;det nedenfor kan brukes for &#229; legge inn et script som redigerer valgt fil ved &#229; legge til, slette eller oppdatere linjer der det er n&#248;dvendig. Sjekk CFengines dokumentasjon for &#229; se syntaksen for dette script-spr&#229;ket.
type_grant=$type_admit
type_groups=Bruk tabellen nedenfor til &#229; definere ekstra grupper av verter som brukes andre steder i konfigurasjonen som klassenavn. Grupper kan ogs&#229; inneholde skall-kommandoer i sp&#248;rringer som utf&#248;res for &#229; 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&#248;ring kan v&#230;re en full sti, en skall-stil regul&#230;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&#229;l, vil den vanligvis ikke bli endret.
type_miscmounts=NFS filsystem monteringer angitt nedenfor vil bli sjekket og montert hvis n&#248;dvendig n&#229;r CFengine kj&#248;res. NFS tjener og sti feltet m&#229; angis p&#229; standard format (<tt>tjenernavn:/sti/navn</tt>). Monteringsinnstillinger m&#229; v&#230;re p&#229; samme format som brukes i <tt>/etc/fstab</tt> filen, og er valgfrie.
type_processes=Bruk feltet nedenfor til &#229; s&#248;ke etter prosesser som matcher angitt m&#248;nster, og eventuelt sende dem et signal for &#229; stoppe dem. N&#229;r en prosess stoppes kan du ogs&#229; angi en kommando som skal kj&#248;res for &#229; starte prosessen p&#229; nytt.
type_required=Filsystemene angitt nedenfor vil bli sjekket n&#229;r denne handlingen kj&#248;res for &#229; verifisere at de er montert, og hvis ikke vil det bli vist en advarsel. Hvert filsystem vil ogs&#229; bli sjekket for &#229; se om ledig diskplass er under et eventuelt angitt minimum.
type_resolve=DNS tjeners IP adresse som du angir nedenfor vil bli brukt til &#229; oppdatere <tt>/etc/resolv.conf</tt> n&#229;r denne handlingen kj&#248;res.
type_shellcommands=Kommandoene angitt nedenfor vil bli utf&#248;rt hver gang konfigurasjonsmotoren kj&#248;res. Feltene for bruker og gruppe er valgfrie - dersom ingenting er angitt i disse vil kommandoen kj&#248;res som root. Feltet for tidsavbrudd er ogs&#229; valgfritt - dersom det ikke er angitt noe tidsavbrudd vil CFengine vente helt til kommandoen er fullf&#248;rt.
type_tidy=Katalogene angitt nedenfor vil bli scannet for filer som matcher valgte navne-, alders- og tidspunkt-kriterier hver gang CFengine kj&#248;res. Alle filer som finnes vil bli slettet, uten at noen sikkerhetskopi tas.

View File

@@ -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>­ 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

View File

@@ -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;

View File

@@ -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

View File

@@ -1,36 +1,36 @@
__norefs=1
acl_lang=Darf Sprache &#228;ndern?
acl_pass=Darf das Passwort &#228;ndern, wenn das in Webmin so eingestellt ist?
acl_theme=Darf Design &#228;ndern?
change_done=.. erledigt
change_ecolon=Ihr Passwort darf das Zeichen <tt> : </tt> nicht enthalten!
change_eoverlay=Sie k&#246;nnen kein ein Thema Overlay ausw&#228;hlen, sofern ein UI theme gew&#228;hlt wurde
change_eoverlay2=Das ausgew&#228;hlte Thema Overlay ist nicht kompatibel mit dem gew&#228;hlten UI Thema
change_epass=Neues Passwort ist ung&#252;ltig : $1
index_overlaydef=Keine - benutze Design Standards
index_themeglobal=Globales Design ($1)
index_langset=Pers&#246;nliche Auswahl ..
change_epass2=Neue Passw&#246;rter stimmen nicht &#252;berein
change_redirect=Leite zum Hauptmen&#252; zur&#252;ck ..
change_restart=Starte Webmin neu ..
change_title=&#196;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&#246;nliche Auswahl ..
index_desc2=Dieses Modul kann lediglich f&#252;r das &#196;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 &#228;ndern?
change_eoverlay=Sie k&#246;nnen kein ein Thema Overlay ausw&#228;hlen, sofern ein UI theme gew&#228;hlt wurde
index_passagain=Erneute Passworteingabe
index_themedef=Altes Webmin-Design
index_theme=Webmin-Design
index_ok=&#196;nderungen durchf&#252;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&#246;nliche Auswahl ..
index_ok=&#196;nderungen durchf&#252;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&#228;ndert lassen
index_passset=Einstellen auf ..
index_theme=Webmin-Design
index_themedef=Altes Webmin-Design
index_themeglobal=Globales Design ($1)
index_themeset=Pers&#246;nliche Auswahl ..
index_pass=Webmin-Passwort
index_d1=$1
change_restart=Starte Webmin neu ..
acl_theme=Darf Design &#228;ndern?
index_d2=$1 und $2
index_overlay=Theme overlay
index_title=Sprache und Design von Webmin &#228;ndern
change_redirect=Leite zum Hauptmen&#252; zur&#252;ck ..
change_eoverlay2=Das ausgew&#228;hlte Thema Overlay ist nicht kompatibel mit dem gew&#228;hlten UI Thema
change_title=&#196;ndere die Einstellungen
index_dpass=dem Passwort, welches zum Anmelden erforderlich ist,
index_passset=Einstellen auf ..
acl_pass=Darf das Passwort &#228;ndern, wenn das in Webmin so eingestellt ist?
index_dlang=der Sprache, in welcher die Module angezeigt werden
change_epass=Neues Passwort ist ung&#252;ltig : $1

View File

@@ -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

View File

@@ -20,7 +20,7 @@ index_dlang=spr&#229;ket modulene vises i
index_dpass=passordet brukt til &#229; logge inn p&#229;
index_dtheme=temaet som kontrollerer Webmins utseende
index_lang=Webmin UI spr&#229;k
index_langglobal=Globalt spr&#229;k ($1)
index_langglobal2=Globalt spr&#229;k .. $1 ($2)
index_langset=Personlig valg
index_ok=Lagre endringer
index_overlay=Tema overstyring

View File

@@ -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");

View File

@@ -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);
}

View File

@@ -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));

View File

@@ -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);

View File

@@ -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)) {

View File

@@ -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'}) );

View File

@@ -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
View 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

View File

@@ -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'}) {

View File

@@ -116,6 +116,7 @@ my @rv;
while(<$fh>) {
s/\r|\n//g;
s/^\s*#.*$//;
s/^\s;.*$//;
if (/^\[([^\]]+)\]/) {
# Start of a section
$sect = { 'name' => $1,

View File

@@ -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
View File

@@ -0,0 +1,159 @@
__norefs=1
action_ban=Kommando for &#229; bannlyse en IP
action_check=Kommando som skal kj&#248;res f&#248;r en IP bannlyses
action_desc=<i>&lt;ip&gt;</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&#248;res ved Fail2Ban oppstart
action_stop=Kommando som skal kj&#248;res ved Fail2Ban avstenging
action_title1=Opprett Match handling
action_title2=Rediger Match handling
action_unban=Kommando for &#229; 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&#229;l
config_edef=Ingen Definition seksjon funnet i konfig.fil!
config_elogtarget=Filen som logger skal skrives til m&#229; v&#230;re en absolutt sti
config_err=Kunne ikke lagre global konfigurasjon
config_esocket=Socket-fil m&#229; v&#230;re en absolutt sti
config_file=Loggfil
config_header=Konfig. innstillinger for Fail2Ban
config_loglevel=Minimum loggingsniv&#229;
config_logtarget=Skriv logger til
config_socket=Socket for kommunikasjon med tjener
config_syslog=Syslog tjeneste
config_title=Global konfigurasjon
filter_desc=Bruk <i>&lt;HOST&gt;</i> i regul&#230;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&#230;rt uttrykk &#229; 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&#230;re uttrykk &#229; matche
filter_header=Loggfilter detaljer
filter_ignore=Regul&#230;re uttrykk &#229; 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&#230;rt uttrykk
filters_return=liste over filtere
filters_title=Loggfiltere
index_atboot=Start ved oppstart?
index_atbootdesc=Endre denne innstillingen for &#229; kontrollere hvorvidt Fail2Ban tjeneren startes n&#229;r systemet startes opp. Hvis n&#248;dvendig, vil det bli opprettet et oppstartsscript slik at tjeneren startes p&#229; korrekt m&#229;te.
index_echeck=En feil oppstod under oppdaging av Fail2Ban p&#229; dette systemet : $1. Enten er den ikke installert eller s&#229; er <a href='$2'>modulkonfigurasjonen</a> feil.
index_fail2ban=Fail2Ban
index_restart=Omstart Fail2Ban tjener
index_restartdesc=Klikk p&#229; denne knappen for &#229; ta i bruk gjeldende konfigurasjon ved &#229; omstarte Fail2Ban tjeneren.
index_return=modulindeks
index_start=Start Fail2Ban tjener
index_startdesc=Klikk p&#229; denne knappen for &#229; starte Fail2Ban tjeneren, slik at logganalyse blir utf&#248;rt.
index_stop=Stopp Fail2Ban tjener
index_stopdesc=Klikk p&#229; denne knappen for &#229; 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 &#229; 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&#229; v&#230;re et tall st&#248;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&#229; v&#230;re et tall st&#248;rre enn null
jail_egone=Fengsel finnes ikke lenger!
jail_eignoreip=Ugyldig IP-adresse &#229; ignorere
jail_elogpath=Alle loggfiler m&#229; v&#230;re absolutte stier eller m&#248;nstere
jail_elogpaths=Ingen loggfil-stier angitt
jail_emaxretry=Matches for en handling tas i bruk m&#229; v&#230;re et tall st&#248;rre enn null
jail_enabled=Aktivert for &#248;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&#248;kes i logg etter
jail_findtime=Maks forsinkelse mellom matcher
jail_gamin=Gamin filendrings-overv&#229;ker
jail_header=Detaljer for filter-handling fengsel
jail_ignoreip=IP-adresser som aldri skal bannlyses
jail_logpath=Loggfil stier
jail_maxretry=Matcher f&#248;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&#229; som antall p&#229;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

View File

@@ -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

View File

@@ -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);

View File

@@ -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";

View File

@@ -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

View File

@@ -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;

View File

@@ -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)

View File

@@ -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&#246;schen m&#246;chten?
clear_title=Regeln leeren
cluster_add=F&#252;ge Server hinzu
cluster_delete=Ausgew&#228;hltes l&#246;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&#246;schen
delete_ok=L&#246;sche jetzt
delete_rusure=Sind Sie sicher, dass Sie die Kette $1 l&#246;schen m&#246;chten? $2 Regeln werden in ihr gel&#246;scht.
delete_title=L&#246;sche Regel
desc_always=Immer
desc_and=und
@@ -170,6 +172,7 @@ index_auto5=Blockiere alles ausgenommen Ports die f&#252;r virtuelles Hosting be
index_bootup=Aktiviere beim Booten
index_bootupdesc=&#196;ndert die Option, um zu kontrollieren, ob Ihre Firewall beim Booten aktiviert ist oder nicht.
index_cclear=L&#246;sche alle Regeln
index_cdelete=L&#246;sche Kette
index_cdeletesel=L&#246;sches ausgew&#228;hltes
index_chain=Regel $1
index_chain_forward=Weitergeleitete Pakete (FORWARD) - Gilt nur f&#252;r Pakete, die dieser Host weitergeleitet hat
@@ -182,6 +185,7 @@ index_cluster=Cluster Server
index_clusterdesc=Klicken Sie auf diese Schaltfl&#228;che, um zus&#228;tzliche Webmin-Server einzurichten, mit denen die Firewall-Konfiguration automatisch kopiert werden.
index_cmovesel=Verschiebe ausgew&#228;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&#246;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&#252;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&#246;ffnet
log_rename_chain=Kette $1 in Tabelle $2 umbenannt
log_setup=Firewall eingerichtet
log_unapply=Konfiguration zur&#252;ckgesetzt
move_chain=Aktuelle &#196;nderung
move_count=Regeln ausgew&#228;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&#252;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&#252;ckzuf&#252;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

View File

@@ -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&#229; denne knappen for &#229; lagre konfigurasjonen ovenfor i den permanente brannmur-konfigurasjonsfilen
index_unapplydesc=Klikk p&#229; denne knappen for &#229; tilbakestille konfigurasjonen ovenfor til den konfigurasjonen som er aktive for &#248;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&#229; 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&#229; ditt system.
rename_adjust=Endre andre regler som hopper til denne kjeden?
rename_chain=Gjeldende navn
rename_count=Regler i kjede

View File

@@ -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;
}

View File

@@ -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.

View File

@@ -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>

View File

@@ -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

View File

@@ -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

View File

@@ -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 ..

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -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&nbsp;de&nbsp;$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
View 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&#248;k:
left_search_usermin=S&#248;k i Usermin:
left_search_webmin=S&#248;k i Webmin:

View File

@@ -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' ".

View File

@@ -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);

View File

@@ -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

View File

@@ -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.

View File

@@ -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();

View File

@@ -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 =~ /^(.*\/)[^\/]+$/) {

View File

@@ -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
View 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'});

View File

@@ -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();

View File

@@ -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;

View File

@@ -62,7 +62,9 @@ index_delboot_stop=Jetzt stoppen &amp; zur Bootzeit deaktivieren
index_desc=Beschreibung
index_downscript=Gleichfalls wird das Skript $1, welches unten aufgef&#252;hrt ist, beim Herunterfahren des Rechners ausgef&#252;hrt. Sie k&#246;nnen hier eigene Kommandos einf&#252;gen um beispielsweise sicher zu stellen, da&#223; 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

View File

@@ -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
View 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
View 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("");

View File

@@ -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);

View File

@@ -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()

View File

@@ -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&#228;tekombination $1
desc_extent=Ger&#228;t zu freigeben $1
desc_target=Freigab target $1
desc_target=Freigabe target $1
device_create=Erstelle Ger&#228;te-Kombination
device_derr=Fehlgeschlagen Ger&#228;te-Kombination zu l&#246;schen
device_edit=Editiere Ger&#228;te-Kombination
device_eextents=Keine Mitglieder-Ger&#228;te ausgew&#228;hlt
device_egone=Ger&#228;te-Kombination $1 existiert nicht!
device_einuse=Diese Ger&#228;tekombination kann nicht gel&#246;scht werden, da es durch $1 im Gebrauch ist
device_err=Fehlgeschlagen beim Speichern von Ger&#228;tekombination
device_eself=Eines der Mitgliedsger&#228;te, welches ausgew&#228;hlt wurde, enth&#228;lt dieses Ger&#228;t!
device_extents=Mitglieder-Ger&#228;te
device_got=Mitglieder-Ger&#228;te
device_header=Details an Ger&#228;te-Kombinationen
device_mode=Kombination-Typ
device_name=Ger&#228;t-Kombination-Name
device_poss=Alle verf&#252;gbaren Ger&#228;te
device_rusure=Sind Sie sicher, dass Sie die Ger&#228;tekombination $1 l&#246;schen wollen? Der Inhalt wird beibehalten, aber es wird nicht mehr iSCSI Clients zug&#228;nglich sein.
device_sure=L&#246;sche Ger&#228;t-Kombination
devices_add=F&#252;ge eine neue Ger&#228;tekombination hinzu.
devices_delete=L&#246;sche ausgew&#228;hlte Kombinationen
devices_denone=Nicht ausgew&#228;hlt
devices_derr=Fehlgeschlagen Ger&#228;te-Kombination zu l&#246;schen
devices_drusure=Sind Sie sicher, dass Sie die folgenden Ger&#228;tekombinationen entfernen m&#246;chten : $1? Der Inhalt bleibt erhalten, aber es wird nicht mehr f&#252;r iSCSI Clients zug&#228;nglich sein.
devices_einuse=Kombination $1 kann nicht gel&#246;scht werden, da es durch $2 im Gebrauch ist
devices_extents=Mitgliederger&#228;te
devices_mode=Kombinationstyp
devices_mode_raid0=Linear (RAID0)
devices_mode_raid1=Gespiegelt (RAID1)
devices_name=Kombinationsname
devices_none=Keine Ger&#228;tekombinationen wurden erstellt.
devices_return=Liste an Ger&#228;te-Kombinationen
devices_sure=L&#246;sche Ger&#228;te-Kombinationen
devices_title=Ger&#228;te-Kombinationen
extent_create=Erstelle Ger&#228;t zum teilen
extent_derr=Fehlgeschlagen Ger&#228;t zum teilen zu l&#246;schen
extent_device=Datei oder Festplattenger&#228;t zum teilen
extent_edit=Editiere Ger&#228;t zum teilen
extent_egone=Ger&#228;t zum teilen $1 existiert nicht!
extent_einuse=Dieses Ger&#228;t kann nicht gel&#246;scht werden, da es durch $1 im Gebrauch ist
extent_eother=Datei zum freigeben existiert nicht
extent_err=Fehlgeschlagen Ger&#228;t zum teilen zu speichern
extent_esize=Gr&#246;&#223;e des extent muss eine Zahl sein
extent_esizemax=Ende der extent darf nicht gr&#246;&#223;er als der Ger&#228;tegr&#246;&#223;e von $1 sein
extent_estart=Start des extent muss eine Zahl sein
extent_header=Details des Ger&#228;tes zum teilen
extent_lv=LVM VG $1, LV $2
extent_lvm=LVM logisches Volume
extent_md=RAID Ger&#228;t $1
@@ -16,13 +54,26 @@ extent_name=Ger&#228;tename
extent_other=Andere Datei oder Ger&#228;t
extent_part=Logische Festplattenpartition
extent_raid=RAID Ger&#228;t
extent_rusure=Sind Sie sicher, dass Sie das gemeinsam genutzte Ger&#228;t $1 l&#246;schen m&#246;chten? Der Inhalt wird beibehalten, aber es wird nicht mehr f&#252;r iSCSI Clients zug&#228;nglich sein.
extent_size=Gr&#246;&#223;e des extent zum Teilen
extent_size_def0=Angegebene Gr&#246;&#223;e
extent_size_def1=Gesamte Datei oder Ger&#228;t
extent_start=Start des extent zum Teilen
extent_sure=L&#246;sche Ger&#228;t
extents_add=F&#252;ge ein neues Ger&#228;t zum Teilen hinzu.
extents_delete=L&#246;sche ausgew&#228;hlte Ger&#228;te
extents_denone=Nichts ausgew&#228;hlt
extents_derr=Fehlgeschlagen Ger&#228;te zu l&#246;schen
extents_drusure=Sind Sie sicher, dass Sie die folgenden Ger&#228;te entfernen m&#246;chten: $1? Der Inhalt bleibt erhalten, aber sie werden nicht mehr f&#252;r iSCSI Clients zug&#228;nglich sein.
extents_einuse=Ger&#228;t $1 kann nicht gel&#246;scht werden, da es durch $2 im Gebrauch ist
extents_file=Datei oder Ger&#228;tepfad
extents_name=Ger&#228;tename
extents_none=Keine Ger&#228;te zum Teilen wurden bisher erstellt.
extents_return=Liste an Ger&#228;te zum teilen
extents_size=Gr&#246;&#223;e des extent
extents_start=Start des extent
extents_sure=L&#246;sche Ger&#228;te
extents_title=Ger&#228;t zum Teilen
index_atboot=Beim Booten starten?
index_atbootdesc=&#196;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&#228;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&#228;che, um den Betrieb von iSCSI-Server zu stoppen. Alle freigegebenen Ger&#228;te werden f&#252;r Clients nicht mehr zug&#228;nglich sein.
index_title=iSCSI-Server
log_atboot=iSCSI-Server beim Booten aktiviert
log_create_device=Ger&#228;tekombination $1 erstellt
log_create_extent=Ger&#228;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&#228;tekombination $ 1 gel&#246;scht
log_delete_devices=$1 Ger&#228;tekombinationen gel&#246;scht
log_delete_extent=Ger&#228;t zum Teilen $1 gel&#246;scht
log_delete_extents=$1 Ger&#228;te zum Teilen gel&#246;scht
log_delete_target=Sharing Ziel $1 gel&#246;scht
log_delete_targets=$1 Freigabe targets
log_delete_user=iSCSI Benutzer $1 gel&#246;scht
log_delete_users=$1 iSCSI Benutzer gel&#246;scht
log_manual=Konfigurationsdatei manuell editiert
log_modify_device=Ger&#228;te-Kombination $1 aktualisiert
log_modify_extent=Ger&#228;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

View File

@@ -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&#228;te &#252;ber das Netzwerk mit dem iSCSI-Protokoll mit dem netbsd-iscsi Paket.

View File

@@ -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
View File

@@ -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&nbsp;
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&nbsp;
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&nbsp;
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&nbsp;
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&nbsp;
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&nbsp;
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 &lt;header&gt; 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&nbsp;
month_10=Oktober&nbsp;
month_11=November&nbsp;
month_12=Dezember&nbsp;
month_2=Februar&nbsp;
month_3=März&nbsp;
month_4=April&nbsp;
month_5=Mai&nbsp;
month_6=Juni&nbsp;
month_7=Juli&nbsp;
month_8=August&nbsp;
month_9=September&nbsp;
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&nbsp;
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&nbsp;
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&nbsp;
feedback_all=Alle Module
chooser_date=Datum wählen
programname=Webmin
config_setto=Einstellen auf
modules_cancel=Abbrechen
help_eheader=Fehlender &lt;header&gt; 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&nbsp;
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&nbsp;
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&nbsp;
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

View File

@@ -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
View 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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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 = "&nbsp;" 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'})." ".

View File

@@ -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'});
}

View File

@@ -1,24 +1,60 @@
__norefs=1
base_aliases=Basis f&#252;r E-Mail-Aliase
base_base=Globale Suchbasis
base_bfilter=Suchfilter
base_bscope=Suchtiefe
base_ealiases=Fehlende Basis f&#252;r E-Mail-Aliase
base_ebase=Fehlende globale Suchbasis
base_egroup=Fehlende Basis f&#252;r Unix Gruppen
base_ehosts=Fehlende Basis f&#252;r Hostnamen
base_enetgroup=Fehlende Basis f&#252;r Netzgruppen
base_enetmasks=Fehlende Basis f&#252;r Netzwerknamen
base_enetworks=Fehlende Basis f&#252;r Netzwerknamen
base_epasswd=Fehlende Basis f&#252;r Unix Benutzer
base_eprotocols=Fehlende Basis f&#252;r Protokolle
base_err=Fehlgeschlagen LDAP Suchbasen zu speichern
base_eservices=Fehlende Basis f&#252;r Netzwerkdienste
base_eshadow=Fehlende Basis f&#252;r Unix Passw&#246;rter
base_etimelimit=Fehlende oder ung&#252;ltige Suchfrist
base_global=Globale Basis
base_group=Basis f&#252;r Unix Gruppen
base_header=LDAP Verzeichnis Suchorte
base_hosts=Basis f&#252;r Hostnamen
base_netgroup=Basis f&#252;r Netzgruppen
base_netmasks=Basis f&#252;r Netzwerknamen
base_networks=Basis f&#252;r Netzwerknamen
base_passwd=Basis f&#252;r Unix Benutzer
base_protocols=Basis f&#252;r Protokolle
base_sbase=Nur Basis
base_scope=Suchtiefe
base_secs=Sekunden
base_services=Basis f&#252;r Netzwerkdienste
base_shadow=Basis f&#252;r Unix Passw&#246;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&#246;nnen nicht verwendet werden : $1
browser_esearch=LDAP-Suche fehlgeschlagen : $1
browser_none=Keine
browser_ok=Zeigen
browser_parent=Durchsuche &#220;bergeordnetes
browser_sel=OK
browser_subs=Untergeordnete Objekte
browser_title=LDAP Browser
check_base=Finde LDAP Basis f&#252;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=&#196;ndert, ob der LDAP-Client D&#228;mon beim Booten gestarte
index_check=&#220;berpr&#252;fe Konfiguration
index_checkdesc=Klicken Sie auf diese Schaltfl&#228;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&#228;lt.
index_econf=Der NSS-LDAP-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Vielleicht ist die LDAP-Client-Unterst&#252;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&#228;hrend PAM-LDAP verwendet $2 nutzt. Dies kann Unstimmigkeiten zwischen den beiden Diensten f&#252;hren.
index_ignore=Zeige diese Nachricht nicht
index_ldapmod=LDAP Client
index_restart=LDAP Client Daemon neu gestartet
index_restartdesc=&#220;bernehme die aktuelle Konfiguration durch den Neustart des lokalen LDAP-Client-Daemons.
index_return=Modul Index
index_start=Starte LDAP Client D&#228;mon
index_startdesc=Startet den lokalen LDAP-Client D&#228;mon herunter, welcher ben&#246;tigt wird um den entfernten LDAP-Server abzufragen. Bis dieser gestartet ist k&#246;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=&#196;ndere Dienst $1
log_pam=Authentifizierungsoptionen ge&#228;ndert
log_restart=LDAP Client Daemon neu gestartet
log_server=LDAP Server Konfiguration modifiziert
log_start=LDAP Client D&#228;mon gestartet
log_stop=LDAP Client D&#228;mon gestoppt

View File

@@ -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 ..

View File

@@ -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
View 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("");

View File

@@ -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