Compare commits

...

201 Commits
1.700 ... 1.720

Author SHA1 Message Date
Jamie Cameron
d058fc20a1 Pass in CGI inputs param 2014-11-22 14:54:14 -08:00
Jamie Cameron
b0e5f067b7 Version bump 2014-11-21 23:06:16 -08:00
Jamie Cameron
48fb038510 Increase default new key size https://sourceforge.net/p/webadmin/bugs/4506/ 2014-11-21 22:19:47 -08:00
Jamie Cameron
e0a565d603 Remove dupe string 2014-11-19 22:54:08 -08:00
Jamie Cameron
41c6fd30b4 Fix typo 2014-11-19 22:47:25 -08:00
Jamie Cameron
31060b6d06 Allow mysqldump command to have args http://virtualmin.com/node/35318 2014-11-19 22:06:52 -08:00
Jamie Cameron
6c453316f6 German translation updates from Raymond Vetter 2014-11-19 21:40:54 -08:00
Jamie Cameron
6f28146479 Only MySQL 5.6+ supports the gtid-purged flag http://virtualmin.com/node/35336 2014-11-19 15:22:16 -08:00
Jamie Cameron
37f9bf9610 Fix version comparison between two packages with minor release numbers http://virtualmin.com/node/35291 2014-11-18 22:29:06 -08:00
Jamie Cameron
cdccfa120c Use configured flags for all calls to hwclock 2014-11-18 16:46:20 -08:00
Jamie Cameron
7c1c91b007 German translation updates from Raymond Vetter 2014-11-17 20:01:40 -08:00
Jamie Cameron
bac617fa01 German translation updates from Raymond Vetter 2014-11-17 14:11:13 -08:00
Jamie Cameron
1da01b566b fix typo 2014-11-17 14:10:54 -08:00
Jamie Cameron
eeca3125c2 Strings for usermin mail module left menu: 2014-11-16 14:39:09 -08:00
Jamie Cameron
6f5dd4ee59 Document new modes and include module in output 2014-11-16 14:34:21 -08:00
Jamie Cameron
750e66db57 Clarify fields for new theme API function 2014-11-15 15:10:29 -08:00
Jamie Cameron
36230c9d7e New API function to get combined list of Webmin menu items for themes 2014-11-15 15:06:08 -08:00
Jamie Cameron
9fae8e4d51 Fix call to missing function https://github.com/webmin/webmin/issues/179 2014-11-14 13:08:00 -08:00
Jamie Cameron
3f94e128c6 Updated french translation, thanks to 7stars 2014-11-12 20:11:50 -08:00
Jamie Cameron
3974506a2c German translation updates from Raymond Vetter 2014-11-10 17:27:33 -08:00
Jamie Cameron
95797d1b52 German translation updates from Raymond Vetter 2014-11-10 17:27:32 -08:00
Jamie Cameron
d5ce28b8b3 Add new Debian versions 2014-11-10 17:17:07 -08:00
Jamie Cameron
0b733047f3 Allow setting min size to rotate https://sourceforge.net/p/webadmin/bugs/4502/ 2014-11-07 12:25:32 -08:00
Jamie Cameron
314787b39c Fix link to view generated log to use the format expected by view_log.cgi https://github.com/webmin/webmin/issues/178 2014-11-07 11:59:02 -08:00
Jamie Cameron
314f244aab Detect the new MacOS X 2014-10-30 19:48:10 -07:00
Jamie Cameron
1dba4990f9 Fix invalid not-equals operator 2014-10-30 12:22:52 -07:00
Jamie Cameron
f94e99a745 Merge branch 'master' of git@github.com:webmin/webmin 2014-10-26 16:50:16 -07:00
Jamie Cameron
496dfff18b Deal with comment at end of run-parts command: 2014-10-26 16:50:02 -07:00
Jamie Cameron
6b020885b7 Merge pull request #175 from Perturbatio/develop
Added check for hide_admin_url config item
2014-10-25 00:17:49 +01:00
Jamie Cameron
3843bbfa74 Merge branch 'master' of https://github.com/webmin/webmin 2014-10-25 00:09:57 +01:00
Jamie Cameron
2ac4ce9e9a Protect against empty modules array http://sourceforge.net/p/webadmin/bugs/4498 2014-10-25 00:03:12 +01:00
Perturbatio
29f9c54a57 changed display_admin_url to hide_admin_url
changed display_admin_url to hide_admin_url and 
changed comparator to test if this value is not set to 1
2014-10-24 15:32:57 +01:00
Perturbatio
84970e7d78 removed default config item 2014-10-24 15:29:44 +01:00
Perturbatio
595e72f5f7 Inverted the comparison of display_admin_url
I've inverted the comparison of display_admin_url so 
that it must be set to 0 in order to disable it
2014-10-24 10:47:45 +01:00
Jamie Cameron
4ebb89c34b dev version bump 2014-10-24 02:44:30 -07:00
Perturbatio
4b59012184 added display_admin_url config to default config
The default value for this is 1 (to preserve backward
compatibility).
2014-10-24 00:56:04 +01:00
Perturbatio
6eb2314d10 Added check for display_admin_url config item
Added check for display_admin_url config item which if not 
set to 1 will prevent the server from revealing the admin URL
when the user visits the incorrect domain
(more useful in combination with the musthost config item)
2014-10-24 00:40:20 +01:00
Jamie Cameron
8a4e33ad4f Merge branch 'master' of git@github.com:webmin/webmin 2014-10-23 02:42:27 -07:00
Jamie Cameron
365e4bda6d German translation updates from Raymond Vetter 2014-10-23 02:41:55 -07:00
Jamie Cameron
5cd6c0578c German translation updates from Raymond Vetter 2014-10-23 02:41:53 -07:00
Jamie Cameron
72a68098f2 Update PCI compliant ciphers list 2014-10-22 10:36:37 +02:00
Jamie Cameron
1b16568d88 Merge branch 'master' of https://github.com/webmin/webmin 2014-10-20 21:09:16 +01:00
Jamie Cameron
ed0f1f30ca No need to cache post requests 2014-10-20 21:05:19 +01:00
Jamie Cameron
0b194ccd28 Fix message on redhat 2014-10-20 09:06:54 -07:00
Jamie Cameron
56cc1d0cd3 Polish translation update from Piotr Kozica 2014-10-20 09:06:14 -07:00
Jamie Cameron
31a707ce4b Update list of ciphers on upgrade 2014-10-19 10:09:24 -07:00
Jamie Cameron
5bba2e68c6 Supress warning if no config is setu 2014-10-19 10:03:49 -07:00
Jamie Cameron
5ca49334e7 Record cipher mode when saving 2014-10-19 18:01:15 +01:00
Jamie Cameron
0a92666d02 Record cipher mode at install time 2014-10-19 18:00:39 +01:00
Jamie Cameron
88389c68ff Cron jobs executed via Webmin don't know they are cron jobs, so set it here explicitly 2014-10-19 08:46:12 -07:00
Jamie Cameron
f2f7050d86 document SSL change 2014-10-19 08:32:38 -07:00
Jamie Cameron
02d3144e63 German translation updates from Raymond Vetter 2014-10-16 21:18:38 -07:00
Jamie Cameron
26f90d11c8 Only Apache 2.2.23 and above support the TLS v1.x options https://www.virtualmin.com/node/34803 2014-10-16 15:07:05 -07:00
Jamie Cameron
b657b9b5ab Actually respect no-ssl3 option in miniserv 2014-10-16 11:19:59 -07:00
Jamie Cameron
9f953c78a6 SSL options in usermin too 2014-10-16 11:19:28 -07:00
Jamie Cameron
fe43e60b3e Add options to disallow SSL v2 and v3, and disable them both by default 2014-10-16 11:16:10 -07:00
Jamie Cameron
9b73db8417 Maildir folder size should only include actual mail sub-dirs https://sourceforge.net/p/webadmin/bugs/4488/ 2014-10-16 09:53:17 -07:00
Jamie Cameron
ccbd04d0d0 Bring back SSL version option 2014-10-15 17:06:59 -07:00
Jamie Cameron
390308697b Don't hide real record name 2014-10-15 15:42:10 -07:00
Jamie Cameron
9a268a632e Lock all config files, rather than just the main one https://sourceforge.net/p/webadmin/bugs/4486/ 2014-10-15 15:31:05 -07:00
Jamie Cameron
289b96b426 German translation updates from Raymond Vetter 2014-10-13 17:42:32 -07:00
Jamie Cameron
6735d79b58 Show normalized values too 2014-10-11 11:25:58 -07:00
Jamie Cameron
ee87e6e555 Monitor type for wear level 2014-10-11 11:16:06 -07:00
Jamie Cameron
7e22ae2ad9 Close the upload window even if the Java callback fails 2014-10-10 18:55:07 -07:00
Jamie Cameron
eb34879151 Allow JS calls into java 2014-10-10 18:53:24 -07:00
Jamie Cameron
359297fa01 Keep route lines when editing an interface http://virtualmin.com/node/34470 2014-10-10 17:29:04 -07:00
Jamie Cameron
84c0756f39 Fix typo 2014-10-10 17:02:30 -07:00
Jamie Cameron
0c49e7f061 German translation updates from Raymond Vetter 2014-10-10 17:00:37 -07:00
Jamie Cameron
53f79a190c Make error message if iptables is missing nicer 2014-10-07 21:46:36 -07:00
Jamie Cameron
79627542bb fix perms 2014-10-07 11:15:17 -07:00
Jamie Cameron
24cd9c0063 Fix reload command on CentOS 7 http://virtualmin.com/node/34437 2014-10-07 10:09:32 -07:00
Jamie Cameron
ea1affa6ac German translation updates from Raymond Vetter 2014-10-06 17:34:58 -07:00
Jamie Cameron
0da2438fc5 German translation updates from Raymond Vetter 2014-10-06 17:34:58 -07:00
Jamie Cameron
75292f6673 Add API function for a popup window from a link 2014-10-06 15:36:43 -07:00
Jamie Cameron
14ef6f4188 Tilde can be a version separator 2014-10-06 10:22:16 -07:00
Jamie Cameron
e421c972b8 Reload isn't always reliale 2014-10-05 18:24:52 -07:00
Jamie Cameron
1f46fa73af Add missing space 2014-10-05 17:44:45 -07:00
Jamie Cameron
c73c3972fc Clarify return value 2014-10-05 17:26:46 -07:00
Jamie Cameron
0eb8698955 DOn't show files twice 2014-10-05 16:32:52 -07:00
Jamie Cameron
939a9ff0a0 Use service command including reload 2014-10-05 16:20:59 -07:00
Jamie Cameron
fe64f7c84c German translation updates from Raymond Vetter 2014-10-05 14:45:23 -07:00
Jamie Cameron
d98a34a0da German translation updates from Raymond Vetter 2014-10-05 14:45:22 -07:00
Jamie Cameron
b093796cd9 Prevent adding of host with the same name http://sourceforge.net/p/webadmin/bugs/4480/ 2014-10-03 20:28:32 -07:00
Jamie Cameron
02aff353d0 Allow custom commands to apply config to be set 2014-10-02 17:11:19 -07:00
Jamie Cameron
7a222875e1 Fix default config file paths for CentOS 6 2014-09-30 23:05:51 -07:00
Jamie Cameron
006326b38c Actually the main miniserv.pl PID is better https://sourceforge.net/p/webadmin/bugs/4479/ 2014-09-30 17:20:19 -07:00
Jamie Cameron
b2b453e8c4 Fix PID that is logged to utmp on login or logout https://sourceforge.net/p/webadmin/bugs/4479/ 2014-09-30 17:17:59 -07:00
Jamie Cameron
b1583f1db4 changelog for 1.710 2014-09-29 13:47:33 -07:00
Jamie Cameron
903999594a prod version bump 2014-09-29 11:22:48 -07:00
Jamie Cameron
fb83f6ef49 German translation updates from Raymond Vetter 2014-09-29 11:21:41 -07:00
Jamie Cameron
615d2a0255 Add extra protection against shelllshock, but blocking headers that look like shell functions 2014-09-29 10:32:57 -07:00
Jamie Cameron
9036ccaabd Version bump 2014-09-28 16:35:08 -07:00
Jamie Cameron
bb89e2756d Support for debian / ubuntu 2014-09-28 16:32:35 -07:00
Jamie Cameron
eb5b6dd35c Fix error about use of unitialized variables 2014-09-28 15:52:48 -07:00
Jamie Cameron
311dc8ae09 Remove un-needed file 2014-09-28 11:34:10 -07:00
Jamie Cameron
c3874dcdc1 Clarify meaning of param 2014-09-28 11:33:49 -07:00
Jamie Cameron
f7b606af1a Really get rid of recursive structure this time 2014-09-28 11:32:57 -07:00
Jamie Cameron
827f337003 Fix lint errors are remove recusive data structure 2014-09-28 11:30:24 -07:00
Jamie Cameron
73c96d21e7 Move flush up to the CGI 2014-09-28 10:44:30 -07:00
Jamie Cameron
1f436ebb28 log the file being edited 2014-09-28 10:25:59 -07:00
Jamie Cameron
a0c5747d95 Manual config file editing 2014-09-28 10:24:26 -07:00
Jamie Cameron
d62d4f6a39 Include new iSCSI module 2014-09-27 21:44:25 -07:00
Jamie Cameron
09a8cda636 Parse tgtd logs 2014-09-27 21:38:11 -07:00
Jamie Cameron
5a57c5cf10 Finished off saving of targets 2014-09-27 17:41:21 -07:00
Jamie Cameron
defd73f28e Fixes to get saving of targets working 2014-09-27 17:22:04 -07:00
Jamie Cameron
72389d0b1b Deletion scripts for targets 2014-09-27 17:07:07 -07:00
Jamie Cameron
b095f33c7a Work on editing and saving targets 2014-09-27 12:16:14 -07:00
Jamie Cameron
35b356e755 Allow directives to be added to the config only, no file 2014-09-27 11:46:32 -07:00
Jamie Cameron
1cbf8e8dcb Code to update entries in tgtd config 2014-09-27 10:49:21 -07:00
Jamie Cameron
3ac3be1878 Fix editing of 'other' category name http://virtualmin.com/node/34341 2014-09-27 09:33:17 -07:00
Jamie Cameron
333343af46 German translation updates from Raymond Vetter 2014-09-26 16:19:07 -07:00
Jamie Cameron
a5db316751 Add <td> to cover rest of table wen ending early http://virtualmin.com/node/34341 2014-09-26 13:11:58 -07:00
Jamie Cameron
10c183c35d Work on target editing page 2014-09-25 22:55:16 -07:00
Jamie Cameron
85c9fb169d Start/stop functions 2014-09-25 19:11:45 -07:00
Jamie Cameron
0153a70988 Support more SSL protocols https://github.com/webmin/webmin/issues/172 2014-09-24 20:17:35 -07:00
Jamie Cameron
2e5f70506a Start of work on iSCSI TGTD module 2014-09-24 17:12:57 -07:00
Jamie Cameron
30b5ffd8d4 Don't try to sync mailboxes if the mail system chose isn't installed https://sourceforge.net/p/webadmin/bugs/4477/ 2014-09-24 14:00:56 -07:00
Jamie Cameron
90365aad2d Disable network manager for new interfaces 2014-09-23 15:56:37 -07:00
Jamie Cameron
a63b9a30f2 German translation updates from Raymond Vetter 2014-09-23 13:19:13 -07:00
Jamie Cameron
5bf391c8b4 German translation updates from Raymond Vetter 2014-09-22 15:20:47 -07:00
Jamie Cameron
d5413e5442 German translation updates from Raymond Vetter 2014-09-22 15:20:42 -07:00
Jamie Cameron
572b480165 Bridges don't need to use ifup/down 2014-09-20 12:44:31 -07:00
Jamie Cameron
7b9fa73fcb Make sure module is an empty string, so that SQL queries don't fail 2014-09-19 23:09:42 -07:00
Jamie Cameron
86e0cfaf27 Show RAID status in more detail 2014-09-18 11:25:23 -07:00
Jamie Cameron
b6c0d87498 If not logged in as root, don't try to check gtid variable 2014-09-17 20:03:13 -07:00
Jamie Cameron
63826fe9b0 Remove debug code 2014-09-16 21:58:10 -07:00
Jamie Cameron
b318011bec German translation updates from Raymond Vetter 2014-09-16 14:49:23 -07:00
Jamie Cameron
835b7447ee Don't output second useless closing body tag 2014-09-16 14:45:56 -07:00
Jamie Cameron
b2b95391ac Fix a bunch of width typos 2014-09-16 10:46:02 -07:00
Jamie Cameron
e65ceefd9d Mention other RAID levels 2014-09-15 13:39:34 -07:00
Jamie Cameron
71e38f66cc German translation updates from Raymond Vetter 2014-09-15 13:38:57 -07:00
Jamie Cameron
62b9732f40 Support Listen directive as seen in Apache 2.4 2014-09-13 16:47:52 -07:00
Jamie Cameron
f73389554d Systemd units with @ in the name are legit, like virtualmin's clamd@scan 2014-09-13 16:06:21 -07:00
Jamie Cameron
7654c96a71 Spare / replacement disk improvements for RAID, thanks to Caspar Smit 2014-09-12 14:05:33 -07:00
Jamie Cameron
d245738402 German translation updates from Raymond Vetter 2014-09-12 10:43:52 -07:00
Jamie Cameron
4dfce19c05 Hot replace support for drives, thanks to Caspar Smit 2014-09-11 17:23:15 -07:00
Jamie Cameron
7600c095c7 German translation updates from Raymond Vetter 2014-09-11 15:17:00 -07:00
Jamie Cameron
123b434bea Fix typo 2014-09-10 21:10:54 -07:00
Jamie Cameron
ebcc8b32fe Prevent use of relative paths, and fix HTML editor error message 2014-09-10 19:26:00 -07:00
Jamie Cameron
c1aa42cd08 Improve RAID naming, fix layouts and add confirmation before removing a disk - thanks to Caspar Smit 2014-09-10 14:13:29 -07:00
Jamie Cameron
bee30e3ed0 dev version bump 2014-09-10 13:21:55 -07:00
Jamie Cameron
8447c6f89c Merge branch 'master' of git@github.com:webmin/webmin 2014-09-09 20:50:26 -07:00
Jamie Cameron
d616b00f61 Spanish update from Gustavo Gonzalez 2014-09-09 20:50:10 -07:00
Jamie Cameron
6f37277c36 Spanish update from Gustavo Gonzalez 2014-09-09 20:49:54 -07:00
Jamie Cameron
9096f4489d Include .local files where they exist 2014-09-09 17:06:39 -07:00
Jamie Cameron
5e66621cf2 Always use a backup file for raid conversions, and store it in a safer location 2014-09-08 13:27:11 -07:00
Jamie Cameron
d44c90c3ac What if both ip and ifconfig commands exist 2014-09-06 14:07:29 -07:00
Jamie Cameron
60f498345a remove useles library 2014-09-06 10:58:52 -07:00
Jamie Cameron
4d2760bc4b Use a rounder block size 2014-09-06 08:14:46 -07:00
Jamie Cameron
c18be20f47 Merge pull request #171 from Anialation81/patch-2
Slow FileManager downloads
2014-09-06 08:12:16 -07:00
Anialation81
76fdb8f67b Slow FileManager downloads
The 1024 read length seemed to be causing slow downloads (3 Mbps) on local networks. Changing it to 1000000 like the "Upload and Download" module fixes this problem and I get more than 50 Mbps.  I tried 1,000,000,000 but it locked up my server briefly.

This update matches the value in:
https://github.com/webmin/webmin/blob/master/updown/fetch.cgi
2014-09-06 01:03:42 -04:00
Jamie Cameron
fcac9df241 Merge pull request #170 from Anialation81/patch-1
Update index.cgi
2014-09-04 10:13:28 -07:00
Anialation81
0f0ea37cf1 Update index.cgi
In Google Chrome with the default body margin of 8px, the Java applet gets confused as to where you are clicking. Setting the body margin to 0px fixes the problem and makes the applet fill the space properly.
2014-09-04 10:44:04 -04:00
Jamie Cameron
953ab4863e Fix parsing of re-sync time when multiple devices are rebuilding, thanks to Caspar Smit 2014-09-02 16:44:28 -07:00
Jamie Cameron
c1ddc59034 Prevent double-adding of prefix https://sourceforge.net/p/webadmin/bugs/4465/ 2014-09-02 16:20:43 -07:00
Jamie Cameron
48260ea268 Use remote IP for all authentication if trusted https://github.com/webmin/webmin/issues/168 2014-09-01 15:12:34 -07:00
Jamie Cameron
36f0a46525 Handle resync being on a separate line 2014-09-01 14:53:54 -07:00
Jamie Cameron
e2fc6b848d Clean up schedule backup cron job on DB deletion 2014-09-01 14:37:24 -07:00
Jamie Cameron
aaecbcbc62 Delete backup cron job when removing DB 2014-09-01 10:25:30 -07:00
Jamie Cameron
cb2771d4ce RAID device names can be multi-digit 2014-09-01 07:45:14 -07:00
Jamie Cameron
7e3261c43c If systemd also shows init.d actions, prioritize the latter 2014-08-31 20:35:01 -07:00
Jamie Cameron
47ab551c80 Fix parsing of resync status, thanks to Caspar Smit 2014-08-30 14:58:45 -07:00
Jamie Cameron
79d6368a6b Catalan update from Jaume Badiella 2014-08-29 14:00:37 -07:00
Jamie Cameron
3cf804f04e Catalan update from Jaume Badiella 2014-08-29 14:00:04 -07:00
Jamie Cameron
1a64453dce German translation updates from Raymond Vetter 2014-08-29 13:55:39 -07:00
Jamie Cameron
828d747a6a Finished off pkgng support 2014-08-28 23:01:15 -07:00
Jamie Cameron
482e5f8e23 German translation updates from Raymond Vetter 2014-08-28 17:17:23 -07:00
Jamie Cameron
112ce34f95 Don't assume that df output will be in english 2014-08-28 17:15:13 -07:00
Jamie Cameron
6574f269d9 More work on FreeBSD pkg-ng support 2014-08-28 17:14:52 -07:00
Jamie Cameron
f864c77156 Fix broken index page links 2014-08-27 23:19:17 -07:00
Jamie Cameron
0f7fb28345 Fix broken links 2014-08-27 23:11:43 -07:00
Jamie Cameron
782e2a5d04 Start of work on FreeBSD pkg support 2014-08-27 21:34:07 -07:00
Jamie Cameron
033fa279f1 Fix generated record value 2014-08-27 16:30:11 -07:00
Jamie Cameron
70318ca08c Generated records are not free https://sourceforge.net/p/webadmin/bugs/4463/ 2014-08-27 16:26:12 -07:00
Jamie Cameron
c59bff82e6 Merge branch 'master' of git@github.com:webmin/webmin 2014-08-23 23:47:02 -07:00
Jamie Cameron
e4a7bc76f7 Add a label tag linking a field description with the input 2014-08-23 23:46:53 -07:00
Jamie Cameron
dc5e779ce3 Merge pull request #167 from intika/patch-1
Update for mangeia support
2014-08-23 23:24:28 -07:00
intika
7b969179d5 Update for mangeia support
Hello 

Here is a pull request to support mageia
2014-08-24 06:55:14 +02:00
Jamie Cameron
0bf5a91f77 CentOS 7 stores hostname in /etc/hostname 2014-08-23 20:17:25 -07:00
Jamie Cameron
861d49b9ab Don't set value tag if there is none 2014-08-23 10:46:06 -07:00
Jamie Cameron
3f9a8f95eb Clarify comment 2014-08-21 20:21:43 -07:00
Jamie Cameron
f47eabb6ae Use faster native perl module for encoding and decoding base-64 if available 2014-08-21 13:45:48 -07:00
Jamie Cameron
a792256200 Use fast decode module if installed 2014-08-20 23:55:42 -07:00
Jamie Cameron
b453d0a27c Actually this is needed to populate the cache 2014-08-20 23:23:40 -07:00
Jamie Cameron
bef2f7b17f Attachment flags aren't shown 2014-08-20 23:20:15 -07:00
Jamie Cameron
b544e9fe5c Add forgotted directory close 2014-08-20 23:02:01 -07:00
Jamie Cameron
f8956f9128 Number virtual interfaces starting at 0, as we do when adding 2014-08-20 16:14:50 -07:00
Jamie Cameron
91a25500c0 Basic read-only support for MBX format folders 2014-08-19 12:48:41 -07:00
Jamie Cameron
6f3cb32e49 Look for postqueue anywhere in the path 2014-08-19 11:06:01 -07:00
Jamie Cameron
7a242198ea Work on MBX format folders 2014-08-18 22:00:04 -07:00
Jamie Cameron
29df3dcec6 German translation updates from Raymond Vetter 2014-08-18 17:40:23 -07:00
Jamie Cameron
070de197a0 All redirects to ajp:// URLs https://sourceforge.net/p/webadmin/bugs/4458/ 2014-08-17 21:31:34 -07:00
Jamie Cameron
200e29ff24 version bump 2014-08-16 17:29:57 -07:00
Jamie Cameron
22af05015e Show per-user stats 2014-08-16 17:19:30 -07:00
Jamie Cameron
7eb7e034b3 Convert UUIDs to player names 2014-08-16 14:06:11 -07:00
Jamie Cameron
0e2af0dad0 Norwegian update from Stein-Aksel Basma 2014-08-15 21:04:58 -07:00
Jamie Cameron
04dfab3df6 The pkg_add command isn't really needed for ports 2014-08-14 23:17:44 -07:00
Jamie Cameron
26cce7a247 Fix broken table http://virtualmin.com/node/33945 2014-08-14 16:48:04 -07:00
Jamie Cameron
5e785475c8 Dev version bump 2014-08-14 13:33:04 -07:00
Jamie Cameron
b3cda55b5a Exclude bridges from resolution of real interface, include interfaces with no IP 2014-08-13 16:25:49 -07:00
Jamie Cameron
4c33960f99 Export new quote_javascript function 2014-08-12 20:32:49 -07:00
264 changed files with 11022 additions and 6406 deletions

View File

@@ -202,3 +202,9 @@ Security fixes for XSS attacks in user_chooser.cgi and other scripts.
---- Changes since 1.690 ----
More German translation updates, thanks to Raymond Vetter.
Support for RHEL 7, CentOS 7 and other derivatives in multiple modules.
---- Changes since 1.700 ----
More German translation updates, thanks to Raymond Vetter.
Catalan updates, thanks to Jaume Badiella.
Added additional protected against Shellshock exploits made via the Webmin webserver.
---- Changes since 1.710 ----
SSL v2 and v3 are now disabled by default at Webmin install time, to block the POODLE attack. They can be re-enabled on the SSL Encryption page of the Webmin Configuration module.

2
README
View File

@@ -1,4 +1,4 @@
Webmin Version 1.700
Webmin Version 1.720
--------------------
Webmin is a web-based interface for system administration for Unix.
Using any browser that supports tables and forms, you can setup user

File diff suppressed because one or more lines are too long

View File

@@ -44,9 +44,11 @@ my ($only) = @_;
my (%miniserv, @rv, %acl, %logout);
&read_acl(undef, \%acl);
&get_miniserv_config(\%miniserv);
foreach my $a (split(/\s+/, $miniserv{'logouttimes'})) {
if ($a =~ /^([^=]+)=(\S+)$/) {
$logout{$1} = $2;
if ($miniserv{'logouttimes'}) {
foreach my $a (split(/\s+/, $miniserv{'logouttimes'})) {
if ($a =~ /^([^=]+)=(\S+)$/) {
$logout{$1} = $2;
}
}
}
my $fh = "PWFILE";

View File

@@ -233,6 +233,7 @@ if (@icons) {
sub show_modules
{
my ($type, $who, $mods, $global, $prefix) = @_;
$mods ||= [ ];
my $rv;
if ($config{'select'}) {
# Show as drop-down menu

View File

@@ -481,5 +481,6 @@ twofactor_enrolling=S'est
twofactor_failed=...l'assignació ha fallat: $1
twofactor_done=...completa. El teu ID amb aquest proveïdor és <tt>$1</tt>.
twofactor_setup=L'autenticació de dos factors encara no s'ha activat al sistema, però es pot activar utilitzant el mòdul de <a href='$1'>Configuració de Webmin</a>.
twofactor_ebutton=No has fet clic a cap botó!
__norefs=1

View File

@@ -89,7 +89,6 @@ convert_msg=Konvertiere Unixbenutzer ...
convert_nogroups=Auf Ihrem System wurden keine Webmingruppen definiert. Wenigstens eine Gruppe muss vor der Konvertierung angelegt sein, um Rechte f&#252;r die konvertierten Benutzer zu definieren.
convert_ok=Konvertiere jetzt
convert_skip=$1 wurde &#252;bersprungen
convert_sync=Benutze zuk&#252;nftig das gleiche Passwort wie Unixbenutzer?
convert_sync2=Synchronisiere zuk&#252;nftig Passwort mit Unix Benutzer?
convert_title=Benutzer konvertieren
convert_user=Unix Benutzer
@@ -172,7 +171,6 @@ edit_seldays=Nur gew&#228;hlte Tage ..
edit_selhours=Von $1:$2 nach $3:$4
edit_set=Einstellen auf
edit_skill=Experten-Level
edit_special=Spezial
edit_switch=Zu Benutzer wechseln
edit_templock=Tempor&#228;r gesperrt
edit_temppass=Erzwinge &#196;nderungen bei der n&#228;chsten Anmeldung
@@ -286,8 +284,8 @@ makedn_still=Einige Probleme wurden auch nach DN Erstellung gefunden : $1
makedn_title=Erstelle LDAP DN
pass_days=Tage
pass_ecannot=Es ist Ihnen nicht erlaubt Passwortrestriktionen zu editieren
pass_elockdays=Vermisse Anzahl von Tagen bevor der Zugang gesperrt wird oder der Wert ist nicht Nummerisch
pass_emaxdays=Vermisse Anzahl von Tagen bevor das Kennwort ge&#228;ndert wird oder der Wert ist nicht Nummerisch
pass_elockdays=Vermisse Anzahl von Tagen bevor der Zugang gesperrt wird oder der Wert ist nicht numerisch
pass_emaxdays=Vermisse Anzahl von Tagen bevor das Kennwort ge&#228;ndert wird oder der Wert ist nicht numerisch
pass_eminsize=Vermisse minimale Kennwortl&#228;nge oder der Wert ist nicht numerisch
pass_eoldblock=Vermisse Anzahl von Tage bevor ein Kennwort zur&#252;ckgeweisen wird oder der Wert ist nicht numerisch
pass_err=Fehler beim Speichern der Kennwortrestriktionen
@@ -300,7 +298,7 @@ pass_nolockdays=Zugang wird nie gesperrt
pass_nomaxdays=&#196;nderung ist nie notwendig
pass_nominsize=Kein Minimum
pass_nooldblock=Keine Begrenzung zur Wiederverwendung des Kennworts
pass_nouser=Erlaube kein Kennwort welches den Benutzernamen enth&#228;lt
pass_nouser=Erlaube kein Kennwort welches den Benutzernamen enth&#228;lt?
pass_oldblock=Anzahl von alten Kennw&#246;rtern zur&#252;ckweisen
pass_pass=Kennw&#246;rter
pass_regdesc=Menschlich lesbare Beschreibung von regul&#228;ren Ausdr&#252;cken
@@ -310,7 +308,7 @@ rbac_desc=Die RBAC (Role Based Access Control)-Integration in die Webmin-Softwar
rbac_ecpan=Sie haben keinen Zugriff auf die Webmin-Perl-Modulseite um das f&#252;r die RBAC-Integration ben&#246;tigte Modul $1 zu installieren.
rbac_eperl=Das Perl-Modul $1 wird f&#252;r die RBAC-Integration ben&#246;tigt, ist jedoch nicht installiert. Sie k&#246;nnen dies &#252;ber das <a href='$2'>CPAN-Modul</a> nachholen.
rbac_esolaris=RBAC wird derzeit nur von Solaris unterst&#252;tzt und kann auf diesem $1 System nicht genutzt werden.
rbac_ok=RBAC-Integration ist auf Ihrem System verf&#252;gbar und kann pro Benutzer im Benutzer- und Gruppenmodul angewandt werden
rbac_ok=RBAC-Integration ist auf Ihrem System verf&#252;gbar und kann pro Benutzer im Benutzer- und Gruppenmodul angewandt werden.
rbac_title=Setup RBAC
save_ecolon=Kennw&#246;rter d&#252;rfen keinen Doppelpunkt (:) enthalten
save_ecreate=Sie haben keine Berechtigung einen Benutzer anzulegen
@@ -334,7 +332,7 @@ save_enone=Keine Adressen eingegeben
save_eos=Die Option "Dasselbe Kennwort wie bei Unix" wird nicht von Ihrem Betriebssystem unterst&#252;tzt.
save_eoverlay=Das Personal theme overlay kann nicht ausgew&#228;hlt werden, wenn das theme ist
save_epam=PAM-Authentifizierung ist nicht verf&#252;gbar, da das <tt>Authen::PAM</tt> Perl-Modul nicht installiert ist oder nicht richtig arbeitet.
save_epam2=Sie k&#246;nnen das Webmin-Modul 'Perl-Module' benutzen um <a href='$1'>Authen::PAM herunterzuladen und zu installieren </a>.
save_epam2=Sie k&#246;nnen das Webmin-Modul 'Perl-Module' benutzen um <a href='$1'>Authen::PAM herunterzuladen und zu installieren</a>.
save_epass=Kennwort ist nicht g&#252;ltig : $1
save_err=Fehler beim Speichern des Benutzers
save_eself=Ihrer aktuellen IP-Adresse ($1) w&#252;rde der Zugriff verweigert
@@ -449,7 +447,6 @@ unix_mall=Alle Benutzer
unix_mode=Erlauben
unix_none=Keine Benutzer eingegeben
unix_pamany=Erlaube Anmeldungen welche nur die PAM Validierung durchlaufen als $1
unix_restrict=Die folgenden zus&#228;tzlichen Restriktionen werden auf die oben ausgew&#228;hlten Unixbenutzer angewandt.
unix_restrict2=Zus&#228;tzliche Restriktionen
unix_same=&lt;Gleicher Benutzer oder Gruppe&gt;
unix_sel=Die f&#252;r die Anmeldung zu erlaubenden Unixbenutzer sind unten aufgelistet ..

View File

@@ -1,3 +1,4 @@
__norefs=1
acl_acl=&#191;Poder editar el control de acceso al m&#243;dulo?
acl_all=Todos los m&#243;dulos
acl_cats=&#191;Poder cambiar categorizaci&#243;n?
@@ -22,6 +23,7 @@ acl_mods=Poder otorgar acceso a
acl_options=Opciones de control de acceso para $1
acl_others=&#191;Poder ver m&#243;dulos inaccesibles?
acl_own=Solo sus propios m&#243;dulos
acl_pass=Puede cambiar las restricciones de contrase&#195;&#177;a?
acl_perms=Los usuarios creados recientemente obtienen
acl_perms_0=Control de acceso a m&#243;dulo por defecto (sin restricciones)
acl_perms_1=Los mismos controles de acceso a m&#243;dulo que el creador
@@ -31,6 +33,7 @@ acl_rename=&#191;Poder renombrar usuarios?
acl_reset=Resetear a Acceso Total
acl_sel=M&#243;dulos seleccionados ..
acl_sessions=&#191;Poder ver y cancelar sesiones de ingreso?
acl_sql=Puede configurar la base de datos de usuario y grupo?
acl_switch=&#191;Puede cambiar a otros usuarios?
acl_sync=&#191;Poder configurar sincronizaci&#243;n de usuario?
acl_theme=&#191;Poder cambiar tema personal?
@@ -51,6 +54,7 @@ cert_ebrowser=Webmin no sabe como emitir certificados cliente para su navegador
cert_eca=Fallo al configurar la autoridad del certificado : $1
cert_ekey=No fue entregada una nueva clave SSL por parte de su navegador - quiz&#225;s no soporte certificados SSL clientes.
cert_email=Direcci&#243;n de correo electr&#243;nico
cert_etempdir=Archivo de certificado invalido
cert_header=Detalles del nuevo certificado
cert_install=Instalar su certificado en el navegador
cert_issue=Emitir Certificado
@@ -66,8 +70,10 @@ convert_1=Solo los usuarios
convert_2=Todos excepto los usuarios
convert_3=Usuarios con grupo
convert_4=Usuarios con identificador de usuario en rango
convert_action=Cambios aceptados
convert_added=Agregando $1
convert_desc=Este formulario permite convertir usuarios Unix existentes a usuarios Webmin. Los permisos de cada uno de los nuevos usuarios Webmin ser&#225;n determinados por los grupos seleccionados debajo.
convert_done=$1 usuarios convertidos, $2 invalidos, $3 ya existen, $4 excuidos.
convert_ecannot=No est&#225; autorizado a convertir usuarios Unix
convert_egroup=El grupo Unix no existe
convert_emax=Identificador de usuario m&#225;ximo no v&#225;lido
@@ -84,7 +90,17 @@ convert_nogroups=No se han definido grupos Webmin en su sistema. Al menos un gru
convert_ok=Convertir Ahora
convert_skip=Salte&#225;ndo $1
convert_sync=&#191;Usar la misma contrase&#241;a que en Unix en el futuro?
convert_sync2=Sincronizar contrase&#195;&#177;a con el usuario de Unix en el futuro?
convert_title=Convertir Usuarios
convert_user=Usuario de Unix
convert_users=Usuarios a convertir
cpass_dict=Es una palabra del diccionario
cpass_minsize=Debe ser al menos de $1 caracteres de largo
cpass_name=Contiene el nombre de usuario
cpass_notre=Coincide con un patron no permitido
cpass_old=Contrase&#195;&#177;as antiguas no pueden ser reutilizadas
cpass_re=No coincide con un patron requerido
cpass_spellcmd=Ninguno de los comandos $1 o $2 necesitan ser comprobados para ver si las palabras del diccionario estan instaladas
delete_ecannot=No est&#225; autorizado a borrar usuarios
delete_err=Fallo al borrar usuario
delete_eself=No puede borrarse a si mismo
@@ -94,13 +110,17 @@ edit_alldays=Cada d&#237;a
edit_allhours=Cualquier hora
edit_allow=Permitir solo desde las direcciones listadas
edit_cert=Nombre del certificado SSL
edit_chars=letras
edit_clone=Clonar
edit_cloneof=Clonando un usuario de Webmin
edit_days=D&#237;as permitidos de la semana
edit_deny=Denegar desde las direcciones listadas
edit_dont=No cambiar
edit_ecreate=No est&#225; autorizado a crear usuarios
edit_egone=El usuario seleccionado ya no existe
edit_euser=No est&#225; autorizado a editar este usuario
edit_extauth=Programa externo de autenticaci&#243;n
edit_global=Permisos para todos los modulos
edit_group=Miembro de grupo
edit_groupmods=(Adem&#225;s de los m&#243;dulos del grupo)
edit_hide=Ocultar no usado
@@ -113,15 +133,31 @@ edit_lock=Contrase&#241;a no aceptada
edit_log=Ver bit&#225;coras
edit_logout=Tiempo para expulsi&#243;n por inactividad
edit_mins=minutos
edit_minsize=Largo minimo de contrase&#195;&#177;a
edit_mods=Modulos de webmin disponibles
edit_modsg=Modulos de webmin disponibles (ademas de los del grupo)
edit_modules=M&#243;dulos
edit_nochange=Hacer cumplir d&#195;&#173;as de cambio de contrase&#195;&#177;a?
edit_none=Ninguna
edit_notabs=&#191;Categorizar m&#243;dulos?
edit_overlay=Tema personal
edit_overlayglobal=Ninguno - Usar tema por defecto
edit_pam=Autenticaci&#243;n PAM
edit_pass=Contrase&#241;a
edit_passlocked=La contrase&#195;&#177;a no fue modificada por $1 dias - Cuenta bloqueada!
edit_passmax=La contrase&#195;&#177;a no fue modificada por $1 dias - debe ser modificada en el siguiente ingreso
edit_passold=La contrase&#195;&#177;a fue modificada por ultima vez hace $1 dias
edit_passtoday=La contrase&#195;&#177;a fue cambiada hace menos de un dia
edit_proto=Tipo de almacenamiento
edit_proto_=Archivos locales
edit_proto_ldap=Servidor LDAP
edit_proto_mysql=Base de datos MySQL
edit_proto_postgresql=Base de datos PostgreSQL
edit_rbacdeny=Modo acceso RBAC
edit_rbacdeny0=RBAC s&#243;lo controla ACLs del m&#243;dulo seleccionado
edit_rbacdeny1=RBAC controla todos los m&#243;dulos y ACLs
edit_readonly=Este usuario de Webmin no debe ser editado mientras es manejado por el $1 m&#243;dulo. <a href='$2'>Pincha aqu&#237;</a> para saltarse esta advertencia y editar el usuario de todos modos - &#161;&#161;pero tenga cuidado de que cualquier cambio manual pueda ser sobreescrito!!
edit_real=Nombre real
edit_return=Usuario de Webmin
edit_return2=Grupo Webmin
edit_rights=Derechos de acceso de usuarios Webmin
@@ -130,6 +166,7 @@ edit_risk_high=Superusuario
edit_risk_low=Usuario normal
edit_risk_medium=Usuario Administrador
edit_same=Igual que en Unix
edit_security=Opciones de seguridad y limites
edit_selall=Seleccionar todo
edit_seldays=Solo los d&#237;as seleccionados ...
edit_selhours=De $1:$2 a $3:$4
@@ -138,11 +175,18 @@ edit_skill=Nivel de habilidades
edit_special=Especial
edit_switch=Cambiar a Usuario
edit_templock=Temporalmente bloqueado
edit_temppass=Forzar cambio en el siguiente ingreso
edit_theme=Tema personal
edit_themedef=Tema de Webmin anterior
edit_themeglobal=Desde la Configuraci&#243;n de Webmin
edit_title=Editar Usuario de Webmin
edit_title2=Crear Usuario de Webmin
edit_twofactor=Tipo de autentificacion de 2 factores
edit_twofactoradd=Habilitar Two-Factor para Usuario
edit_twofactorcancel=Remover reuqerimiento de autentificacion Two-Factor
edit_twofactornone=Ninguna configuracion todabia
edit_twofactorprov=Usando proveedor $1 con ID $2
edit_ui=Opciones de interfaz de usuario
edit_unix=Autenticaci&#243;n Unix
edit_user=Nombre de usuario
gdelete_desc=&#191;Est&#225; seguro que desea borrar el grupo $1 y sus usuarios miembros $2 ?
@@ -157,13 +201,16 @@ gdeletes_ok=Borrar Grupos
gdeletes_rusure=&#191;Est&#225; seguro de que quiere borrar los $1 grupos seleccionados, y los $2 usuarios que contienen? Todos sus configuraciones de control de acceso y sus detalles de usuario se perder&#225;n.
gdeletes_title=Borrar Grupos
gdeletes_users=Grupos seleccionados: $1
gedit_desc=Descripcion de grupo
gedit_ecannot=No est&#225; autorizado a editar grupos
gedit_egone=El grupo seleccionado ya no existe
gedit_group=Nombre de grupo
gedit_members=Usuarios y grupos miembros
gedit_modules=M&#243;dulos de miembros
gedit_rights=Derechos de acceso del grupo de Webmin
gedit_title=Editar Grupos de Webmin
gedit_title2=Crear Grupo de Webmin
gsave_edesc=Descripcion invalida - el caracter : no esta permitido
gsave_edup=El nombre de grupo ya est&#225; en uso
gsave_ename=Nombre de grupo no ingresado o no v&#225;lido
gsave_enamewebmin=El nombre de grupo 'webmin' est&#225; reservado para uso interno
@@ -180,10 +227,13 @@ index_convert=Convertir usuarios Unix a Webmin
index_create=Crear un nuevo usuario de Webmin
index_delete=Borrar Seleccionado
index_edit=Editar m&#243;dulo ACL :
index_eglist=Error al listar grupos : $1
index_eulist=Error al listar usuarios : $1
index_gcreate=Crear un nuevo grupo de Webmin
index_global=ACL global
index_group=Grupo
index_groups=Grupos de Webmin
index_joingroup=Agregar al grupo:
index_members=Miembros
index_modgroups=M&#243;dulos del grupo $1
index_modules=M&#243;dulos
@@ -196,6 +246,7 @@ index_return=lista de usuario
index_sessions=Ver sesiones de ingreso
index_sync=Configurar la sincronizaci&#243;n del usuario Unix
index_title=Usuarios de Webmin
index_twofactor=Autentificacion de 2 factores
index_unix=Configurar la autenticaci&#243;n del usuario Unix
index_user=Usuario
index_users=Usuarios de Webmin
@@ -208,12 +259,53 @@ log_delete=Usuario Webmin $1 borrado
log_delete_g=Grupo Webmin $1 borrado
log_delete_groups=Borrados $1 Grupos de Webmin
log_delete_users=Borrados $1 Usuarios de Webmin
log_joingroup=Agregado 1 usuario de webmin al grupo $2
log_modify=Usuario Webmin $1 modificado
log_modify_g=Grupo Webmin $1 modificado
log_onefactor=Usuario $1 excluido de la autentificacion two-factor
log_pass=Cambiar restricciones de contrase&#195;&#177;a
log_rename=Usuario Webmin $1 renombrado a $2
log_rename_g=Grupo Webmin $1 renombrado a $2
log_reset=Resetear acceso para $1 en $2
log_sql=Cambida base de datos de usuario y grupo
log_switch=Se ha cambiado a usuario Webmin $1
log_sync=Cambiada la sincronizacion de usuario unix
log_twofactor=Usuario $1 incluido con 2 factores con el proveedor $2
log_unix=Cambiada la auntenficiacion de usuario unix
make_done=.. listo
make_err=Error al crear tablas de usuario y grupo
make_exec=Ejecutando SQL $1 ..
make_failed=.. creacion fallida : $1
make_still=Algunos problemas fueron encontrados luego de la creacion de la tabla : $1
make_title=Crear tablas de Usuario y grupo
makedn_done=.. listo
makedn_eoc=No se encontraron clases de objeto estructural
makedn_exec=Creando padre DN $1 ..
makedn_failed=.. creacion fallida : $1
makedn_still=Algunos problemas fueron encontrados luego de la creacion de DN : $1
makedn_title=Crear LDAP DN
pass_days=dias
pass_ecannot=No estas permitido a editar las restricciones de contrase&#195;&#177;a
pass_elockdays=Falta o no es numero el numero de dias antes de que la cuenta este bloqueada
pass_emaxdays=Falta o no es numerico el numero de dias antes de que la cuenta cambie
pass_eminsize=Falta o no es numerico el largo minimo de la contrase&#195;&#177;a
pass_eoldblock=Falta o no es numerico el numero de contrase&#195;&#177;as antiguas a rechazar
pass_err=Error al guardar las restricciones de contrase&#195;&#177;a
pass_header=Opciones de aplicacion de contrase&#195;&#177;a webmin
pass_lockdays=Dias antes de que una contrase&#195;&#177;a sin cambiar bloquee la cuenta
pass_maxdays=Dias antes de que la contrase&#195;&#177;a necesite ser cambiada
pass_minsize=Largo minimo de contrase&#195;&#177;a
pass_nodict=Desabilitar contrase&#195;&#177;as con palabras de diccionario?
pass_nolockdays=La cuenta nunca esta bloqueada
pass_nomaxdays=Cambio nunca requerido
pass_nominsize=Sin minimo
pass_nooldblock=Sin limite de reutilizacion de contrase&#195;&#177;a
pass_nouser=Desabilitar contrase&#195;&#177;as que contengan nombre de usuario?
pass_oldblock=Numero de antiguas contrase&#195;&#177;as para rechazar
pass_pass=contrase&#195;&#177;as
pass_regdesc=Descripcion de expresion regular legible por el humano
pass_regexps=Las contrase&#195;&#177;as de expresiones regulares deben coincidir
pass_title=Restricciones de contrase&#195;&#177;a
rbac_desc=La integraci&#243;n RBAC de Webmin proporciona la capacidad de configurar el m&#243;dulo de usuarios y permisos ACL desde una base de datos RBAC (Role Based Access Control, o Control de Acceso Basado en Roles), en lugar de desde los archivos de configuraci&#243;n propios de Webmin. Una vez que el soporte de RBAC se habilita, cualquier usuario para el cual est&#233; seleccionada la opci&#243;n <b>$edit_rbacdeny1</b> tendr&#225; sus capacidades determinadas por RBAC en lugar de por la configuraci&#243;n de acceso del propio Webmin.
rbac_ecpan=No tiene acceso a la p&#225;gina de M&#243;dulos Perl de Webmin que le permitir&#237;a instalar el m&#243;dulo $1, necesario para la integraci&#243;n con RBAC.
rbac_eperl=El m&#243;dulo Perl $1, necesario para la integraci&#243;n con RBAC, no est&#225; instalado. <a href='$2'>Pulse aqu&#237;</a> para instalarlo ahora.
@@ -233,18 +325,25 @@ save_eip='$1' no es una direcci&#243;n IP de red completa
save_elogouttime=Tiempo de expulsi&#243;n por inactividad falta o no num&#233;rico
save_emask='$1' no es una m&#225;scara de red v&#225;lida
save_emd5=La opci&#243;n Igual que la contrase&#241;a de Unix no puede ser usada en sistemas con encriptaci&#243;n MD5
save_eminsize=Falta o no es numero el largo minimo de contrase&#195;&#177;a
save_emod=No puede otorgar acceso al m&#243;dulo '$1'
save_ename='$1' no es un nombre de usuario v&#225;lido
save_enamewebmin=El nombre de usuario 'webmin' est&#225; reservado para uso interno
save_enet='$1' no es una direcci&#243;n de red v&#225;lida
save_enone=Direcciones no ingresadas
save_eos=La opci&#243;n Igual que la contrase&#241;a de Unix no es soportada por su sistema operativo.
save_eoverlay=El tema no puede ser seleecionado si un tema es
save_epam=La autenticaci&#243;n PAM no est&#225; disponible ya que el m&#243;dulo <tt>Authen::PAM</tt> de Perl no est&#225; instalado o no funciona adecuadamente.
save_epam2=Puede usar el m&#243;dulo M&#243;dulos Perl de Webmin para <a href='$1'>descargar e instalar Authen::PAM</a> ahora.
save_epass=Contrase&#195;&#177;a no valida : $1
save_err=Fallo al salvar usuario
save_eself=Su direcci&#243;n IP actual ($1) ser&#237;a denegada
save_etemp=La opcion para forzar un cambio de contrase&#195;&#177;a en el siguiente inicio de sesion no se puede utilizar a menos que <a href='$1'>pedir al usuario que introduzca nuevas contrase&#195;&#177;as</a> este habilitado
save_eunix=El usuario Unix '$1' no existe
save_euser=No est&#225; autorizado a editar este usuario
schema_desc=Antes de que webmin pueda usar un servidor LDAP para almacenar usuarios y grupos debe estar configurado para usar el esquema abajo. Esto se puede hacer guardando la definicion del esquema en <tt>/etc/ldap/schema</tt> or <tt>/etc/openldap/schema</tt> como </tt>webmin.schema</tt>, despues configurando el servidor para cargar el archivo del esquema.
schema_download=Descargar archivo de esquema : <a href=$1>$1</a>
schema_title=Descargar esquema LDAP
sessions_desc=Las sesiones de ingreso de Webmin est&#225;n listadas debajo. Para cancelar una sesi&#243;n existente y forzar al usuario a ingresar nuevamente, presione sobre su ID de sesi&#243;n.
sessions_host=Direcci&#243;n IP
sessions_id=ID de Sesi&#243;n
@@ -252,6 +351,48 @@ sessions_login=Ingreso como
sessions_lview=Ver bit&#225;coras..
sessions_title=Sesiones de Ingreso Corrientes
sessions_user=Usuario Webmin
sql_addto0=Agregar nuevos usuarios a la base datos seleccionada anteriormente
sql_addto1=Agregar nuevos usuarios a los archivos locales
sql_db=Nombre de base de datos
sql_dnerr=La configuracion de la base de datos de usuario y grupo es valida, pero el LDAP DN necesitado por webmin no se encuentra : $1
sql_dnerr2=Click en el boton <b>Crear DN</b> de abajo para crearlo automaticamente, o agregar a su servidor LDAP manualmente.
sql_ecannot=No esta autorizado a configurar la base de datos de usuario y grupo
sql_eclass=Clase de objeto LDAP $1 no existe en el esquema del servidor
sql_edb=Nombre de base de datos invalida (no se permiten espacios)
sql_egroupclass=Falta o es invalido la clase del objeto de grupos
sql_ehost=Falta o no se puede resolver el hostname
sql_eldapdn=La base LDAP DN $1 no fue encontrada
sql_emod=Falta el modulo perl <tt>$1</tt> requerido
sql_epass=Contrase&#195;&#177;a invalida (no se permiten espacios)
sql_eprefix=Falta o es invalida la base DN (no se admiten espacios)
sql_eprefix2=Base DN invalida - tiene que ser como <tt>dc=mydomain,dc=com</tt>
sql_err=Error al guardar la configuracion de la base de datos de usuario y grupo
sql_etable=Error al consultar la tabla requerida $1 : $2
sql_euser=Falta o es invalido el usuario (no se admiten espacios)
sql_euserclass=Falta es invalida la clase del objeto para usuarios
sql_groupclass=Clase de objectos para grupos
sql_header=Opciones para el backend de base de datos para usuarios y grupos
sql_host=Hostname
sql_ldap=Usar servidor LDAP
sql_make=Crear tablas
sql_makedn=Crear DN
sql_mysql=Usar base de datos MySQL
sql_none=Usar solo archivos locales para almacenar usuarios y grupos
sql_pass=Contrase&#195;&#177;a
sql_postgresql=Usar base de datos PostgreSQL
sql_prefix=Crear bajo DN
sql_schema=Descargar esquema LDAP
sql_ssl=Encriptacion de conexion
sql_ssl0=Ninguno
sql_ssl1=SSL
sql_ssl2=TLS
sql_tableerr=La configuracion de la base de datos de usuario y grupo es valida pero algunas tablas necesitadas por webmin no se encuentran : $1
sql_tableerr2=Click en el boton <b>Crear tablas</b> de abajo para crearlos automaticamente, o correr manualmente el SQL de abajo.
sql_title=Base de datos de usuario y grupo
sql_title2=Crear tablas faltantes
sql_title3=Crear DN faltante
sql_user=Usuario
sql_userclass=Clase de objecto para usuarios
switch_eold=&#161;Sesi&#243;n existente no encontrada!
switch_euser=No est&#225; autorizado a cambiar a este usuario
sync_create=Crear un usuario Webmin cuando un usuario Unix es creado.
@@ -263,6 +404,22 @@ sync_nogroups=No se han definido grupos Webmin en su sistema. Al menos un grupo
sync_title=Sincronizaci&#243;n de usuarios Unix
sync_unix=Poner el password de los nuevos usuarios como en la autenticaci&#243;n Unix.
sync_update=Actualizar el usuario Webmin relacionado cuando el usuario Unix es modificado.
sync_when=Cuando sincronizar
twofactor_already=Su ingreso de webmin ya tiene la autentificacion de 2 factores habilitada con el proveedor $1 y ID de cuenta $2.
twofactor_already2=Ingreso de webmin $3 ya tiene la autificacion de 2 factores activada con el proveedor $1 y ID de cuenta $2
twofactor_desc=Esta pagina le permite activar la autentificacion de 2 factores para su ingreso en webmin usando <a href='$2' target=_blank>$1</a>.
twofactor_desc2=Esta pagina le permite activar la autentificacion de 2 factores para el ingreso de $3 en webmin usando <a href='$2' target=_blank>$1</a>.
twofactor_disable=Desabilitar autentificacion de 2 factores
twofactor_done=.. completado. Su ID con este provedoor is <tt>$1</tt>.
twofactor_ebutton=No se presiono ningun boton!
twofactor_enable=Incluir para la autentificacion de 2 factores
twofactor_enrolling=Incluyendo para la autentificacion de 2 factores con el proveedor $1 ..
twofactor_err=Error al configurar la autentificacion de 2 factores
twofactor_euser=Su usuario de webmin no fue encontrado!
twofactor_failed=.. error : $1
twofactor_header=Detalles de autentificacion de 2 factores
twofactor_setup=La autentificacion de 2 factores no fue habilitada en este sistema todabia, pero puede ser habilitada usando el modulo de <a href='$1'Configuracion Webmin</a>.
twofactor_title=Autentificacion de 2 factores
udeletes_enone=Ninguno seleccionado
udeletes_ereadonly=Uno de los usuarios seleccionados est&#225; marcado como no-editable
udeletes_err=Fallo al borrar usuarios
@@ -279,19 +436,27 @@ unix_ecannot=No est&#225; autorizado a configurar la autenticaci&#243;n de usuar
unix_egroup='$1' no es un nombre de grupo v&#225;lido
unix_enone=No se introdujeron usuarios ni grupos Unix para permitir
unix_epam=La autenticaci&#243;n Unix no est&#225; disponible ya que el m&#243;dulo <tt>Authen::PAM</tt> de Perl no est&#225; instalado o no funciona adecuadamente.
unix_err=Error al guardar la autenficiacion Unix
unix_eshells=Archivo de shells inexistente o no introducido
unix_esudo=El comando $1 no esta instalado
unix_esudomod=El modulo de Perl $1 necesario para la autenticacion <tt>sudo</tt> no esta instalado
unix_euser='$1' no es un nombre de usuario v&#225;lido
unix_ewhogroup=Grupo a permitir no introducido en la fila $1
unix_ewhouser=Usuario a permitir no introducido en la fila $1
unix_group=Miembros del grupo..
unix_header=Configuracion de autenticacion de usuario de Unix
unix_mall=Todos los usuarios
unix_mode=Permitir
unix_none=No se introdujeron usuarios
unix_pamany=Tratar a los ingresos que solo pasan la validaci&#195;&#179;n PAM $1
unix_restrict=Las restricciones adicionales siguientes s&#243;lo se aplicar&#225;n a los usuarios Unix seleccionados arriba.
unix_restrict2=Restricciones adicionales
unix_same=&lt;Mismo usuario o grupo&gt;
unix_sel=Permitir hacer login a los usuarios Unix listados abajo..
unix_shells=Denegar usuarios Unix cuyas shells no est&#233;n en el fichero
unix_sudo=Permitir a los usuarios que pueden ejecutar todos los comandos a trav&#195;&#169;s de <tt>sudo</ tt> para entrar como <tt>root</ tt>
unix_title=Autenticaci&#243;n de Usuario Unix
unix_to=Como usuario Webmin
unix_user=Permitir a cualquier usuario Unix el ingreso con permisos de usuario
unix_utable=Permitir usuarios Unix
unix_who=Usuario o Grupo

View File

@@ -409,6 +409,7 @@ twofactor_desc=Denne siden lar deg aktivere to-faktor autentisering for din Webm
twofactor_desc2=Denne siden lar deg aktivere to-faktor autentisering for Webmin-brukeren $1 vha. <a href='$2' target=_blank>$1</a>. N&#229;r denne er aktivert vil det kreves et ekstra autentiserings-token for &#229; logge inn p&#229; Webmin.
twofactor_disable=Deaktiver to-faktor autentisering
twofactor_done=.. fullf&#248;rt. Din ID hos denne leverand&#248;ren er <tt>$1</tt>.
twofactor_ebutton=Ingen knapp klikket!
twofactor_enable=Meld inn til to-faktor autentisering
twofactor_enrolling=Melder inn til to-faktor autentisering med leverand&#248;r $1 ..
twofactor_err=Kunne ikke sette opp to-faktor autentisering

View File

@@ -54,6 +54,7 @@ cert_ebrowser=Webmin nie wie jak wystawia
cert_eca=Nie udało się ustawić centrum autoryzacji: $1
cert_ekey=Twoja przeglądarka nie zaakceptowała nowego klucza SSL - być może nie obsługuje ona certyfikatów SSL po stronie klienta.
cert_email=Adres e-mail
cert_etempdir=Błędny plik certyfikatu
cert_header=Dane nowego certyfikatu
cert_install=Zainstaluj swój certyfikat w przeglądarce
cert_issue=Certyfikat wydany
@@ -69,6 +70,7 @@ convert_1=Wybranych
convert_2=Wszystkich oprócz
convert_3=Użytkowników z grupy
convert_4=Użytkowników z zakresu UID-ów
convert_action=Podjęta akcja
convert_added=Dodawanie $1
convert_desc=Za pomocą tego formularza możesz przekształcić istniejących użytkowników Unixa w użytkowników Webmina. Uprawnienia każdego z nowych użytkowników Webmina będą określone przez podanie poniżej grupy.
convert_done=$1 skonwertowanych użytkowników, $2 nieprawidłowych, $3 już istnieje, $4 wykluczonych.
@@ -87,8 +89,10 @@ convert_msg=Przekszta
convert_nogroups=W systemie nie zdefiniowano grup Webmina. Musisz utworzyć przynajmniej jedną grupę przed konwersją, aby określić uprawnienia dla przekształconych użytkowników.
convert_ok=Przekształć teraz
convert_skip=Pomijanie $1
convert_sync=Używać w przyszłości tego samego hasła co użytkownik unixowy?
convert_sync2=Synchronizować hasło z użytkiem Unix'a w przysłości?
convert_title=Przekształć użytkowników
convert_user=Użytkownik Unixa
convert_users=Konwertuj użytkownika
cpass_dict=Jest słowem ze słownika
cpass_minsize=Musi zawierać przynajmniej $1 znaków
cpass_name=Zawiera nazwę użytkownika
@@ -175,6 +179,11 @@ edit_themedef=Stary temat Webmina
edit_themeglobal=Z konfiguracji Webmina
edit_title=Modyfikuj użytkownika Webmina
edit_title2=Nowy użytkownik Webmina
edit_twofactor=Typ dwustopniowego uwierzetylniania
edit_twofactoradd=Włącz dwustopniowe uwierzytelnianie dla użytkownika
edit_twofactorcancel=Usuń wymaganie dwustopniowego uwierzytelniania
edit_twofactornone=Nic nie ustawiono
edit_twofactorprov=Używa $1 z ID $2
edit_ui=Opcje interfejsu użytkownika
edit_unix=Uwierzytelnienie Unixowe
edit_user=Nazwa użytkownika
@@ -222,6 +231,7 @@ index_gcreate=Utw
index_global=Ogólne ACL-e
index_group=Grupa
index_groups=Grupy Webmina
index_joingroup=Dodaj do grupy:
index_members=Członkowie
index_modgroups=Moduły z grupy $1
index_modules=Moduły
@@ -234,6 +244,7 @@ index_return=listy u
index_sessions=Wyświetl sesje logowania
index_sync=Konfiguruj synchronizację użytkowników Unixa
index_title=Użytkownicy Webmina
index_twofactor=Dwustopniowe uwierzytelnianie
index_unix=Konfiguruj autoryzację użytkowników Unixa
index_user=Użytkownik
index_users=Użytkownicy Webmina
@@ -246,8 +257,10 @@ log_delete=Usuni
log_delete_g=Usunięto grupę Webmina $1
log_delete_groups=Usunięto $1 grup Webmina
log_delete_users=Usunięto $1 użytkowników Webmina
log_joingroup=Dodano $1 użytkowników Webmina do grupy $2
log_modify=Zmodyfikowano użytkownika Webmina $1
log_modify_g=Zmodyfikowano grupę Webmina $1
log_onefactor=Użytkownik $1 już NIE uczestniczy w dwustopniowym uwierzytelnianiu u dostawcy: $2
log_pass=Zmieniono ustawienia dotyczące hasła
log_rename=Zmieniono nazwę użytkownika Webmina $1 na $2
log_rename_g=Zmieniono nazwę grupy Webmina $1 na $2
@@ -255,6 +268,7 @@ log_reset=Zresetowano dost
log_sql=Zmieniono bazę danych użytkownika i grupy
log_switch=Przełączono do użytkownika $1.
log_sync=Zmieniono synchronizację użytkownika unixa
log_twofactor=Użytkownik $1 uczestniczy w dwustopniowym uwierzytelnianiu u dostawcy: $2
log_unix=Zmieniono uwierzytelnienie użytkownika unixa
make_done=.. zrobione
make_err=Nie udało się utworzyć tabel dla użytkownika i grupy
@@ -388,6 +402,22 @@ sync_nogroups=W systemie nie zdefiniowano
sync_title=Synchronizacja użytkowników Unixa
sync_unix=Ustawiaj hasła dla nowych użytkowników dla uwierzytelnianie Unixowego.
sync_update=Aktualizuj odpowiedniego użytkownika Webmina, gdy aktualizowany jest użytkownik Unixa.
sync_when=Kiedy synchronizować
twofactor_already=Korzystasz jusz z dwustopniowego uwierzytelniania u $1 z ID $2.
twofactor_already2=Dla loginu $3 jest już włączone dwustopniowe uwierzytelnianie na $1 z ID $2.
twofactor_desc=Ta strona pozwala na włączenie dwustopniowego uwierzytelniania dla twojego logowania w Webmin korzystając z <a href='$2' target=_blank>$1</a>. Po włączeniu będzie wymagane podawanie dodatkowego tokena przy logowaniu.
twofactor_desc2=Ta strona pozwala na włączenie dwustopniowego uwierzytelniania dla logowania w Webmin korzystając z <a href='$2' target=_blank>$1</a>. Po włączeniu będzie wymagane podawanie dodatkowego tokena przy logowaniu.
twofactor_disable=Wyłącz dwustopniowe uwierzytelnianie
twofactor_done=.. zakończono. Twój ID u tego dostawcy to <tt>$1</tt>.
twofactor_ebutton=Nie kliknięto na przycisk!
twofactor_enable=Włącz dwustopniowe uwierzytelnianie
twofactor_enrolling=Włączanie dwustopniowego uwierzytelniania u $1 ..
twofactor_err=Błąd konfigurowania Włącz dwustopniowego uwierzytelniania
twofactor_euser=Użytkownik Webmina nie został znaleziony!
twofactor_failed=.. błąd włączania : $1
twofactor_header=Szczegóły dwustopniowego uwierzytelniania
twofactor_setup=Dwustopniowe uwierzytelnianie nie jest włączone na tym systemie, może zostać włączone poprzez moduł <a href='$1'>Konfiguracji Webmina</a>
twofactor_title=Dwustopniowe uwierzytelnianie
udeletes_enone=Nie wybrane
udeletes_ereadonly=Jeden z wybranych użytkowników jest oznaczony jako nie-edytowalny
udeletes_err=Błąd usuwanie użytkowników
@@ -412,11 +442,12 @@ unix_euser='$1' nie jest poprawn
unix_ewhogroup=Brakująca dozwolona grupa w wierszu $1
unix_ewhouser=Brakujący dozwolony użytkownik w wierszu $1
unix_group=Członkowie grup...
unix_header=Ustawienia uwierzytelniania użytkownika Unix'a
unix_mall=Wszyscy użytkownicy
unix_mode=Pozwól
unix_none=Nie podano użytkowników
unix_pamany=Śledź logowania, które pasują do walidacji PAM jako $1
unix_restrict=Następujące dodatkowe ograniczenia są stosowane do użytkowników wybranych powyżej.
unix_restrict2=Dodatkowe ograniczenia
unix_same=&lt;Ten sam użytkownik lub grupa&gt;
unix_sel=Pozwól użytkownikom Unixa z poniższej listy na zalogowanie...
unix_shells=Odmów użytkownikom Unixa, których shelle nie znajdują są w pliku
@@ -424,4 +455,5 @@ unix_sudo=Pozw
unix_title=Autoryzacja użytkowników Unixa
unix_to=Jako użytkownik Webmina
unix_user=Użytkownik Unixa ..
unix_utable=Dozwoleni użytkownicy Unix'a
unix_who=Użytkownik lub Grupa

View File

@@ -39,3 +39,4 @@ desc_sk.UTF-8=Užívatelia Webminu
longdesc_ms_MY=Cipta pengguna Webmin dan konfigurasikan modul dan ciri-ciri yang dibenarkan akses.
desc_ms_MY=Pengguna Webmin
longdesc_de=Erstellt Webmin-Benutzer und konfiguriert, auf welche Module und Funktionen diese berechtigt sind, zugreifen.
longdesc_es=Crear usuarios de webmin y configurar a que modulos y caracteristicas pueden acceder.

View File

@@ -5,11 +5,11 @@ index_bytes=Bytes
index_cancel=Verbindung beenden
index_canceldesc=Es wird momentan eine ADSL-Verbindung hergestellt. Klicken Sie auf diesen Button, um diesen Vorgang mit dem Befehl $1 abzubrechen.
index_cdemand=Auf Verlangen abbrechen
index_cdemanddesc=Der ADSL-Client wartet derzeit darauf, Benutzer gesteuert die Verbindung zu beenden. Klicken Sie auf diesen Button, wenn Sie dies mit dem Befehl $1 ausf&#252;hren m&#246;chten.
index_cdemanddesc=Der ADSL-Client wartet derzeit darauf, Benutzer auf Verlangen die Verbindung zu beenden. Klicken Sie auf diesen Button, wenn Sie dies mit dem Befehl $1 ausf&#252;hren m&#246;chten.
index_connect=Konfigurierbare Dauer der Verbindung
index_demand=Verbindung auf Wunsch?
index_desc=Diese Einstellungen werden erst bei der n&#228;chsten Anmeldung des ADSL-Clients aktiv. Wenn Sie diese &#228;ndern, dann m&#252;ssen Sie die Verbindung beenden und neu aufbauen, damit die &#196;nderungen wirksam werden.
index_dns=DNS-Konfiguration des ISP &#252;bernehmen (/etc/resolve.conf)?
index_dns=DNS-Konfiguration des ISP &#252;bernehmen?
index_eadsl=Der RP-PPPoE-Befehl $1 wurde auf Ihrem System nicht gefunden oder ist nicht g&#252;ltig. Entweder ist er nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch.
index_econfig=Die RP-PPPoE ADSL-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Entweder ist sie nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch.
index_emodem=Die aktuelle Konfigurationsdatei wurde f&#252;r ein Modem unter RedHat-Linux geschrieben, und nicht f&#252;r eine ADSL-Verbindung. Benutzen Sie die <a href='$2'>Modulkonfiguration</a>, um entweder eine der <tt>ifcfg-ppp*</tt>-Dateien unter $1 zu nutzen, oder ein neues Interface anzugeben, welches von Webmin eingerichtet werden soll.
@@ -37,12 +37,12 @@ index_timeout=Ja, mit Timeout
index_title=ADSL Client
index_user=Anmelden als Benutzer
index_version=RP-PPPoE Version $1
log_bootdown=Deaktiviere ADSL-Verbindung zur Bootzeit
log_bootup=Aktiviere ADSL-Verbindung zur Bootzeit
log_save=Gespeicherte Client-Konfiguration
log_setup=Lege eine Standard-Konfiguration an
log_start=Starte ADSL-Verbindung
log_stop=Beende ADSL-Verbindung
log_bootdown=ADSL-Verbindung zur Bootzeit deaktiviert
log_bootup=ADSL-Verbindung zur Bootzeit aktiviert
log_save=Client-Konfiguration gespeichert
log_setup=Standard-Konfiguration angelegt
log_start=ADSL-Verbindung gestartet
log_stop=ADSL-Verbindung beendet
save_desc=Ihre ADSL-Client-Konfiguration wurde erfolgreich gespeichert, wird jedoch erst bei der n&#228;chsten Anmeldung/Anwahl aktiv.
save_econnect=Fehlendes oder ung&#252;ltiges "timeout"
save_eeth=Fehlende oder ung&#252;ltige aussehende Ethernetschnittstelle

View File

@@ -1,8 +1,11 @@
__norefs=1
index_boot=Lanzar en el arranque del sistema
index_bootdesc=Cambie esta opci&#243;n para elegir si desea que su conexi&#243;n ADSL se lance en el arranque o no.
index_bytes=bytes
index_cancel=Cancelar conexi&#243;n
index_canceldesc=El cliente ADSL est&#225; actualmente intentando establecer conexi&#243;n. Pulse este bot&#243;n para cancelar el intento con el comando $1.
index_cdemand=Cancelar demanda
index_cdemanddesc=El cliente ADSL esta a la espera para una solicitud de conexion demandada. Haga clic en este boton para detener con el comando $1
index_connect=Tiempo durante el que se intenta una conexi&#243;n
index_demand=&#191;Conectar bajo demanda?
index_desc=La configuraci&#243;n de abajo se aplica a cualquier conexi&#243;n ADSL iniciada por su sistema. Si la cambia, la conexi&#243;n debe ser apagada y reiniciada para que las modificaciones surtan efecto.

View File

@@ -3,7 +3,7 @@ httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=service httpd start
apply_cmd=service httpd graceful
apply_cmd=service httpd reload
stop_cmd=service httpd stop
show_order=0
max_servers=100

View File

@@ -0,0 +1,18 @@
show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=service httpd start
apply_cmd=service httpd reload
stop_cmd=service httpd stop
show_order=0
max_servers=100
test_config=1
test_manual=0
apachectl_path=/usr/sbin/apachectl
test_always=0
test_apachectl=1
auto_mods=1
show_names=0
allow_virtualmin=0
pid_file=/run/httpd/httpd.pid

View File

@@ -0,0 +1,18 @@
show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=service httpd start
apply_cmd=service httpd reload
stop_cmd=service httpd stop
show_order=0
max_servers=100
test_config=1
test_manual=0
apachectl_path=/usr/sbin/apachectl
test_always=0
test_apachectl=1
auto_mods=1
show_names=0
allow_virtualmin=0
pid_file=/run/httpd/httpd.pid

View File

@@ -246,31 +246,33 @@ elsif ($in{"$_[0]_mode"} == 2) {
# Networking and address directives
sub edit_BindAddress_Listen_Port
{
local($bref, $lref, $pref, @blist, @plist, $inp);
local($bref, $lref, $pref, @blist, @plist, @slist, $inp);
$bref = $_[0]; $lref = $_[1]; $pref = $_[2];
if (@$lref) {
# listen directives in use.. so BindAddress and Port are unused
foreach $l (@$lref) {
if ($l->{'value'} =~ /^\[(\S+)\]:(\d+)$/) {
my @w = split(/\s+/, $l->{'value'});
if ($w[0] =~ /^\[(\S+)\]:(\d+)$/) {
# IPv6 address and port
push(@blist, $1); push(@plist, $2);
}
elsif ($l->{'value'} =~ /^\[(\S+)\]$/) {
elsif ($w[0] =~ /^\[(\S+)\]$/) {
# IPv6 address only
push(@blist, $1); push(@plist, undef);
}
elsif ($l->{'value'} =~ /^(\S+):(\d+)$/) {
elsif ($w[0] =~ /^(\S+):(\d+)$/) {
# IPv4 address and port
push(@blist, $1); push(@plist, $2);
}
elsif ($l->{'value'} =~ /^(\d+)$/) {
elsif ($w[0] =~ /^(\d+)$/) {
# Port only
push(@blist, "*"); push(@plist, $1);
}
elsif ($l->{'value'} =~ /^(\S+)$/) {
elsif ($w[0] =~ /^(\S+)$/) {
# IPv4 address or hostname only
push(@blist, $1); push(@plist, undef);
}
push(@slist, $w[1]);
}
}
else {
@@ -278,36 +280,48 @@ else {
if (@$bref) { push(@blist, $bref->[@$bref-1]->{'value'}); }
else { push(@blist, "*"); }
push(@plist, undef);
push(@slist, undef);
}
$port = @$pref ? $pref->[@$pref-1]->{'value'} : 80;
if ($_[3]->{'version'} < 2.0) {
$inp = "<b>$text{'core_dport'}</b> <input name=Port size=6 value=\"$port\"><br>\n";
$inp = "<b>$text{'core_dport'}</b> ".
&ui_textbox("Port", $port, 6)."<br>\n";
}
$inp .= "<table border>\n".
"<tr $tb> <td><b>$text{'core_address'}</b></td> <td><b>$text{'core_port'}</b></td> </tr>\n";
my @cols = ( $text{'core_address'}, $text{'core_port'} );
if ($_[3]->{'version'} >= 2.4) {
# Apache supports a port protocol
push(@cols, $text{'core_portname'});
}
$inp .= &ui_columns_start(\@cols, "50%");
for($i=0; $i<@blist+1; $i++) {
$inp .= sprintf
"<tr><td><input type=radio name=BindAddress_def_$i value=2 %s>".
" $text{'core_none'} <input type=radio name=BindAddress_def_$i value=1 %s>".
" $text{'core_all'} <input type=radio name=BindAddress_def_$i value=0 %s> ".
"<input name=BindAddress_$i size=20 value=\"%s\"></td>",
$blist[$i] ? "" : "checked",
$blist[$i] eq "*" ? "checked" : "",
$blist[$i] && $blist[$i] ne "*" ? "checked" : "",
$blist[$i] eq "*" ? "" : $blist[$i];
my @row;
my $ba = $blist[$i] eq "*" ? 1 : $blist[$i] eq "" ? 2 : 0;
push(@row, &ui_radio("BindAddress_def_$i", $ba,
[ [ 2, $text{'core_none'} ],
[ 1, $text{'core_all'} ],
[ 0, &ui_textbox("BindAddress_$i",
$ba == 0 ? $blist[$i] : "", 20) ] ]));
if ($_[3]->{'version'} < 2.0) {
$inp .= "<td>".&opt_input($plist[$i], "Port_$i", "$text{'core_default'}", 5)."</td>";
push(@row, &opt_input($plist[$i], "Port_$i",
$text{'core_default'}, 5));
}
else {
$inp .= "<td><input name=Port_$i size=5 value='$plist[$i]'></td>\n";
push(@row, &ui_textbox("Port_$i", $plist[$i], 5));
}
if ($_[3]->{'version'} >= 2.4) {
push(@row, &ui_select("Name_$i", $slist[$i],
[ [ "", $text{'core_protoany'} ],
[ "http", "HTTP" ],
[ "https", "HTTPS" ] ]));
}
$inp .= &ui_columns_row(\@row);
}
$inp .= "</table>\n";
$inp .= &ui_columns_end();
return (2, $text{'core_listen'}, $inp);
}
sub save_BindAddress_Listen_Port
{
local(@blist, @plist, $bdef, $b, $p);
local(@blist, @plist, @slist, $bdef, $b, $p);
# build list of addresses and ports
for($i=0; defined($in{"Port_$i"}); $i++) {
@@ -323,6 +337,8 @@ for($i=0; defined($in{"Port_$i"}); $i++) {
if ($pdef) { push(@plist, undef); }
elsif ($p =~ /^\d+$/) { push(@plist, $p); }
else { &error(&text('core_eport', $p)); }
push(@slist, $in{"Name_$i"});
}
if (!@blist) { &error($text{'core_eoneaddr'}); }
@@ -359,6 +375,9 @@ else {
}
elsif ($blist[$i] ne "*") { push(@l, $blist[$i]); }
else { push(@l, "*:$plist[$i]"); }
if ($_[0]->{'version'} >= 2.4 && $slist[$i]) {
$l[$#l] .= " ".$slist[$i];
}
}
return ( [], \@l );
}

View File

@@ -12,7 +12,7 @@ acl_dirs2=Alle, bis auf aufgef&#252;hrte ...
acl_global=Darf globale Optionen bearbeiten?
acl_htaccess=nur .htaccess
acl_names=Darf Servernamen bearbeiten?
acl_pipe=Darf Protokolle an Programm leiten?
acl_pipe=Darf Protokolle an Programme leiten?
acl_sel=Ausgew&#228;hlte..
acl_stop=Darf Apache starten und stoppen?
acl_types=Verf&#252;gbare Direktiv-Arten
@@ -113,7 +113,7 @@ autoindex_select=Unten ausgew&#228;hlte...
autoindex_sicon=Zeige Dateiicons
autoindex_size=Zeige Dateigr&#246;&#223;en
autoindex_sort=Erlaube Benutzern das Sortieren nach Spalten
autoindex_srules=Zeige &lt;hr&gt; Linien
autoindex_srules=Zeige &lt;hr&gt; Zeilen
autoindex_track=F&#252;ge ETags im Header ein
autoindex_version=Sortiere nach Versionen
browsermatch_case=Identischer Fall?
@@ -195,7 +195,7 @@ core_egid='$1' ist keine g&#252;ltige Benutzer-ID
core_ehead=Ung&#252;ltige Anzahl Headers
core_ehlimit=$1 ist kein g&#252;ltiger hard $2
core_ehostname=Ung&#252;ltiger Server Hostname
core_einitial=Anzahl initial server processes muss eine Ganzzahl sein
core_einitial=Anzahl initiale Server-Prozesse muss eine Ganzzahl sein
core_ekeep='$1' ist keine g&#252;ltige Anzahl von Keepalives
core_ekeeptout=Keep-alive Timeout muss eine Ganzzahl sein
core_eline=Ung&#252;ltige Request line-Gr&#246;&#223;e
@@ -211,7 +211,7 @@ core_enodoc=Dokumenten-Root '$1' existiert nicht
core_enoopt=Keine Optionsdatei angegeben
core_eoneaddr=Sie m&#252;ssen mindestens eine Adresse, auf der gelauscht wird, angeben
core_eoptfile=Nur eine Optionsdatei ist erlaubt
core_eperm=Sie sind nicht berechtigt Protokolle an Programme weiterzuleiten
core_eperm=Sie sind nicht berechtigt, Protokolle an Programme weiterzuleiten
core_epid=Ung&#252;ltige PID-Datei
core_eport='$1' ist kein g&#252;ltiger Port
core_eprogmiss=Fehlendes Fehlerprotokoll-Programm
@@ -302,10 +302,12 @@ core_outfilter=Wende Output-Filter auf alle Dateien an
core_overr=Optionsdatei &#252;berschreibt..
core_pid=Server PID-Datei
core_port=Port
core_portname=Protokoll
core_proclimit=Prozessgrenze
core_proclimit2=Prozessgrenze
core_product=Nur Produkt
core_proglog=Programm
core_protoany=&lt;Jedes&gt;
core_realm=Authentifizierungs Realm-Name
core_resp=Meldung
core_rtout=Anfragen-Timeout

View File

@@ -359,6 +359,8 @@ core_ehlimit=$1 is not a valid hard $2
core_dport=Default port:
core_address=Address
core_port=Port
core_portname=Protocol
core_protoany=&lt;Any&gt;
core_listen=Listen on addresses and ports
core_eaddress='$1' is not a valid address
core_eport='$1' is not a valid port

View File

@@ -302,10 +302,12 @@ core_outfilter=Zastosuj filry wyj
core_overr=Opcje w&nbsp;pliku mają priorytet..
core_pid=PID serwera
core_port=Port
core_portname=Protokół
core_proclimit=Ograniczenie liczby procesów
core_proclimit2=ograniczenie liczby procesów
core_product=Tylko produkt
core_proglog=Programu
core_protoany=&lt;Żaden&gt;
core_realm=Nazwa dziedziny autoryzacji
core_resp=Odpowiedź
core_rtout=Czas przeterminowania zapytania

View File

@@ -11,7 +11,6 @@ return &make_directives($rv, $_[0], "mod_ext_filter");
sub mod_ext_filter_filters
{
local($d, @rv);
print STDERR "looking for ExtFilterDefine\n";
foreach $d (&find_all_directives($_[0], "ExtFilterDefine")) {
push(@rv, $d->{'words'}->[0]);
}

24
apache/mod_mpm_prefork.pl Executable file
View File

@@ -0,0 +1,24 @@
# mod_mpm_prefork.pl
# Defines editors for the pre-forking module in apache 2.4.
# The actual functions for all of these are still in core.pl
sub mod_mpm_prefork_directives
{
local $rv;
$rv = [ [ 'CoreDumpDirectory', 0, 9, 'global', 2.0 ],
[ 'BindAddress Listen Port', 1, 1, 'global', 2.0, 10 ],
[ 'ListenBacklog', 0, 1, 'global', 2.0 ],
[ 'LockFile', 0, 9, 'global', 2.0 ],
[ 'MaxRequestsPerChild', 0, 0, 'global', 2.0 ],
[ 'MinSpareServers', 0, 0, 'global', 2.0 ],
[ 'MaxSpareServers', 0, 0, 'global', 2.0 ],
[ 'PidFile', 0, 9, 'global', 2.0 ],
[ 'ScoreBoardFile', 0, 9, 'global', 2.0 ],
[ 'SendBufferSize', 0, 1, 'global', 2.0 ],
[ 'StartServers', 0, 0, 'global', 2.0 ],
[ 'Group', 0, 8, 'global', 2.0 ],
[ 'User', 0, 8, 'global', 2.0, 10 ] ];
return &make_directives($rv, $_[0], "mod_mpm_prefork");
}

View File

@@ -143,7 +143,7 @@ for($i=0; defined($path = $in{"$_[0]_path_$i"}); $i++) {
$url = $in{"$_[0]_url_${i}_def"} ? "!" : $in{"$_[0]_url_$i"};
next if (!$path);
$path =~ /^\/\S*$/ || &error(&text('mod_proxy_elurl', $path));
$url =~ /^(http|https|balancer):\/\/(\S+)$/ || $url eq "!" ||
$url =~ /^(http|https|balancer|ajp):\/\/(\S+)$/ || $url eq "!" ||
&error(&text('mod_proxy_erurl', $url));
if ($url eq "!") {
push(@notrv, "$path $url");

View File

@@ -34,18 +34,26 @@ if ($in{'SSLEngine'} eq 'on' &&
return &parse_choice("SSLEngine");
}
@sslprotos = ("SSLv2", "SSLv3", "TLSv1");
sub get_sslprotos
{
my @sslprotos = ("SSLv2", "SSLv3", "TLSv1" );
if ($httpd_modules{'core'} >= 2.223) {
push(@sslprotos, "TLSv1.1", "TLSv1.2");
}
return @sslprotos;
}
sub edit_SSLProtocol
{
local ($rv, $p, %prot);
local @list = $_[0] ? @{$_[0]->{'words'}} : ("all");
foreach $p (@list) {
if ($p =~ /^\+?all$/i) { map { $prot{lc($_)} = 1 } @sslprotos; }
if ($p =~ /^\+?all$/i) { map { $prot{lc($_)} = 1 } &get_sslprotos(); }
elsif ($p =~ /^\-all$/i) { undef(%prot); }
elsif ($p =~ /^\-(\S+)/) { $prot{lc($1)} = 0; }
elsif ($p =~ /^\+(\S+)/) { $prot{lc($1)} = 1; }
}
foreach $p (@sslprotos) {
foreach $p (&get_sslprotos()) {
$rv .= sprintf "<input type=checkbox name=SSLProtocol value=$p %s> $p ",
$prot{lc($p)} ? "checked" : "";
}
@@ -54,7 +62,7 @@ return (1, $text{'mod_ssl_proto'}, $rv);
sub save_SSLProtocol
{
local @sel = split(/\0/, $in{'SSLProtocol'});
if (scalar(@sel) == scalar(@sslprotos)) { return ( [ ] ); }
if (scalar(@sel) == scalar(&get_sslprotos())) { return ( [ ] ); }
return ( [ join(" ", (map { "+$_" } @sel)) ] );
}

View File

@@ -3,7 +3,7 @@ desc_ko_KR.euc=Apache webServer
risk=low medium high
desc_ru_SU=÷Å ÓÅÒ×ÅÒ Apache
desc_zh_TW.Big5=Apache ºô­¶¦øªA¾¹
desc_pl=Serwer WWW Apache
desc_pl=Apache - serwer WWW
desc_de=Apache Webserver
name=Apache
desc_zh_CN=Apache ·þÎñÆ÷
@@ -39,3 +39,4 @@ longdesc_hu=Apache direkt
longdesc_ms_MY=Mengkonfigurasi hampir kesemua arahan Apache dan ciri-ciri yang ada.
desc_ms_MY=Pelayan Web Apache
longdesc_de=Konfiguriert fast alle Apache-Direktiven und Features.
longdesc_pl=Konfiguracja niemal wszystkich opcji i dyrektyw Apache.

View File

@@ -25,11 +25,13 @@ if (!$ver) {
# Work out which modules Apache has
%inst = map { $_, 1 } &configurable_modules();
# Build list of modules know to Webmin
# Build list of modules known to Webmin
push(@mods, "core");
opendir(DIR, ".");
foreach $f (readdir(DIR)) {
if ($f =~ /^(mod_\S+|prefork|worker|perchild|mpm_\S+)\.pl$/) { push(@mods, $1); }
if ($f =~ /^(mod_\S+|prefork|worker|perchild|mpm_\S+)\.pl$/) {
push(@mods, $1);
}
}
closedir(DIR);
@mods = sort { $a cmp $b } @mods;

View File

@@ -101,6 +101,7 @@ fileset_eclash=Ja existeix un conjunt de fitxers amb aquest mateix nom
fileset_echild=No es pot suprimir aquest conjunt de fitxers, ja que està $1 l'està utilitzant
fileset_comp=Tipus de compressió
fileset_gzipdef=&lt;Nivell de compressió per defecte&gt;
fileset_lzo=Compressió LZO
fileset_gzip=Gzip nivell $1
fileset_onefs=Limita la còpia a un sol sistema de fitxers

View File

@@ -283,7 +283,6 @@ index_status=Prozessstatus:
index_stop=Stoppe Bacula
index_stopdesc=Klicken Sie auf diesen Button zum Stoppen des Bacula-Daemon wie oben aufgef&#252;hrt.
index_up=Up
index_version=Bacula $1
index_versionbacula=Bacula $1
index_versionbareos=Bareos $1
job_after=Befehl nach Job
@@ -362,6 +361,8 @@ log_delete_fdirector=Datei Daemon Director $1 gel&#246;scht
log_delete_fdirectors=$1 Datei Daemon Director gel&#246;scht
log_delete_fileset=Dateisatz $1 gel&#246;scht
log_delete_filesets=$1 Dateis&#228;tze gel&#246;scht
log_delete_gjob=Bacula-Gruppen-Backup Job $1 gel&#246;scht
log_delete_gjobs=$1 Bacula-Gruppen-Backup Jobs gel&#246;scht
log_delete_group=Bacula Gruppe $1 gel&#246;scht
log_delete_groups=$1 Bacula Gruppen gel&#246;scht
log_delete_job=Backup-Job $1 gel&#246;scht
@@ -382,6 +383,7 @@ 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
mount_done=.. erfolgreicht gemountet.
mount_eslot=Fehlende oder ung&#252;ltige Slot Nummer
mount_failed=.. mounten fehlgeschlagen! Siehe die Fehlermeldung f&#252;r den Grund oben.
@@ -394,6 +396,7 @@ mount_title=Mount oder Unmount
pool_any=Sichere an jedes Volume in Pool?
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_ereten=Fehlende oder ung&#252;ltige Aufbewahrungsfrist
@@ -422,6 +425,7 @@ poolstatus_first=Erstmals genutzt
poolstatus_last=Letztmals genutzt
poolstatus_name=Volume Name
poolstatus_never=Niemals
poolstatus_none=Es sind keine Volumes momentan in diesem Sicherungspool.
poolstatus_ok=OK
poolstatus_show=Zeige Volumes in Pool:
poolstatus_status=Backupmodus
@@ -445,6 +449,7 @@ restore_efiles=Keine Dateien eingegeben
restore_egroup=Bacula Gruppe existiert nicht
restore_ejob=Ung&#252;ltige Job-ID
restore_ejobfiles=Keine Dateien f&#252;r den Job aufgezeichnet
restore_enofiles=Keine der ausgew&#228;hlten Dateien im Backup
restore_eok=.. Job konnte nicht gestartet werden
restore_err=Fehlgeschlagen Backup wiederherzustellen
restore_ewhere=Fehlendes Verzeichnis zum Wiederherstellen zu
@@ -463,11 +468,16 @@ restore_return=wiederherstellen von
restore_run=Starte Wiederherstellung des Job $1 zu Client $2 aus dem Speicher $3 ..
restore_running=.. die Wiederherstellung l&#228;uft jetzt. Wenn diese fertig ist, werden die Ergebnisse unten dargestellt ..
restore_running2=.. die Wiederherstellung wurde im Hintergrund gestartet.
restore_storage=Wiederherstellung von Speicherger&#228;t
restore_title=Stelle Backup wieder her
restore_title2=Wiederherstellung Backup zur Bacula-Gruppe
restore_title3=Wiederherstellung Bacula-Backup-Gruppe
restore_where=Wiederherstellen ins Verzeichnis
restore_where2=Anderes root Verzeichnis
schedule_echild=Dieser Zeitplan kann nicht gel&#246;scht werden, da es von $1 verwendet wird
schedule_eclash=Ein Zeitplan mit dem selben Namen existiert bereits
schedule_ename=Fehlender oder ung&#252;ltiger Zeitplan Name
schedule_err=Fehlgeschlagen Backup-Zeitplan zu speichern
schedule_etimes=Fehlende Backup-Zeiten in Zeile $1
schedule_header=Sicherungszeitplan Details
schedule_level=Backup Level
@@ -484,6 +494,7 @@ schedules_title=Backup-Zeitpl&#228;ne
sdirector_egone=Director existiert nicht l&#228;nger!
sdirector_ename=Fehlender Director Name
sdirector_epass=Fehlendes Passwort
sdirector_monitor=Nur &#220;berwachung der Verbindung erlauben?
sdirector_name=Director Name
sdirector_pass=Akzeptiertes Passwort
sdirector_title1=Erstelle Storage Daemon Director

View File

@@ -40,6 +40,8 @@ ipv6_mode=Domena dla adres
confirm_zone=Potwierdzać usuwanie stref?,1,1-Tak,0-Nie
confirm_rec=Potwierdzać usuwanie rekordów?,1,1-Tak,0-Nie
free_nets=Sieci IP dla wolnych adresów,3,Automatycznie
force_random=Źródło Entropy dla kluczy DNSSEC,1,1-/dev/random (bezpieczne, ale wolne),0-/dev/urandom (Prawdopodobnie niebezpieczne, ale szybkie)
spf_record=Prawdziwy typ rekordu dla Sender Permitted From,1,1-SPF,0-TXT
line2.5=Klaster serwerów zapasowych,11
this_ip=IP domyślnego serwera głównego dla zdalnych stref zapasowych,3,Adres IP nazwy hosta
other_slaves=Dodać inne adresy IP serwerów zapasowych do listy serwerów głównych na serwerach zapasowych?,1,1-Tak,0-Nie

View File

@@ -149,11 +149,6 @@ for($i=0; $i<@_; $i++) {
if ($in{'type'} eq "PTR") {
$name = &ip6int_to_net(&arpa_to_ip($r->{'name'}));
}
elsif ($in{'type'} eq "SRV") {
$name = $r->{'name'};
$name =~ s/^_//;
$name =~ s/\._/\./;
}
else {
$name = $r->{'name'};
}

View File

@@ -20,8 +20,40 @@ $desc = &text('findfree_header', &arpa_to_ip($dom));
if ($in{'from'} && $in{'to'}) {
# Do the search
@recs = &read_zone_file($file, $dom);
@recs = grep { ($_->{'type'} eq 'A') || ($_->{'type'} eq 'PTR')} @recs;
@allrecs = &read_zone_file($file, $dom);
@recs = grep { ($_->{'type'} eq 'A') || ($_->{'type'} eq 'PTR')} @allrecs;
@gens = grep { $_->{'generate'} } @allrecs;
foreach my $g (@gens) {
@gv = @{$g->{'generate'}};
if ($gv[0] =~ /^(\d+)-(\d+)\/(\d+)$/) {
$start = $1; $end = $2; $skip = $3;
}
elsif ($gv[0] =~ /^(\d+)-(\d+)$/) {
$start = $1; $end = $2; $skip = 1;
}
else { next; }
for($i=$start; $i<=$end; $i+=$skip) {
$lhs = $gv[1];
$lhs =~ s/\$\$/\0/g;
$lhs =~ s/\$/$i/g;
$lhs =~ s/\0/\$/g;
$lhsfull = $lhs =~ /\.$/ ? $lhs :
$dom eq "." ? "$lhs." : "$lhs.$dom";
$rhs = $gv[3];
$rhs =~ s/\$\$/\0/g;
$rhs =~ s/\$/$i/g;
$rhs =~ s/\0/\$/g;
$rhsfull = &check_ipaddress($rhs) ? $rhs :
$rhs =~ /\.$/ ? $rhs :
$dom eq "." ? "$rhs." : "$rhs.$dom";
push(@recs, { 'name' => $lhsfull,
'values' => [ $rhsfull ],
'type' => $gv[2],
'class' => 'IN' });
}
}
my $freeXXXcount=0;
my $freemaccount=0;
if (@recs) {

View File

@@ -229,6 +229,8 @@ recs_find=Mostra els registres que coincideixin amb:
recs_search=Cerca
recs_drev=Elimina també els inversos
recs_none=El domini encara no té cap registre $1.
recs_nosearch=No hi ha cap registre que coincideixi amb la teva cerca.
recs_needsearch=Introdueix una cerca per trobar registres coincidents.
edit_title=Edició de $1
edit_header=de $1

File diff suppressed because it is too large Load Diff

View File

@@ -796,7 +796,9 @@ recs_ecannottype=Du har ikke tilgang til &#229; slett oppf&#248;ringer av denne
recs_find=Vis oppf&#248;ringer som matcher:
recs_header=I $1
recs_name=Navn
recs_needsearch=Angi et s&#248;k for &#229; finne matchende oppf&#248;ringer.
recs_none=Domenet har ingen $1 oppf&#248;ringer enda.
recs_nosearch=Ingen oppf&#248;ringer matchet s&#248;ket ditt.
recs_return=oppf&#248;ringstyper
recs_search=S&#248;k
recs_title=$1 oppf&#248;ringer
@@ -822,6 +824,7 @@ rmass_ename=Manglende eller ugyldig oppf&#248;ringsnavn
rmass_ename2=Oppf&#248;ringsnavnet kan ikke slutte med .
rmass_enone=Ingen valgt
rmass_err=Kunne ikke legge til oppf&#248;ringer
rmass_esign=.. ferdig, men signering feilet : $1
rmass_ettl=Manglende eller ugyldig time-to-live
rmass_header=Detaljer om masse-innlegging av oppf&#248;ringer
rmass_name=Navn for ny oppf&#248;ring
@@ -1110,6 +1113,7 @@ zonekey_desc=Denne sonen har ingen DNSSEC signerings-n&#248;kkel enda. Du kan br
zonekey_disable=Fjern n&#248;kkel
zonekey_disabledesc=Fjerner DNSSEC n&#248;kkelen fra denne sonen, og alle signerings-oppf&#248;ringer. Med en gang dette er gjort vil du kunne generere en ny n&#248;kkel.
zonekey_done=.. ferdig
zonekey_ds=DS oppf&#248;ring for overordnet sone :
zonekey_ecreate=.. oppretting feilet : $1
zonekey_efactor=N&#248;kkelst&#248;rrelse m&#229; v&#230;re et multippel av $1
zonekey_enable=Opprett og legg til n&#248;kkel
@@ -1122,7 +1126,9 @@ zonekey_header=Innstillinger for ny DNSSEC n&#248;kkel
zonekey_noprivate=Webmin kunne imidlertid ikke finne den private n&#248;kkelen som er assosiert med sonen, og vil derfor ikke v&#230;re i stand til &#229; re-signere den.
zonekey_other=Annen st&#248;rrelse (i bits)
zonekey_private=Detaljer for privat n&#248;kkel :
zonekey_privatefile=Privat n&#248;kkel fil : $1
zonekey_public=Oppf&#248;ring for offentlig n&#248;kkel :
zonekey_publicfile=Offentlig n&#248;kkel fil : $1
zonekey_resign=Re-signer sone
zonekey_resigndesc=Generer ny signeringsn&#248;kkel for sone, signer den med sonens mastern&#248;kkel, og re-signer alle oppf&#248;ringer.
zonekey_sign=Signer sone

View File

@@ -406,6 +406,7 @@ index_search=Szukaj
index_slave=Zapasowa
index_start=Uruchom serwer
index_startmsg=Naciśnij ten przycisk, aby uruchomić serwer BIND oraz załadować bieżącą konfigurację.
index_status=Stan
index_stop=Zatrzymaj serwer nazw
index_stopmsg=Kliknij ten przycisk, aby zatrzymać serwer BINDa. Klienci używający serwera nie będą mogli rozwiązywać nazw, aż serwer zostanie zrestartowany.
index_stub=Skrótowa
@@ -1009,11 +1010,14 @@ weeks=tygodni
whois_ecannot=Nie masz uprawnień do oglądania informacji WHOIS
whois_header=Wynik polecenia $1 ..
whois_title=Informacje z bazy WHOIS
xfer_failed=.. z $1 : niepowodzenie : $2
zonedef_alg=Algorytm klucza
zonedef_cmaster=Czy sprawdzać nazwy w strefach podstawowych?
zonedef_cresponse=Czy sprawdzać nazwy w odpowiedziach?
zonedef_cslave=Czy sprawdzać nazwy w strefach zapasowych?
zonedef_dne=Weryfikacja odpowiedzi negatywnych (Authenticated Denial of Existance Using)
zonedef_dnssec=Utworzyć klucz DNSSEC i podpisać nowe strefy?
zonedef_dnssec_dt=Zautomatyzuj wszystkie operacje DNSSEC (ignoruje poniższe inne ustawienia)?
zonedef_ecannot=Nie masz uprawnień do zmiany ustawień domyślnych stref podstawowych
zonedef_email=Domyślny adres e-mail
zonedef_eprins=Brakujący lub nieprawidłowy serwer nazw dla domen głównych
@@ -1038,6 +1042,7 @@ zonekey_desc=Ta strefa nie posiada ustawionego klucza DNSSEC. Mo
zonekey_disable=Usuń klucz
zonekey_disabledesc=Usuwa klucz DNSSEC z tej strefy i wszystkich podpisanych rekordów. Gdy zostanie to wykonane, będziesz mógł wygenerować nowy klucz.
zonekey_done=.. zakończono
zonekey_ds=Rekord DS dla strefy nadrzędnej :
zonekey_ecreate=.. błąd tworzenia : $1
zonekey_efactor=Rozmiar klucza musi być wielokrotnością $1
zonekey_enable=Utwórz i dodaj klucz
@@ -1050,7 +1055,9 @@ zonekey_header=Nowe opcje klucza DNSSEC
zonekey_noprivate=Jednakże Webmin nie mógł znaleźć klucza prywatnego skojarzonego ze strefą, a więc nie może jej podpisać.
zonekey_other=Inny rozmiar (w bitach)
zonekey_private=Szczegóły klucza prywatnego :
zonekey_privatefile=Plik klucza prywatnego: $1
zonekey_public=Rekord klucza publicznego :
zonekey_publicfile=Plik klucza publicznego : $1
zonekey_resign=Podpisz strefę
zonekey_resigndesc=Generuje nowy klucz podpisywania strefy, podpisuje nim klucz strefy głównej i ponownie podpisuje wszystkie rekordy.
zonekey_sign=Podpisz srefę

View File

@@ -2,7 +2,7 @@ desc_ko_KR.euc=BIND DNS
risk=low medium high
desc_ru_SU=óÅÒ×ÅÒ DNS BIND
desc_zh_TW.Big5=BIND DNS ¦øªA¾¹
desc_pl=Serwer DNS BIND
desc_pl=BIND - serwer DNS
desc_de=BIND DNS-Server
name=BIND
desc_zh_CN=BIND DNS ·þÎñÆ÷

View File

@@ -44,7 +44,8 @@ if ($in{'show'}) {
$rhs =~ s/\$\$/\0/g;
$rhs =~ s/\$/$i/g;
$rhs =~ s/\0/\$/g;
$rhsfull = $rhs =~ /\.$/ ? $rhs :
$rhsfull = &check_ipaddress($rhs) ? $rhs :
$rhs =~ /\.$/ ? $rhs :
$dom eq "." ? "$rhs." : "$rhs.$dom";
print &ui_columns_row([

View File

@@ -38,5 +38,5 @@ print <<EOF;
</noframes>
</frameset>
EOF
&popup_footer();
&popup_footer(1);

View File

@@ -23,7 +23,7 @@ edit_uid=Benutzer / UID
edit_unpriv=Unprivilegierte Benutzer
index_add=F&#252;ge einen neuen Export hinzu.
index_apply=&#196;nderungen anwenden
index_applydesc=Klicken Sie auf diese Schaltfl&#228;che, um die aktuelle Datei Export Konfiguration anzuwenden. Dies wird alle obig aufgelisteten Verzeichnisse mit den angegebenen Optionen verf&#252;gbar.
index_applydesc=Klicken Sie auf diese Schaltfl&#228;che, um die aktuelle Datei Export Konfiguration anzuwenden. Dies wird alle obig aufgelisteten Verzeichnisse mit den angegebenen Optionen verf&#252;gbar machen.
index_clients=Clients
index_delete=L&#246;sche ausgew&#228;hlte Exporte
index_dirs=Verzeichnisse

View File

@@ -165,7 +165,7 @@ location = "chooser.cgi?frame=1&chroot=$uchroot&type=$utype&file="+p;
EOF
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;'>";
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;color:#aaa;' onkeyup=\"filter_match(this.value,'row',true);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';this.style.color='#000';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';this.style.color='#aaa';}\"");
print &ui_hr("style='wdith:100%;'")."</div>";
print &ui_hr("style='width:100%;'")."</div>";
print "<b>",&text('chooser_dir', &html_escape($dir)),"</b>\n";
opendir(DIR, $in{'chroot'}.$dir) ||
&popup_error(&text('chooser_eopen', "$!"));

View File

@@ -1,168 +1,167 @@
__norefs=1
add_echeck=Auf dem Server $1 ist das Webmin-Software-Modul nicht installiert.
add_err=Konnte Server nicht hinzuf&#252;gen
add_esystem=Der Server $1 benutzt nicht das gleiche Paketsystem wie dieser Rechner
add_gerr=Konnte Gruppe nicht hinzuf&#252;gen
add_gmsg=F&#252;ge Server in die Gruppe $1 ein ...
add_msg=F&#252;ge $1 hinzu ..
add_ok=$1 mit $2 Paketen inventarisiert und hinzugef&#252;gt
add_title=Server hinzuf&#252;gen
compare_all=Alle Server
compare_desc=Hier k&#246;nnen Sie die Software-Pakete ermitteln, die auf den verschiedenen Servern installiert sind. Damit k&#246;nnen Sie unterschiedliche Software-Version einfach erkennen, um diese vielleicht auf den gleichen Stand zu bringen.
compare_err=Konnte Pakete nicht vergleichen
compare_etwo=Es m&#252;ssen mindestens zwei Server ausgew&#228;hlt werden
compare_got=OK
compare_hosts=Server zum Vergleichen
compare_miss=Fehlende
compare_ok=Jetzt vergleichen
compare_pack=Paket
compare_sel=Ausgew&#228;hlte ..
compare_showall=Pakete zum Anzeigen
compare_showall0=Nur Unterschiede
compare_showall1=Alle
compare_title=Pakete vergleichen
delete_done=.. erledigt
delete_epack=Das Paket $1 existiert nicht
delete_err=Konnte Paket $1 nicht l&#246;schen
delete_error=Fehler beim L&#246;schen von $1 : $2
delete_header=L&#246;sche Paket $1 ..
delete_ok=L&#246;schen
delete_rusure=Sind Sie sicher, dass Sie das Paket $1 von allen Servern l&#246;schen m&#246;chten. Bis zu $2 Dateien ($3 bytes) werden f&#252;r immer gel&#246;scht.
delete_rusure2=Sind Sie sicher, dass Sie das Paket $1 von $4 l&#246;schen m&#246;chten. Bis zu $2 Dateien ($3 bytes) werden f&#252;r immer gel&#246;scht.
delete_rusure2none=Sind Sie sich sicher, dass Sie die Pakete $1 von $4 l&#246;schen wollen?
delete_rusurenone=Sind Sie sich sicher, dass Sie die Pakete $1 von allen Servern l&#246;schen zu wollen?
delete_success=Gel&#246;scht von $1.
delete_title=Paket l&#246;schen
deletes_desc=Deinstalliere Pakete $1
deletes_enone=Keine Pakete ausgew&#228;hlt
deletes_err=Fehlgeschlagen Pakete zu l&#246;schen
deletes_failed1=Deinstallieren fehlgeschlagen $1 : $2
deletes_failed2=Deinstallation fehlgeschlagen : $1
deletes_ok=L&#246;sche alle
deletes_rusure=Sind Sie sich sicher, dass Sie die Pakete $1 von allen ausgew&#228;hlten Hosts deinstallieren wollen?
deletes_success1=Erfolgreich deinstalliert $1
deletes_success2=...Deinstallation komplett.
deletes_title=L&#246;sche Pakete
do_already=Ist bereits installiert auf $1.
do_arch=Architektur
do_class=Klasse
do_desc=Beschreibung
do_details=Paket-Details
do_done=.. erledigt
do_edeleted=Die Installationsdatei wurde gel&#246;scht - kehren Sie zum Modulindex zur&#252;ck und versuchen Sie es erneut.
do_failed=Fehler beim Installieren auf $1 : $2
do_header=Installiere $1 auf allen Rechnern ...
do_header3=Installiere $1 auf Servern, wo es noch nicht installiert ist ...
do_header4=Installiere $1 auf Servern der Gruppe $2 ...
do_header5=Installiere $1 auf $2 ..
do_header6=Installiere $1 auf Rechnern, die es bereits haben ..
do_inst=Installiert
do_none=Kein(es)
do_pack=Paket
do_success=Installiert auf $1.
do_success2=$1 auf $2 installiert.
do_title=Installiere Paket
do_vend=Lieferant
do_ver=Version
edit_all=&lt;Alle Server&gt;
edit_arch=Architektur
edit_class=Klasse
edit_desc=Beschreibung
edit_details=Paket-Details von $1
edit_donthave=&lt;Server, die es noch nicht haben&gt;
edit_group=Mitglieder von $1
edit_have=&lt;Rechner haben es bereits&gt;
edit_hosts=Installiert auf den Servern
edit_inst=Installiert
edit_list=Liste Dateien auf:
edit_none=Kein(es)
edit_pack=Paket
edit_return=Paket-Details
edit_title=Bearbeite Paket
edit_uninst=Deinstalliere von:
edit_vend=Lieferant
edit_ver=Version
host_all=Alle Pakete
host_close=Schlie&#223;e alle
host_count=Installierte Pakete
host_delete=Entferne aus dem Software-Management
host_header=Details zu den Servern im Software-Management
host_installed=Installierte Pakete
host_name=Hostname
host_open=Alle &#246;ffnen
host_os=Betriebssystem von Webmin &#252;bermittelt
host_refresh=Pakete aktualisieren
host_return=Serverdetails
host_system=Paketsystem
host_title=Server im Software-Management
host_type=Servertyp
index_add=Einen Server hinzuf&#252;gen
index_compare=Server vergleichen
index_count=($1 Pakete)
index_down=Jeder Server soll das Paket neu downloaden
index_ftp=Via FTP- oder HTTP-URL
index_gadd=F&#252;ge Server der Gruppe hinzu
index_hosts=Server im Software-Management
index_install=Ein neues Paket installieren
index_installed=Installierte Pakete
index_installmsg=W&#228;hlen Sie den Ort von wo ein neues Paket installiert werden soll ..
index_installok=Installiere
index_local=Von einer lokalen Datei
index_nohosts=Es wurden keine Webmin-Server f&#252;r das Software-Management eingerichtet.
index_refresh=Erneuere Paketliste
index_return=Serverliste
index_search=Suche nach einem Paket
index_tcount=Pakete
index_tdesc=Beschreibung
index_thost=Hostname
index_title=Cluster Software-Pakete
index_ttype=Betriebssystemtyp
index_uploaded=Von einer heraufzuladenden Datei
install_ealready=Bereits installiert
install_edir=Kein g&#252;ltiges $1 Verzeichnis
install_efile=Keine g&#252;ltige $1 Datei
install_elocal=Es wurde keine lokale Datei angegeben
install_elocal2='$1' existiert nicht
compare_showall=Pakete zum Anzeigen
search_pack=Paket
add_gmsg=F&#252;ge Server in die Gruppe $1 ein ...
index_installed=Installierte Pakete
deletes_success2=...Deinstallation komplett.
add_ok=$1 mit $2 Paketen inventarisiert und hinzugef&#252;gt
search_nomatch=Keine Pakete gefunden f&#252;r $1
deletes_ok=L&#246;sche alle
delete_done=.. erledigt
edit_title=Bearbeite Paket
deletes_failed1=Deinstallieren fehlgeschlagen $1 : $2
search_invert=Auswahl umkehren
host_delete=Entferne aus dem Software-Management
install_err=Konnte Paket nicht installieren
install_erus=Dieser Server benutzt einen anderen Update-Mechanismus als der Masterserver ($1 im Gegensatz zu $2)
install_eupdate=Ein Fehler ist beim Installieren der spezifizierten Updates aufgetreten
install_eupload=Ihr Browser unterst&#252;tzt keinerlei Dateiuploads
install_eurl=Unverst&#228;ndliche URL '$1'
install_ezip=Keine g&#252;ltige komprimierte oder &quot;gzip&quot;te $1 Datei
install_header=Installiere Paket
install_ok=Installiere
install_packs=Paket(e) zum Installieren
install_servers=Server auf die installiert werden soll.
install_title=Installiere Paket
list_files=Dateien f&#252;r Paket $1 auf $2
list_group=Gruppe
list_ok=OK
list_owner=Besitzer
list_path=Pfad
list_size=Gr&#246;&#223;e
list_status=Status
list_title=Paketdateien
list_type=Typ
refresh_1=Erneuere $1 (hinzugef&#252;gt $2 , gel&#246;scht $3)
refresh_2=Erneuere $1 (hinzugef&#252;gt $2)
refresh_3=Erneuere $1 (gel&#246;scht $2)
refresh_4=Erneuere $1 (keine &#196;nderungen)
index_local=Von einer lokalen Datei
delete_epack=Das Paket $1 existiert nicht
do_header5=Installiere $1 auf $2 ..
do_header=Installiere $1 auf allen Rechnern ...
refresh_del=L&#246;sche $1 von der Serverliste
refresh_done=.. erledigt
compare_showall1=Alle
deletes_failed2=Deinstallation fehlgeschlagen : $1
delete_header=L&#246;sche Paket $1 ..
edit_arch=Architektur
search_desc=Beschreibung
index_count=($1 Pakete)
index_uploaded=Von einer heraufzuladenden Datei
refresh_1=Erneuere $1 (hinzugef&#252;gt $2 , gel&#246;scht $3)
install_ezip=Keine g&#252;ltige komprimierte oder &quot;gzip&quot;te $1 Datei
install_eurl=Unverst&#228;ndliche URL '$1'
delete_error=Fehler beim L&#246;schen von $1 : $2
edit_all=&lt;Alle Server&gt;
refresh_failed=Konnte nicht erneuern $1 : $2
refresh_header=Frage die Paketliste von allen Servern neu ab ...
refresh_header4=Neuabfrage der Paketliste von Mitgliedern von $2 ..
compare_desc=Hier k&#246;nnen Sie die Software-Pakete ermitteln, die auf den verschiedenen Servern installiert sind. Damit k&#246;nnen Sie unterschiedliche Software-Version einfach erkennen, um diese vielleicht auf den gleichen Stand zu bringen.
edit_inst=Installiert
edit_desc=Beschreibung
search_class=Klasse
install_efile=Keine g&#252;ltige $1 Datei
install_packs=Paket(e) zum Installieren
do_header4=Installiere $1 auf Servern der Gruppe $2 ...
install_erus=Dieser Server benutzt einen anderen Update-Mechanismus als der Masterserver ($1 im Gegensatz zu $2)
index_compare=Server vergleichen
install_title=Installiere Paket
compare_etwo=Es m&#252;ssen mindestens zwei Server ausgew&#228;hlt werden
index_ftp=Via FTP- oder HTTP-URL
install_ok=Installiere
install_servers=Server auf die installiert werden soll.
deletes_title=L&#246;sche Pakete
list_group=Gruppe
delete_err=Konnte Paket $1 nicht l&#246;schen
this_server=dieser Server
edit_donthave=&lt;Server, die es noch nicht haben&gt;
search_return=Suchergebnisse
deletes_success1=Erfolgreich deinstalliert $1
refresh_header5=Neuabfrage der Paketliste von $2 ..
refresh_title=Erneuere Paketliste
search_class=Klasse
index_tdesc=Beschreibung
host_system=Paketsystem
do_already=Ist bereits installiert auf $1.
delete_success=Gel&#246;scht von $1.
search_delete=Deinstalliere ausgew&#228;hlte Pakete von:
search_desc=Beschreibung
search_invert=Auswahl umkehren
search_match=Pakete gefunden f&#252;r $1
search_nomatch=Keine Pakete gefunden f&#252;r $1
search_none=Kein(es)
search_pack=Paket
search_return=Suchergebnisse
search_selall=Alle ausw&#228;hlen
do_edeleted=Die Installationsdatei wurde gel&#246;scht - kehren Sie zum Modulindex zur&#252;ck und versuchen Sie es erneut.
compare_got=OK
host_close=Schlie&#223;e alle
edit_ver=Version
edit_have=&lt;Rechner haben es bereits&gt;
compare_all=Alle Server
refresh_4=Erneuere $1 (keine &#196;nderungen)
index_add=Einen Server hinzuf&#252;gen
install_eupload=Ihr Browser unterst&#252;tzt keinerlei Dateiuploads
deletes_rusure=Sind Sie sich sicher, dass Sie die Pakete $1 von allen ausgew&#228;hlten Hosts deinstallieren wollen?
index_return=Serverliste
search_title=Paketsuche
this_server=dieser Server
index_hosts=Server im Software-Management
do_ver=Version
install_header=Installiere Paket
deletes_err=Fehlgeschlagen Pakete zu l&#246;schen
edit_class=Klasse
deletes_desc=Deinstalliere Pakete $1
index_thost=Hostname
compare_hosts=Server zum Vergleichen
install_elocal2='$1' existiert nicht
delete_rusure2=Sind Sie sicher, dass Sie das Paket $1 von $4 l&#246;schen m&#246;chten. Bis zu $2 Dateien ($3 bytes) werden f&#252;r immer gel&#246;scht.
install_elocal=Es wurde keine lokale Datei angegeben
edit_group=Mitglieder von $1
edit_none=Kein(es)
host_name=Hostname
compare_sel=Ausgew&#228;hlte ..
search_selall=Alle ausw&#228;hlen
do_done=.. erledigt
do_class=Klasse
do_success2=$1 auf $2 installiert.
refresh_2=Erneuere $1 (hinzugef&#252;gt $2)
host_open=Alle &#246;ffnen
index_nohosts=Es wurden keine Webmin-Server f&#252;r das Software-Management eingerichtet.
do_title=Installiere Paket
compare_err=Konnte Pakete nicht vergleichen
host_type=Servertyp
host_refresh=Pakete aktualisieren
edit_pack=Paket
do_none=Kein(es)
list_ok=OK
list_type=Typ
install_eupdate=Ein Fehler ist beim Installieren der spezifizierten Updates aufgetreten
add_title=Server hinzuf&#252;gen
do_inst=Installiert
host_header=Details zu den Servern im Software-Management
do_header6=Installiere $1 auf Rechnern, die es bereits haben ..
compare_showall0=Nur Unterschiede
install_ealready=Bereits installiert
install_edir=Kein g&#252;ltiges $1 Verzeichnis
compare_title=Pakete vergleichen
list_status=Status
delete_rusure2none=Sind Sie sich sicher, dass Sie die Pakete $1 von $4 l&#246;schen wollen?
edit_hosts=Installiert auf den Servern
edit_details=Paket-Details von $1
host_count=Installierte Pakete
refresh_done=.. erledigt
list_title=Paketdateien
index_tcount=Pakete
edit_vend=Lieferant
do_header3=Installiere $1 auf Servern, wo es noch nicht installiert ist ...
add_err=Konnte Server nicht hinzuf&#252;gen
edit_list=Liste Dateien auf:
refresh_header4=Neuabfrage der Paketliste von Mitgliedern von $2 ..
host_all=Alle Pakete
add_msg=F&#252;ge $1 hinzu ..
delete_ok=L&#246;schen
list_owner=Besitzer
compare_ok=Jetzt vergleichen
deletes_enone=Keine Pakete ausgew&#228;hlt
add_esystem=Der Server $1 benutzt nicht das gleiche Paketsystem wie dieser Rechner
host_return=Serverdetails
index_installok=Installiere
add_echeck=Auf dem Server $1 ist das Webmin-Software-Modul nicht installiert.
compare_miss=Fehlende
__norefs=1
add_gerr=Konnte Gruppe nicht hinzuf&#252;gen
do_details=Paket-Details
do_desc=Beschreibung
delete_rusure=Sind Sie sicher, dass Sie das Paket $1 von allen Servern l&#246;schen m&#246;chten. Bis zu $2 Dateien ($3 bytes) werden f&#252;r immer gel&#246;scht.
edit_uninst=Deinstalliere von:
delete_rusurenone=Sind Sie sich sicher, dass Sie die Pakete $1 von allen Servern l&#246;schen zu wollen?
host_installed=Installierte Pakete
refresh_header=Frage die Paketliste von allen Servern neu ab ...
index_ttype=Betriebssystemtyp
do_arch=Architektur
compare_pack=Paket
index_down=Jeder Server soll das Paket neu downloaden
search_match=Pakete gefunden f&#252;r $1
index_install=Ein neues Paket installieren
index_search=Suche nach einem Paket
list_path=Pfad
index_title=Cluster Software-Pakete
index_refresh=Erneuere Paketliste
host_os=Betriebssystem von Webmin &#252;bermittelt
index_gadd=F&#252;ge Server der Gruppe hinzu
do_vend=Lieferant
search_none=Kein(es)
do_pack=Paket
list_size=Gr&#246;&#223;e
host_title=Server im Software-Management
edit_return=Paket-Details
refresh_3=Erneuere $1 (gel&#246;scht $2)
do_failed=Fehler beim Installieren auf $1 : $2
list_files=Dateien f&#252;r Paket $1 auf $2
delete_title=Paket l&#246;schen

View File

@@ -716,8 +716,10 @@ like /etc/cron.hourly. Returns undef otherwise.
=cut
sub is_run_parts
{
local ($cmd) = @_;
local $rp = $config{'run_parts'};
return $rp && $_[0] =~ /$rp(.*)\s+(\-\-\S+\s+)*([a-z0-9\.\-\/_]+)(\s*\))?$/i ? $3 : undef;
$cmd =~ s/\s*#.*$//;
return $rp && $cmd =~ /$rp(.*)\s+(\-\-\S+\s+)*([a-z0-9\.\-\/_]+)(\s*\))?$/i ? $3 : undef;
}
=head2 can_edit_user(&access, user)

View File

@@ -9,7 +9,7 @@ if ($in{'cancel'}) {
&redirect("");
exit;
}
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
$par = &get_parent_config();
foreach $i ($in{'sidx'}, $in{'uidx'}) {
if ($i ne "") {
@@ -64,7 +64,7 @@ if ($type) {
}
&save_directive($par, [ $to_del ], [ ], 0);
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
if ($to_del->{'name'} eq "group") {
@count = &find("host", $group->{'members'});
&webmin_log('delete', 'group', join(",", map { $_->{'values'}->[0] } @count), \%in);

View File

@@ -10,7 +10,7 @@ require './params-lib.pl';
%access = &get_module_acl();
# Work out what is being done
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
$parent = &get_parent_config();
foreach $d (@d) {
local @subs = reverse(split(/\//, $d));
@@ -37,7 +37,7 @@ if ($in{'confirm'}) {
&save_directive($pardel->[0], [ $pardel->[1] ], [ ], 0);
}
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&webmin_log("delete", "hosts", scalar(@d));
&redirect("");
}

View File

@@ -23,14 +23,14 @@ while($i < @tok) {
}
# Delete them, in reverse order so that line numbers aren't messed up
&lock_file($config{'lease_file'});
&lock_all_files();
$lref = &read_file_lines($config{'lease_file'});
foreach $lease (reverse(@todelete)) {
splice(@$lref, $lease->{'line'},
$lease->{'eline'} - $lease->{'line'} + 1);
}
&flush_file_lines($config{'lease_file'});
&unlock_file($config{'lease_file'});
&unlock_all_files();
&restart_dhcpd();
&webmin_log("delete", "lease", $lease->{'values'}->[0]);

View File

@@ -10,7 +10,7 @@ require './params-lib.pl';
%access = &get_module_acl();
# Work out what is being done
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
$parent = &get_parent_config();
foreach $d (@d) {
local ($idx, $pidx) = split(/\//, $d);
@@ -35,7 +35,7 @@ if ($in{'confirm'}) {
&save_directive($pardel->[0], [ $pardel->[1] ], [ ], 0);
}
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&webmin_log("delete", "subnets", scalar(@d));
&redirect("");
}

View File

@@ -993,4 +993,27 @@ else {
}
}
sub get_all_config_files
{
my $conf = &get_config();
my @rv = ( $config{'dhcpd_conf'} );
push(@rv, map { $_->{'file'} } @$conf);
push(@rv, $config{'add_file'}) if ($config{'add_file'});
return &unique(@rv);
}
sub lock_all_files
{
foreach my $f (&get_all_config_files()) {
&lock_file($f);
}
}
sub unlock_all_files
{
foreach my $f (reverse(&get_all_config_files())) {
&unlock_file($f);
}
}
1;

View File

@@ -5,7 +5,7 @@
require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
($par, $group, $indent, $npar, $nindent) = get_branch('grp', $in{'new'});
$parconf = $par->{'members'};
@@ -121,12 +121,13 @@ if ($in{'delete'}) {
&flush_file_lines();
}
else {
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&redirect("confirm_delete.cgi?sidx=$in{'sidx'}&uidx=$in{'uidx'}".
"&idx=$in{'idx'}=&type=2");
exit;
}
}
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
@count = &find("host", $group->{'members'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
'group', join(",", map { $_->{'values'}->[0] } @count), \%in);

View File

@@ -5,7 +5,7 @@
require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
($par, $host, $indent, $npar, $nindent) = get_branch('hst', $in{'new'});
# check acls
@@ -152,7 +152,7 @@ else {
}
}
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
'host', $host->{'values'}->[0], \%in);
if ($in{'ret'} eq "group") {

View File

@@ -8,7 +8,7 @@
require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
$conf = &get_config();
$client = &get_parent_config();
@@ -31,7 +31,7 @@ for($i=0; defined($id = $in{"id_$i"}); $i++) {
}
&save_directive($client, 'key', \@keys, 0);
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&webmin_log("keys", undef, undef, \%in);
&redirect("");

View File

@@ -5,7 +5,7 @@
require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
$client = &get_parent_config();
push(@parents, $client);
foreach $i ($in{'sidx'}, $in{'uidx'}, $in{'gidx'}, $in{'idx'}) {
@@ -184,7 +184,7 @@ else {
}
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
if ($client->{'name'} eq 'subnet') {
&webmin_log("options", 'subnet',
"$client->{'values'}->[0]/$client->{'values'}->[2]", \%in);

View File

@@ -5,7 +5,7 @@
require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
$conf = &get_config();
if ($in{'sidx'} ne "") {
$sha = $conf->[$in{'sidx'}];
@@ -80,7 +80,7 @@ else {
}
}
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
if ($sub->{'name'} eq 'subnet') {
&webmin_log('modify', 'subnet',
"$sub->{'values'}->[0]/$sub->{'values'}->[2]", \%in);

View File

@@ -5,7 +5,7 @@
require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
($par, $sha, $indent) = &get_branch('sha', $in{'new'});
$parconf = $par->{'members'};
@@ -189,12 +189,12 @@ if ($in{'delete'}) {
&flush_file_lines();
}
else {
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&redirect("confirm_delete.cgi?idx=$in{'idx'}\&type=0");
exit;
}
}
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
'shared', $sha->{'values'}->[0], \%in);
&redirect("");

View File

@@ -5,7 +5,7 @@
require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
($par, $sub, $indent, $npar, $nindent) = get_branch('sub', $in{'new'});
$parconf = $par->{'members'};
@@ -201,13 +201,13 @@ if ($in{'delete'}) {
&flush_file_lines();
}
else {
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&redirect("confirm_delete.cgi?sidx=$in{'sidx'}&idx=$in{'idx'}"
."\&type=1");
exit;
}
}
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
'subnet', "$sub->{'values'}->[0]/$sub->{'values'}->[2]", \%in);

View File

@@ -10,7 +10,7 @@ require './params-lib.pl';
&ReadParse();
%access = &get_module_acl();
$access{'zones'} || &error($text{'zone_ecannot'});
&lock_file($config{'dhcpd_conf'});
&lock_all_files();
unless ($in{'new'}){ # on change or delete
# Read current zone data from config file
@@ -56,7 +56,7 @@ if ($in{'delete'}) {
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&unlock_all_files();
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
'shared', $zone->{'values'}->[0], \%in);

View File

@@ -1,21 +1,20 @@
__norefs=1
index_rundesc=Klicke hier, um die konfigurierten Verzeichnissen sofort zu scannen, um ihre Festplattennutzung zu berechnen.
run_done=... Fertig!
sched_err=Fehlgeschlagen zeitgesteuerte Sammlung zu speichern
index_none=Es ist noch kein Festplattenverbrauch analysiert. Erstellen Sie entweder eine geplante Analyse oder dr&#252;cken Sie auf den Button unten.
run_title=Analysiere Festplattenplatz
sched_header=Optionen
index_dir=Verzeichnis
index_files=Dateien
sched_title=Geplante Analyse
index_for=F&#252;r Verzeichnis $1
index_fors=F&#252;r Verzeichnisse $1
index_none=Es ist noch kein Festplattenverbrauch analysiert. Erstellen Sie entweder eine geplante Analyse oder dr&#252;cken Sie auf den Button unten.
index_return=Nutzungsbau
index_run=Analysiere jetzt
index_rundesc=Klicke hier, um die konfigurierten Verzeichnissen sofort zu scannen, um ihre Festplattennutzung zu berechnen.
index_sched=Erstelle geplante Analyse
sched_enabled=Geplante Analyse aktiviert?
sched_at=Ja, zu den unten gew&#228;hlten Einstellungen.
run_doing=Analysiere jetzt Festplattenplatz ...
index_scheddesc=Klicken auf diese Schaltfl&#228;che, um die automatische, zeitgesteuerte Sammlung von Festplatten Nutzungsdaten f&#252;r den konfigurierten Verzeichnissen einzustellen.
index_total=Gesamt
run_doing=Analysiere jetzt Festplattenplatz ...
run_done=... Fertig!
run_title=Analysiere Festplattenplatz
sched_at=Ja, zu den unten gew&#228;hlten Einstellungen.
sched_enabled=Geplante Analyse aktiviert?
sched_err=Fehlgeschlagen zeitgesteuerte Sammlung zu speichern
sched_header=Optionen
sched_title=Geplante Analyse
shed_err=Fehler bei der Analyse
index_fors=F&#252;r Verzeichnisse $1
index_return=Nutzungsbau
index_sched=Erstelle geplante Analyse
__norefs=1
index_run=Analysiere jetzt

View File

@@ -0,0 +1,5 @@
<header>Nivells de seguretat</header>
Aquest camp determina quins nivells de seguretat han d'utilitzar els clients. Es poden seleccionar múltiples nivells, i els preferits es provaran primer. <p>
<footer>

View File

@@ -4,6 +4,7 @@ index_inactive=Inactiu
index_to=Exportat a..
index_none=Actualment no estàs exportant cap directori.
index_add=Afegeix una nova exportació.
index_add4=Afegeix una nova exportació NFSv4.
index_apply=Aplica els Canvis
index_applymsg=Fes clic sobre aquest botó per aplicar la configuració actual d'exportacions. Això farà que tots els directoris llistats més amunt estiguin disponibles amb les opcions especificades.
index_return=a la llista d'exportació
@@ -26,6 +27,8 @@ edit_host=Host(s)
edit_webnfs=Clients WebNFS
edit_netgroup=Grup de xarxa NIS
edit_network=Xarxa
edit_network4=Xarxa IPv4
edit_network6=Xarxa IPv6
edit_netmask=Màscara
edit_address=Adreça
edit_prefix=/
@@ -37,7 +40,7 @@ edit_ro=Nom
edit_subtree_check=Desactiva la comprovació de subarbres
edit_hide=Amaga el sistema de fitxers
edit_auth=(amb o sense Autenticació)
edit_sec=Nivell de seguretat
edit_sec=Nivells de seguretat
edit_integrity=Integritat
edit_privacy=Privacitat (incloent Integritat)
edit_v2opts=Opcions específiques de NFSv2
@@ -57,9 +60,16 @@ edit_sync1=S
edit_sync2=No
edit_sync0=Per defecte
edit_in=en
edit_sec_sys=Sense seguretat
edit_sec_krb5=Autenticació Kerberos
edit_sec_krb5i=Integritat Kerberos
edit_sec_krb5p=Privacitat Kerberos
edit_sec_lipkey=LIPKEY
edit_sec_spkm=SPKM
save_err=No s'ha pogut desar l'exportació
save_edir=El directori '$1' no existeix
save_epfs=No sembla que el camí '$1' del pseudo-sistema sigui un camí absolut
save_enetgroup=Hi falta el grup de xarxa o és invàlid
save_enetwork='$1' no és una xarxa vàlida
save_enetmask='$1' no és una màscara vàlida
@@ -68,7 +78,8 @@ save_euids=Els UIDs no fiables han de ser una llista de n
save_egids=Els GIDs no fiables han de ser una llista de números o rangs separada per comes
save_pfs='$1' ja està exportat com a directori
save_create_dir=No es pot crear el directori '$1'
save_eanonuid=L'usuari d'accès anònim és invàlid
save_eanongid=El grup d'accés anònim és invàlid
exports_webnfs=Clients&nbsp;WebNFS
exports_ngroup=Grup de xarxa&nbsp;$1
exports_net=Xarxa&nbsp;$1

View File

@@ -32,14 +32,13 @@ edit_prefix=/
edit_privacy=Datenschutz (inklusive Integrit&#228;t)
edit_relative=Symbolische Links relativ machen?
edit_ro=Schreibgesch&uuml;tzt
edit_sec=Sicherheitslevel
edit_sec_krb5=Kerberos-Authentifizierung
edit_sec_krb5i=Kerberos Integrit&#228;t
edit_sec_krb5p=Kerberos Privatsph&#228;re
edit_sec_lipkey=LIPKEY
edit_sec_spkm=SPKM
edit_sec_sys=Keine Sicherheit
edit_secs=Sicherheitslevel
edit_secs=Sicherheitsstufen
edit_security=Exportiere Sicherheit
edit_squash=Vertraue Fernbenutzern
edit_subtree_check=Subtree-&#220;berpr&#252;fung abschalten?

View File

@@ -21,6 +21,8 @@ edit_mode=Tilgangsmodus
edit_netgroup=NIS Nettgruppe
edit_netmask=Nettmaske
edit_network=Nettverk
edit_network4=IPv4 nettverk
edit_network6=IPv6 nettverk
edit_nfs_vers=NFS Versjon
edit_noaccess=Nekt tilgang til katalog?
edit_nobody=Ingen
@@ -30,7 +32,13 @@ edit_prefix=/
edit_privacy=Hemmelighold (inkludert Integritet)
edit_relative=Gj&#248;r symbolske lenker relative?
edit_ro=Bare-les?
edit_sec=Sikkerhetsniv&#229;
edit_sec_krb5=Kerberos autentisering
edit_sec_krb5i=Kerberos integritet
edit_sec_krb5p=Kerberos privacy
edit_sec_lipkey=LIPKEY
edit_sec_spkm=SPKM
edit_sec_sys=Ingen sikkerhet
edit_secs=Sikkerhetsniv&#229;er
edit_security=Eksporter sikkerhet
edit_squash=Stol p&#229; eksterne brukere
edit_subtree_check=Deaktiver sjekking av under-tre?
@@ -52,6 +60,7 @@ exports_net=Nettverk;nbsp;$1
exports_ngroup=Nettgruppe;nbsp;$1
exports_webnfs=WebNFS&nbsp;klienter
index_add=Legg til ny eksport.
index_add4=Legg til en ny NFSv4 eksport.
index_apply=Bruk endringer
index_applymsg=Klikk p&#229; denne knappen for &#229; ta i bruk gjeldende fileksport konfigurasjon. Dette vil gj&#248;re alle kataloger angitt ovenfor, tilgjengelige med de spesifiserte innstillingene.
index_delete=Slett valgte eksporter
@@ -73,12 +82,15 @@ log_delete_l=Slettet NFS eksport $1 til $2
log_modify=Endret NFS eksport $1
log_modify_l=Endret NFS eksport $1 til $2
save_create_dir=Kan ikke opprette katalogen '$1'
save_eanongid=Ugyldig navn p&#229; anonym tilgangsgruppe
save_eanonuid=Ugyldig brukernavn for anonym tilgang
save_edir=Katalogen '$1' finnes ikke
save_egids=GIDer som ikke skal betros m&#229; v&#230;re en komma-separert liste med tall eller tallomr&#229;der
save_ehost='$1' er ikke et gyldig vertsnavn
save_enetgroup=Ugyldig eller manglende nettgruppe
save_enetmask='$1' er ikke en gyldig nettmaske
save_enetwork='$1' er ikke et gyldig nettverk
save_epfs=Pseudo-filsystem sti '$1' ser ikke ut som en absolutt sti
save_err=Kunne ikke lagre eksport
save_euids=UIDer som ikke skal betros m&#229; v&#230;re en komma-separert liste med tall eller tallomr&#229;der
save_pfs='$1' er allerede eksportert som en katalog

View File

@@ -455,10 +455,14 @@ sub list_all_config_files
{
my @rv;
push(@rv, "$config{'config_dir'}/fail2ban.conf");
push(@rv, "$config{'config_dir'}/fail2ban.local");
push(@rv, glob("$config{'config_dir'}/filter.d/*.conf"));
push(@rv, glob("$config{'config_dir'}/filter.d/*.local"));
push(@rv, glob("$config{'config_dir'}/action.d/*.conf"));
push(@rv, glob("$config{'config_dir'}/action.d/*.local"));
push(@rv, "$config{'config_dir'}/jail.conf");
return @rv;
push(@rv, "$config{'config_dir'}/jail.local");
return grep { -r $_ } @rv;
}
1;

View File

@@ -119,6 +119,7 @@ jail_none=No n'hi ha cap d'establert
jail_banaction=Acció a aplicar per defecte
jail_defprotocol=Protocol per defecte de les accions
jail_edestemail=Hi falta el correu de notificació per defecte o bé és invàlid
jail_eignoreip=L'adreça IP a ignorar és invàlida
jaildef_title=Opcions per Defecte de les Presons
jaildef_header=Valors per defecte de totes les presons
@@ -129,14 +130,14 @@ start_err=No s'ha pogut iniciar el servidor
stop_err=No s'ha pogut aturar el servidor
restart_err=No s'ha pogut reiniciar el servidor
log_create_filter=S'ha suprimit el filtre $1
log_modify_filter=S'ha suprimit el filtre $1
log_create_filter=S'ha creat el filtre $1
log_modify_filter=S'ha modificat el filtre $1
log_delete_filter=S'ha suprimit el filtre $1
log_create_action=S'ha suprimit l'acció $1
log_modify_action=S'ha suprimit l'acció $1
log_create_action=S'ha creat l'acció $1
log_modify_action=S'ha modificat l'acció $1
log_delete_action=S'ha suprimit l'acció $1
log_create_jail=S'ha suprimit la presó $1
log_modify_jail=S'ha suprimit la presó $1
log_create_jail=S'ha creat la presó $1
log_modify_jail=S'ha modificat la presó $1
log_delete_jail=S'ha suprimit la presó $1
log_config=S'ha canviat la configuració global
log_stop=S'ha aturat el servidor Fail2Ban

View File

@@ -28,7 +28,6 @@ check_eclient=Der Client-Befehl $1 wurde nicht gefunden
check_econf=Die Konfigurationsdatei $2 in $1 existiert nicht
check_edir=Das Konfigurationsverzeichnis $1 existiert nicht
check_eserver=Der Server-Befehl $1 wurde nicht gefunden
client_cmd=Der Client-Befehl $1 wurde nicht gefunden
config_default=Standard Ziel
config_edef=Kein Definition Abschnitt in der Konfigurationsdatei gefunden!
config_elogtarget=Datei, um Protokolle zu schreiben, muss ein absoluter Pfad sein
@@ -142,15 +141,12 @@ log_delete_filter=Filter $1 gel&#246;scht
log_delete_jail=Gef&#228;ngnis $1 gel&#246;scht
log_jaildef=Standard Gef&#228;ngnis Optionen ge&#228;ndert
log_manual=Konfigurationsdatei $1 editiert
log_modify_action=Aktion $1 modifiziert
log_modify_filter=Filter $1 modifiziert
log_modify_jail=Gef&#228;ngnis $1 modifiziert
log_restart=Fail2Ban Server neu gestartet
log_start=Fail2Ban Server gestartet
log_stop=Fail2Ban Server gestoppt
log_update_action=Aktion $1 modifiziert
log_update_filter=Filter $1 modifiziert
log_update_jail=Gef&#228;ngnis $1 modifiziert
log_update_jail=Jail $1 modifiziert
manual_desc=Datei zum editieren:
manual_edata=Keinen Inhalt f&#252;r Konfigurationsdatei eingegeben
manual_efile=Ausgew&#228;hlte Datei ist nicht Bestandteil der Fail2Ban Konfiguration!
@@ -158,7 +154,6 @@ manual_err=Fehlgeschlagen Konfigurationsdateien zu editieren
manual_ok=OK
manual_title=Editiere Konfigurationsdateien
restart_err=Fehlgeschlagen Server neu zu starten
server_cmd=Der Server-Befehl $1 wurde nicht gefunden
start_err=Fehlgeschlagen Server zu starten
stop_err=Fehlgeschlagen Server zu stoppen
syslog_logtarget=Fail2Ban Aktion Log

View File

@@ -12,9 +12,9 @@ if ($in{'text'} || $in{'file'} && !&is_html_file($in{'file'})) {
$text_mode = 1;
}
if (!&can_access($in{'file'})) {
if ($in{'file'} ne '' && !&can_access($in{'file'})) {
# ACL rules prevent access to file
&error_exit(&text('view_eaccess', &html_escape($in{'file'})));
&error(&text('view_eaccess', &html_escape($in{'file'})));
}
&popup_header($in{'file'} ? $text{'html_title'} : $text{'html_title2'},

View File

@@ -182,7 +182,9 @@ else {
# Returns 1 if some file can be edited/deleted
sub can_access
{
local $path = &simplify_path($_[0]);
local ($file) = @_;
$file =~ /^\// || return 0;
local $path = &simplify_path($file);
return &under_root_dir($path, \@allowed_roots) &&
($path eq "/" || !&under_root_dir($path, \@denied_roots));
}
@@ -383,9 +385,11 @@ if ($zip) {
}
$info = &file_info_line(&unmake_chroot($refresh), $refresh);
print "<script>\n";
print "opener.document.FileManager.",
print "try {\n";
print " opener.document.FileManager.",
"upload_notify(\"".&quote_escape($refresh)."\", ",
"\"".&quote_escape($info)."\");\n";
print "} catch(err) { }\n";
if ($err) {
$err =~ s/\r//g;
$err =~ s/\n/\\n/g;

View File

@@ -81,6 +81,11 @@ if ($config{'extract'} &&
}
print <<EOF;
<style>
body { margin: 0px; }
</style>
<script>
function upload(dir)
{

3
file/manifest.txt Normal file
View File

@@ -0,0 +1,3 @@
Permissions: sandbox
Application-Name: Webmin File Manager
Caller-Allowable-Codebase: *

View File

@@ -112,7 +112,7 @@ if ($in{'format'}) {
print "Content-type: $type\n\n";
open(FILE, $temp);
unlink($temp);
while(read(FILE, $buf, 1024)) {
while(read(FILE, $buf, 1000*1024)) {
print $buf;
}
close(FILE);
@@ -136,13 +136,13 @@ else {
print "X-Content-Type-Options: nosniff\n";
&print_content_type($type);
if ($type =~ /^text\/html/i && !$in{'edit'}) {
while(read(FILE, $buf, 1024)) {
while(read(FILE, $buf, 1000*1024)) {
$data .= $buf;
}
print &filter_javascript($data);
}
else {
while(read(FILE, $buf, 1024)) {
while(read(FILE, $buf, 1000*1024)) {
print $buf;
}
}

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

@@ -223,8 +223,8 @@ move_ok=Verschiebe jetzt
move_title=Verschiebe Regeln
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.
redhat_escript=Das Redhat IPtables Startskript $1 wurde nicht auf Ihrem System gefunden.
rename_chain=Aktueller Name
rename_name=Neuer Name
rename_none=Nichts
@@ -240,6 +240,7 @@ save_edportfrom=Ung&#252;ltiger Bereichsstart f&#252;r Zielports
save_edportrange=Sie m&#252;ssen mindestens einen Anfang oder Ende f&#252;r den Ziel-Port-Bereich eingeben
save_edportto=Ung&#252;ltiger Bereichsende f&#252;r Zielports
save_edpto=Fehlender oder ung&#252;ltiger endente Port f&#252;r DNAT
save_egidowner=Fehlende oder ung&#252;ltige gesendete Unix-Gruppe
save_eicmp=Die ICMP-Paket-Typ Bedingung kann nur verwendet werden, wenn das Protokoll ICMP verwendet wird
save_ein=Fehlende oder ung&#252;ltige einkommende Schnittstelle
save_elimit=Fehlende oder ung&#252;ltige Paketflussrate

View File

@@ -125,7 +125,7 @@ desc_conds=If $1
desc_and=and
desc_always=Always
redhat_escript=The Redhat IPtables startup script $1 was not found on your system.
redhat_einstalled=No <tt>iptables</tt> bootup action was found, indicating that the IPtables package is not installed on your system
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.
gentoo_escript=The Gentoo IPtables startup script $1 was not found on your system.

View File

@@ -1,18 +1,18 @@
# redhat-linux-lib.pl
# Deal with redhat's /etc/sysconfig/iptables save file and startup script
# mandriva-linux-lib.pl
# Deal with Mandriva's /etc/sysconfig/iptables save file and startup script
# check_iptables()
# Returns an error message if something is wrong with iptables on this system
sub check_iptables
{
if (!-r "/etc/rc.d/init.d/iptables") {
return &text('redhat_escript', "<tt>/etc/rc.d/init.d/iptables</tt>");
if (!-r "/usr/libexec/iptables.init") {
return &text("The iptabes service", "<tt>/usr/libexec/iptables.init</tt>");
}
if (!$config{'done_check_iptables'}) {
local $out = `/etc/rc.d/init.d/iptables status 2>&1`;
local $out = `/usr/libexec/iptables.init status 2>&1`;
if ($out !~ /table:|INPUT|FORWARD|OUTPUT/) {
return &text('redhat_eoutput',
"<tt>/etc/init.d/iptables status</tt>");
"<tt>/usr/libexec/iptables.init status</tt>");
}
$config{'done_check_iptables'} = 1;
&save_module_config();
@@ -35,7 +35,7 @@ $iptables_save_file = "/etc/sysconfig/iptables";
# Writes the current iptables configuration to the save file
sub unapply_iptables
{
$out = &backquote_logged("cd / ; /etc/rc.d/init.d/iptables save 2>&1 </dev/null");
$out = &backquote_logged("cd / ; /usr/libexec/iptables.init save 2>&1 </dev/null");
$out =~ s/\033[^m]+m//g;
return $? || $out =~ /FAILED/ ? "<pre>$out</pre>" : undef;
}

View File

@@ -8,10 +8,8 @@ $init_script = "$init::config{'init_dir'}/iptables";
# Returns an error message if something is wrong with iptables on this system
sub check_iptables
{
if (!-r $init_script &&
&backquote_command("service iptables status 2>/dev/null") !~ /Loaded:\s+loaded/) {
return &text('redhat_escript', "<tt>$init_script</tt>");
}
&foreign_require("init");
&init::action_status("iptables") > 0 || return $text{'redhat_einstalled'};
return undef if ($gconfig{'os_type'} eq 'trustix-linux');
return undef if ($gconfig{'os_type'} eq 'redhat-linux' &&
$gconfig{'os_version'} > 10);

View File

@@ -38,5 +38,5 @@ print <<EOF;
</noframes>
</frameset>
EOF
&popup_footer();
&popup_footer(1);

View File

@@ -327,6 +327,13 @@ if ($main::ui_table_pos+$cols+1 > $main::ui_table_cols &&
$rv .= "</tr>\n";
$main::ui_table_pos = 0;
}
if (defined($label) &&
($value =~ /id="([^"]+)"/ || $value =~ /id='([^']+)'/ ||
$value =~ /id=([^>\s]+)/)) {
# Value contains an input with an ID
my $id = $1;
$label = "<label for=\"".&quote_escape($id)."\">$label</label>";
}
$rv .= "<tr class='ui_form_pair'>\n" if ($main::ui_table_pos%$main::ui_table_cols == 0);
$rv .= "<td class='ui_form_label' $tds->[0]><b>$label</b></td>\n" if (defined($label));
$rv .= "<td class='ui_form_value' colspan=$cols $tds->[1]>$value</td>\n";

View File

@@ -72,7 +72,7 @@ if ($in{'multi'}) {
print "</script>\n";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;'>";
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;color:#aaa;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';this.style.color='#000';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';this.style.color='#aaa';}\"");
print &ui_hr("style='wdith:100%;'")."</div>";
print &ui_hr("style='width:100%;'")."</div>";
print "<font size=+1>$text{'groups_all'}</font>\n";
print "<table width=100%>\n";
my $cnt = 0;
@@ -165,7 +165,7 @@ else {
print "</script>\n";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;'>";
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;color:#aaa;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';this.style.color='#000';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';this.style.color='#aaa';}\"");
print &ui_hr("style='wdith:100%;'")."</div>";;
print &ui_hr("style='width:100%;'")."</div>";;
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_groups_list()) {

View File

@@ -1,73 +1,72 @@
__norefs=1
global_default=Standard Boot-Optionen
global_edev=Nicht unterst&#252;tzte Festplatte/Partition $1
global_eother=Fehlende oder ung&#252;ltige Festplatte/Partition
global_epassword=Fehlendes oder ung&#252;ltige Boot-Passwort
global_epasswordfile=Fehlender Dateiname f&#252;r das Alternativ-Men&#252;
global_err=Konnte globale Optionen nicht speichern
global_etimeout=Fehlender oder ung&#252;ltiger zeitbedingter Abbruch
global_fallback=Fallback-Boot-Option
global_first=Erster auf der Liste
global_forever=Immer warten
global_header=Globale Boot-Men&#252;-Optionen
global_install=Installiere GRUB auf Festplatte/Partition
global_none=Keine
global_other=Andere
global_password=Boot-Passwort
global_password_file=Benutze Men&#252;-Datei, wenn Passwort eingegeben wird:
global_secs=Sekunden
index_installmsg=Installieren Sie den GRUB-Bootloader auf $1 um die obigen Boot-Optionen zur Bootzeit anzuzeigen. Dies wird jeden anderen Bootloader (z.B. LILO) von diesem Ger&#228;t komplett entfernen und Sie k&#246;nnen vielleicht Ihr System nicht mehr erfolgreich booten.
title_chain_file=Aus der Chainloader-Datei
title_args=Kernel-Optionen
title_err=Konnte Boot-Optionen nicht speichern
global_sel=Ausgew&#228;hlte
global_timeout=Bedingter Zeitabbruch vor dem Laden des Standard
global_title=Globale Optionen
index_add=Eine neue Boot-Option hinzuf&#252;gen
title_title=Option-Titel
title_ekernel=Fehlender oder ung&#252;ltiger Pfad zum Kernel
title_other=Andere
global_other=Andere
log_modify_title=Modifizierte Bootoptionen $1
index_efile=Die GRUB-Men&#252;-Datei $1 wurde nicht auf Ihrem System gefunden. Entweder ist GRUB nicht installiert, oder die <a href='$2'>Modulkonfiguration</a> ist falsch.
title_lock=Passwort gesichert?
log_create_title=Erstellte Bootoptionen $1
title_noverify=Nicht einh&#228;ngen und Partition &#252;berpr&#252;fen
title_none2=(kein bootender Men&#252;eintrag)
install_err=Konnte GRUB nicht installieren
title_echain=Fehlende oder ung&#252;ltige Chainloader-Datei
global_epassword=Fehlendes oder ung&#252;ltige Boot-Passwort
title_edit=Bearbeite Boot-Optionen
log_delete_title=Gel&#246;schte Bootoptionen $1
global_secs=Sekunden
global_install=Installiere GRUB auf Festplatte/Partition
title_etitle=Fehlender Options-Titel
index_epath=Die ausf&#252;hrbare GRUB-Datei $1 wurde nicht auf Ihrem System gefunden. Entweder ist GRUB nicht installiert, oder die <a href='$2'>Modulkonfiguration</a> ist falsch.
index_global=Bearbeite globale Optionen
index_globalmsg=Bearbeiten Sie die globalen Boot-Optionen, welche auf alle Boot-Men&#252;-Auswahlm&#246;glichkeiten angewandt werden und w&#228;hlen Sie das Ger&#228;t aus, auf welchem GRUB installiert werden soll.
index_install=Installiere GRUB
index_installmsg=Installieren Sie den GRUB-Bootloader auf $1 um die obigen Boot-Optionen zur Bootzeit anzuzeigen. Dies wird jeden anderen Bootloader (z.B. LILO) von diesem Ger&#228;t komplett entfernen und Sie k&#246;nnen vielleicht Ihr System nicht mehr erfolgreich booten.
index_none=Es wurden bisher keine Boot-Optionen definiert. Stellen Sie sicher, da&#223; Sie zumindest eine definieren, bevor Sie GRUB installieren.
index_return=Optionenliste
index_title=GRUB Boot-Loader
install_desc=Installiere GRUB auf $1 mit Kommando $2 und $3 ..
install_efind=Konnte die Men&#252;-Datei nicht finden
install_err=Konnte GRUB nicht installieren
install_failed=.. Installation fehlgeschlagen!
install_ok=.. Installation komplett.
install_title=Installiere GRUB
log_create_title=Erstellte Bootoptionen $1
log_delete_title=Gel&#246;schte Bootoptionen $1
log_down_title=Nach unten verschobene Bootoptionen $1
log_global=Ver&#228;nderte globale Optionen
log_install=Installiertes GRUB
log_modify_title=Modifizierte Bootoptionen $1
log_up_title=Nach oben verschobene Bootoptionen $1
title_add=Eine Boot-Option hinzuf&#252;gen
title_args=Kernel-Optionen
title_boot=Zu bootendes Betriebssystem
title_chain=Anderes Betriebssystem
title_chain_def=Vom ersten Sektor der Partition
title_chain_file=Aus der Chainloader-Datei
title_echain=Fehlende oder ung&#252;ltige Chainloader-Datei
title_edev=Nicht unterst&#252;tztes Root-Partitions-Ger&#228;t $1
title_edit=Bearbeite Boot-Optionen
title_einitrd=Fehlender Dateiname der initialen Ramdisk
title_ekernel=Fehlender oder ung&#252;ltiger Pfad zum Kernel
title_eroot=Fehlende Root-Partition
title_err=Konnte Boot-Optionen nicht speichern
title_etitle=Fehlender Options-Titel
title_header=Eigenschaften der Boot-Men&#252;-Optionen
title_initrd=Initiale Ramdisk-Datei
title_kernel=Kernel
title_kfile=Pfad zum Kernel
title_lock=Passwort gesichert?
title_makeactive=Markiere Root-Partition als aktiv?
title_modules=Extra Module
title_none=Keine (nicht bootbarer Men&#252;-Eintrag)
title_none1=Keine
title_none2=(kein bootender Men&#252;eintrag)
title_noverify=Nicht einh&#228;ngen und Partition &#252;berpr&#252;fen
title_other=Andere
global_edev=Nicht unterst&#252;tzte Festplatte/Partition $1
title_root=Boot-Image-Partition
title_kfile=Pfad zum Kernel
title_add=Eine Boot-Option hinzuf&#252;gen
install_failed=.. Installation fehlgeschlagen!
global_epasswordfile=Fehlender Dateiname f&#252;r das Alternativ-Men&#252;
install_efind=Konnte die Men&#252;-Datei nicht finden
global_first=Erster auf der Liste
log_down_title=Nach unten verschobene Bootoptionen $1
title_boot=Zu bootendes Betriebssystem
title_kernel=Kernel
global_err=Konnte globale Optionen nicht speichern
index_none=Es wurden bisher keine Boot-Optionen definiert. Stellen Sie sicher, da&#223; Sie zumindest eine definieren, bevor Sie GRUB installieren.
global_header=Globale Boot-Men&#252;-Optionen
title_initrd=Initiale Ramdisk-Datei
install_title=Installiere GRUB
install_ok=.. Installation komplett.
log_global=Ver&#228;nderte globale Optionen
global_fallback=Fallback-Boot-Option
title_chain=Anderes Betriebssystem
global_none=Keine
global_default=Standard Boot-Optionen
global_etimeout=Fehlender oder ung&#252;ltiger zeitbedingter Abbruch
__norefs=1
install_desc=Installiere GRUB auf $1 mit Kommando $2 und $3 ..
global_forever=Immer warten
global_password=Boot-Passwort
global_timeout=Bedingter Zeitabbruch vor dem Laden des Standard
global_password_file=Benutze Men&#252;-Datei, wenn Passwort eingegeben wird:
title_modules=Extra Module
index_install=Installiere GRUB
title_makeactive=Markiere Root-Partition als aktiv?
index_title=GRUB Boot-Loader
log_up_title=Nach oben verschobene Bootoptionen $1
log_install=Installiertes GRUB
index_globalmsg=Bearbeiten Sie die globalen Boot-Optionen, welche auf alle Boot-Men&#252;-Auswahlm&#246;glichkeiten angewandt werden und w&#228;hlen Sie das Ger&#228;t aus, auf welchem GRUB installiert werden soll.
title_none1=Keine
title_eroot=Fehlende Root-Partition
title_edev=Nicht unterst&#252;tztes Root-Partitions-Ger&#228;t $1
title_header=Eigenschaften der Boot-Men&#252;-Optionen
global_eother=Fehlende oder ung&#252;ltige Festplatte/Partition
title_chain_def=Vom ersten Sektor der Partition
global_title=Globale Optionen
index_add=Eine neue Boot-Option hinzuf&#252;gen
title_sel=Ausgew&#228;hlte
title_title=Option-Titel
index_return=Optionenliste

View File

@@ -1762,7 +1762,8 @@ foreach my $f (split(/\s+/, $config{'rc_conf'})) {
=head2 list_upstart_services
Returns a list of all known upstart services, each of which is a hash ref
with 'name', 'desc', 'boot', 'status' and 'pid' keys.
with 'name', 'desc', 'boot', 'status' and 'pid' keys. Also includes init.d
scripts, but if both exist then the native service will be preferred.
=cut
sub list_upstart_services
@@ -1922,7 +1923,9 @@ my $ifile = "/etc/init.d/$name";
=head2 list_systemd_services
Returns a list of all known systemd services, each of which is a hash ref
with 'name', 'desc', 'boot', 'status' and 'pid' keys.
with 'name', 'desc', 'boot', 'status' and 'pid' keys. Also includes init.d
scripts, which will be preferred over native systemd services (because sometimes
systemd automatically includes init scripts).
=cut
sub list_systemd_services
@@ -1932,7 +1935,10 @@ my $out = &backquote_command("systemctl list-units --full --all");
&error("Failed to list systemd units : $out") if ($?);
foreach my $l (split(/\r?\n/, $out)) {
my ($unit, $loaded, $active, $sub, $desc) = split(/\s+/, $l, 5);
if ($unit ne "UNIT" && $loaded eq "loaded") {
my $a = $unit;
$a =~ s/\.service$//;
my $f = &action_filename($a);
if ($unit ne "UNIT" && $loaded eq "loaded" && !-r $f) {
push(@units, $unit);
}
}
@@ -1940,7 +1946,7 @@ foreach my $l (split(/\r?\n/, $out)) {
# Also find unit files for units that may be disabled at boot and not running,
# and so don't show up in systemctl list-units
opendir(UNITS, &get_systemd_root());
push(@units, grep { !/\.wants$/ && !/^\./ && !/\@/ } readdir(UNITS));
push(@units, grep { !/\.wants$/ && !/^\./ } readdir(UNITS));
closedir(UNITS);
# Skip useless units
@@ -2001,7 +2007,6 @@ foreach my $name (keys %info) {
my @rls = &get_inittab_runlevel();
foreach my $a (&list_actions()) {
$a =~ s/\s+\d+$//;
next if ($done{$a});
my $f = &action_filename($a);
my $s = { 'name' => $a,
'legacy' => 1 };

View File

@@ -1,48 +1,47 @@
__norefs=1
apply_err=Fehler beim Anwenden der Konfiguration
delete_enone=Nichts ausgew&#228;hlt
delete_err=Fehlgeschlagen Prozesse zu l&#246;schen
edit_inittab_del=L&#246;schen
edit_inittab_details=Prozessdetails
edit_inittab_err=Sie haben keine Berechtigung, einen Prozess zu bearbeiten
edit_inittab_save=Speichern
edit_inittab_title=Prozess $1 bearbeiten
index_delete=L&#246;sche ausgew&#228;hlte Prozesse
inittab_action=Aktion
inittab_active=Aktiviert?
inittab_apply=Init-Konfiguration anwenden
inittab_applymsg=Dr&#252;cken Sie diese Schaltfl&#228;che, um die aktuelle SysV-Init-Konfiguration durch den Befehl <tt>telinit q</tt> anzuwenden. Seien Sie sich bewusst, dass jegliche Fehler in Ihrer Konfiguration das System unbrauchbar machen k&#246;nnen, wenn dieser Befehl ausgef&#252;hrt wird.
inittab_boot=Beim Booten
inittab_bootwait=Beim Booten, warten bis Beendigung
inittab_ctrlaltdel=Strg-Alt-Entf
inittab_id=ID&nbsp;
inittab_initdefault=Nach dem Systemstart
inittab_kbdrequest=Spezielle Schl&#252;sselkombination
inittab_kbrequest=Spezielle Tastenkombination
inittab_powerwait=Bei Stromausfall
save_inittab_err=Sie haben keine Berechtigung, einen Prozess zu speichern
log_rename=Init-Prozess $1 nach $2 umbenannt
inittab_new=Neuen Init-Prozess erstellen.
inittab_none=Keine
inittab_process=Prozess
edit_inittab_title=Prozess $1 bearbeiten
log_create=Init-Prozess $1 erzeugt
apply_err=Fehler beim Anwenden der Konfiguration
save_inittab_noid=Fehler, es wurde kein Name f&#252;r den Prozess eingegeben
inittab_off=Nichts tun
inittab_wait=Warten
inittab_sysinit=W&#228;hrend des Systemstarts
inittab_powerokwait=Stromversorgung ist wiederhergestellt
inittab_kbdrequest=Spezielle Schl&#252;sselkombination
delete_err=Fehlgeschlagen Prozesse zu l&#246;schen
inittab_applymsg=Dr&#252;cken Sie diese Schaltfl&#228;che, um die aktuelle SysV-Init-Konfiguration durch den Befehl <tt>telinit q</tt> anzuwenden. Seien Sie sich bewusst, dass jegliche Fehler in Ihrer Konfiguration das System unbrauchbar machen k&#246;nnen, wenn dieser Befehl ausgef&#252;hrt wird.
log_modify=Init-Prozess $1 ge&#228;ndert
new_inittab_err=Sie haben keine Berechtigung, einen neuen Prozess zu erstellen
edit_inittab_details=Prozessdetails
inittab_once=Einmal im Level
inittab_ondemand=Immer wenn in A, B, C
inittab_powerfail=Bei Stromausfall ohne Warten
inittab_powerfailnow=Stromausfall
inittab_powerokwait=Stromversorgung ist wiederhergestellt
inittab_powerwait=Bei Stromausfall
inittab_process=Prozess
inittab_respawn=Neu starten
inittab_return=Inittab-Index
inittab_runlevels=Ausf&#252;hrungs-Level
inittab_sysinit=W&#228;hrend des Systemstarts
inittab_title=SysV-Init-Konfiguration
inittab_wait=Warten
inittab_active=Aktiviert?
inittab_kbrequest=Spezielle Tastenkombination
log_apply=Konfiguration angewandt
log_create=Init-Prozess $1 erzeugt
__norefs=1
index_delete=L&#246;sche ausgew&#228;hlte Prozesse
edit_inittab_err=Sie haben keine Berechtigung, einen Prozess zu bearbeiten
inittab_id=ID&nbsp;
inittab_boot=Beim Booten
inittab_none=Keine
edit_inittab_del=L&#246;schen
inittab_return=Inittab-Index
log_delete=Init-Prozess $1 gel&#246;scht
log_deletes=Gel&#246;schte $1 Init-Prozesse
log_modify=Init-Prozess $1 ge&#228;ndert
log_rename=Init-Prozess $1 nach $2 umbenannt
new_inittab_err=Sie haben keine Berechtigung, einen neuen Prozess zu erstellen
inittab_bootwait=Beim Booten, warten bis Beendigung
inittab_ctrlaltdel=Strg-Alt-Entf
inittab_initdefault=Nach dem Systemstart
new_inittab_title=Neuer Prozess
edit_inittab_save=Speichern
delete_enone=Nichts ausgew&#228;hlt
inittab_powerfailnow=Stromausfall
inittab_runlevels=Ausf&#252;hrungs-Level
inittab_apply=Init-Konfiguration anwenden
inittab_respawn=Neu starten
inittab_powerfail=Bei Stromausfall ohne Warten
save_inittab_already=Fehler, der angegebene Prozessname ist bereits vergeben
save_inittab_err=Sie haben keine Berechtigung, einen Prozess zu speichern
save_inittab_noid=Fehler, es wurde kein Name f&#252;r den Prozess eingegeben

View File

@@ -101,14 +101,19 @@ elsif (@$rules && !$in{'reset'}) {
"before=$r->{'index'}'>".
"<img src=images/before.gif border=0></a>";
local $ls = &ui_link("edit_rule.cgi?idx=$r->{'index'}","local $le =");
local $act = $amap{int($r->{'num'})};
local $active = $r->{'active'} ? $text{'yes'} :
"<font color=#ff0000>$text{'no'}</font>";
$active = &ui_link("edit_rule.cgi?idx=$r->{'index'}", $active);
local $action = $text{'action_'.$r->{'action'}} ||
uc($r->{'action'});
$action = &ui_link("edit_rule.cgi?idx=$r->{'index'}", $action);
local $dir = $text{'dir_'.$r->{'dir'}};
$dir = &ui_link("edit_rule.cgi?idx=$r->{'index'}", $dir);
print &ui_checked_columns_row(
[ $ls.($r->{'active'} ? $text{'yes'} :
"<font color=#ff0000>$text{'no'}</font>").$le,
$ls.($text{'action_'.$r->{'action'}} ||
uc($r->{'action'})).$le,
$ls.$text{'dir_'.$r->{'dir'}}.$le,
[ $active,
$action,
$dir,
$config{'view_condition'} ?
( &describe_rule($r) ) : ( ),
$config{'view_comment'} ?
@@ -169,13 +174,19 @@ elsif (@$rules && !$in{'reset'}) {
"border=0></a>";
}
local $ls = &ui_link("edit_nat.cgi?idx=$r->{'index'}","local $le =");
local $active = $r->{'active'} ? $text{'yes'} :
"<font color=#ff0000>$text{'no'}</font>";
$active = &ui_link("edit_nat.cgi?idx=$r->{'index'}",
$active);
local $action = $text{'action_'.$r->{'action'}} ||
uc($r->{'action'});
$action = &ui_link("edit_nat.cgi?idx=$r->{'index'}",
$action);
print &ui_columns_row(
[ &ui_checkbox("d", $r->{'index'}, "", 0),
$ls.($r->{'active'} ? $text{'yes'} :
"<font color=#ff0000>$text{'no'}</font>").$le,
$ls.($text{'action_'.$r->{'action'}} ||
uc($r->{'action'})).$le,
$active,
$action,
$config{'view_condition'} ?
( &describe_from($r), &describe_to($r) ) : ( ),
$config{'view_comment'} ?

View File

@@ -109,19 +109,24 @@ elsif (@$rules && !$in{'reset'}) {
"<img src=images/before.gif border=0></a>";
}
local ($ls, $le);
local $num = $r->{'num'};
local $act = ($text{'action_'.&real_action($r->{'action'})} ||
uc($r->{'action'})).
(defined($r->{'aarg'}) ? " $r->{'aarg'}" : "");
if ($r->{'index'} <= $lastidx) {
$ls = &ui_link("edit_rule.cgi?idx=$r->{'index'}","$le =");
$num = &ui_link("edit_rule.cgi?idx=$r->{'index'}",$num);
$act = &ui_link("edit_rule.cgi?idx=$r->{'index'}",$act);
}
local $act = $amap{int($r->{'num'})};
local $a = $amap{int($r->{'num'})};
print &ui_checked_columns_row(
[ $ls.$r->{'num'}.$le,
$ls.($text{'action_'.&real_action($r->{'action'})} ||
uc($r->{'action'})).
(defined($r->{'aarg'}) ? " $r->{'aarg'}" : "").$le,
$config{'view_condition'} ? ( &describe_rule($r) ) : ( ),
$config{'view_comment'} ? ( $r->{'cmt'} || "<br>" ) : ( ),
$config{'view_counters'} ? ( $act->{'count1'}, &nice_size($act->{'count2'}) ) : ( ),
[ $num,
$act,
$config{'view_condition'} ?
( &describe_rule($r) ) : ( ),
$config{'view_comment'} ?
( $r->{'cmt'} || "<br>" ) : ( ),
$config{'view_counters'} ?
( $a->{'count1'}, &nice_size($a->{'count2'}) ) : ( ),
$mover,
$adder ],
\@widths, "d", $r->{'num'});

2
iscsi-tgtd/CHANGELOG Normal file
View File

@@ -0,0 +1,2 @@
---- Changes since 1.700 ----
First version of this module, for sharing devices using the iSCSI protocol with the TGTd server.

26
iscsi-tgtd/atboot.cgi Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/local/bin/perl
# Change if the iscsi server is started at boot or not
use strict;
use warnings;
require './iscsi-tgtd-lib.pl';
&foreign_require("init");
our (%text, %config, %in);
&ReadParse();
&error_setup($text{'atboot_err'});
&setup_tgtd_init();
my $old = &init::action_status($config{'init_name'});
if ($old != 2 && $in{'boot'}) {
# Enable at boot
$old == 1 || &error(&text('atboot_einit',
"<tt>$config{'init_name'}</tt>"));
&init::enable_at_boot($config{'init_name'});
&webmin_log("atboot");
}
elsif ($old == 2 && !$in{'boot'}) {
# Disable at boot
&init::disable_at_boot($config{'init_name'});
&webmin_log("delboot");
}
&redirect("");

4
iscsi-tgtd/config Normal file
View File

@@ -0,0 +1,4 @@
config_file=/etc/tgt/tgtd.conf
tgtd=tgtd
tgtadm=tgtadm
init_name=tgtd

View File

@@ -0,0 +1,8 @@
config_file=/etc/tgt/tgtd.conf
tgtd=tgtd
tgtadm=tgtadm
init_name=tgtd
tgtadmin=tgt-admin
start_cmd=service tgtd start
stop_cmd=service tgtd stop
restart_cmd=service tgtd restart

View File

@@ -0,0 +1,8 @@
config_file=/etc/tgt/tgtd.conf
tgtd=tgtd
tgtadm=tgtadm
init_name=tgtd
tgtadmin=tgt-admin
start_cmd=service tgtd start
stop_cmd=service tgtd stop
restart_cmd=service tgtd restart

View File

@@ -0,0 +1,8 @@
config_file=/etc/tgt/tgtd.conf
tgtd=tgtd
tgtadm=tgtadm
init_name=tgtd
tgtadmin=tgt-admin
start_cmd=service tgtd start
stop_cmd=service tgtd stop
restart_cmd=service tgtd restart

View File

@@ -0,0 +1,5 @@
config_file=/etc/tgt/targets.conf
tgtd=tgtd
tgtadm=tgtadm
tgtadmin=tgt-admin
init_name=tgtd

View File

@@ -0,0 +1,6 @@
config_file=/etc/tgt/targets.conf
tgtd=tgtd
tgtadm=tgtadm
tgtadmin=tgt-admin
init_name=tgtd
restart_cmd=/etc/init.d/tgtd reload

9
iscsi-tgtd/config.info Normal file
View File

@@ -0,0 +1,9 @@
config_file=iSCSI TGTD configuration file,0
add_file=Add new targets to,3,Primary configuration file
tgtd=Full path to tgtd command,0
tgtadm=Full path to tgtadm command,0
tgtadmin=Full path to tgt-admin command,0
init_name=Bootup script name,0
start_cmd=Commamd to start iSCSI TGTd,3,Start init script
stop_cmd=Commamd to stop iSCSI TGTd,3,Stop init script
restart_cmd=Commamd to restart iSCSI TGTd,3,Restart init script

View File

@@ -0,0 +1,9 @@
config_file=iSCSI&#45;TGTD&#45;Konfigurationsdatei,0
add_file=F&#252;ge neue Ziele zu,3,Prim&#228;re Konfigurationsdatei
tgtd=Voller Pfad zum tgtd&#45;Befehl,0
tgtadm=Voller Pfad zum tgtadm&#45;Befehl,0
tgtadmin=Voller Pfad zum tgt&#45;admin&#45;Befehl,0
init_name=Boot&#45;Skript&#45;Name,0
start_cmd=Befehl zum Starten von iSCSI TGTd,3,Start von Init-Skript
stop_cmd=Befehl zum Stoppen von iSCSI TGTd,3,Stoppen von Init-Skript
restart_cmd=Befehl zum Neustarten von iSCSI TGTd,3,Init-Skript neu starten

39
iscsi-tgtd/delete_targets.cgi Executable file
View File

@@ -0,0 +1,39 @@
#!/usr/local/bin/perl
# Delete multiple targets
use strict;
use warnings;
require './iscsi-tgtd-lib.pl';
our (%text, %in, %config);
&ReadParse();
&error_setup($text{'dtargets_err'});
&lock_file($config{'config_file'});
my $conf = &get_tgtd_config();
# Find the targets
my @d = split(/\0/, $in{'d'});
my @deltargets;
my @locks;
foreach my $d (@d) {
my ($target) = grep { $_->{'value'} eq $d } &find($conf, "target");
push(@deltargets, $target) if ($target);
push(@locks, $target->{'file'});
}
@deltargets || &error($text{'dtargets_enone'});
@locks = &unique(@locks);
# Delete them, in reverse order
foreach my $l (@locks) {
&lock_file($l);
}
foreach my $target (reverse(@deltargets)) {
&save_directive($conf, $target, undef);
&flush_file_lines($target->{'file'});
&delete_if_empty($target->{'file'});
}
foreach my $l (@locks) {
&unlock_file($l);
}
&webmin_log('delete', 'targets', scalar(@deltargets));
&redirect("");

35
iscsi-tgtd/edit_manual.cgi Executable file
View File

@@ -0,0 +1,35 @@
#!/usr/local/bin/perl
# Show a form to edit a config file
use strict;
use warnings;
require './iscsi-tgtd-lib.pl';
our (%text, %config, %in);
&ReadParse();
my $file = $in{'file'} || $config{'config_file'};
&ui_print_header(undef, $text{'manual_title'}, "");
# Config file selector
my $conf = &get_tgtd_config();
my @files = &unique($config{'config_file'},
(map { $_->{'file'} } @$conf));
print &ui_form_start("edit_manual.cgi");
print "<b>$text{'manual_file'}</b> ",
&ui_select("file", $file, \@files),"\n",
&ui_submit($text{'manual_ok'}),"<br>\n";
print &ui_form_end();
print &ui_hr();
# File editor
print "<b>",&text('manual_desc', "<tt>$file</tt>"),"</b><p>\n";
print &ui_form_start("save_manual.cgi", "form-data");
print &ui_hidden("file", $file);
print &ui_table_start(undef, undef, 2);
print &ui_table_row(undef,
&ui_textarea("data", &read_file_contents($file),
20, 80));
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
&ui_print_footer("", $text{'index_return'});

192
iscsi-tgtd/edit_target.cgi Executable file
View File

@@ -0,0 +1,192 @@
#!/usr/local/bin/perl
# Show a form to edit or create a target
use strict;
use warnings;
require './iscsi-tgtd-lib.pl';
our (%text, %in);
&ReadParse();
my $conf = &get_tgtd_config();
# Get the target and show page header
my $target;
if ($in{'new'}) {
&ui_print_header(undef, $text{'target_title1'}, "");
$target = { 'members' => [ ] };
}
else {
&ui_print_header(undef, $text{'target_title2'}, "");
($target) = grep { $_->{'value'} eq $in{'name'} }
&find($conf, "target");
$target || &error($text{'target_egone'});
}
print &ui_form_start("save_target.cgi", "post");
print &ui_hidden("new", $in{'new'});
print &ui_hidden("oldname", $in{'name'});
print &ui_table_start($text{'target_header'}, undef, 4);
# Target name
my ($host, $tname);
if ($in{'new'}) {
$host = &find_host_name($conf) || &generate_host_name();
$tname = "";
}
else {
($host, $tname) = split(/:/, $target->{'value'});
}
print &ui_table_row($text{'target_name'},
"<tt>".$host.":</tt>".&ui_textbox("name", $tname, 30));
# Logical units it contains
my @luns = (&find($target->{'members'}, "backing-store"),
&find($target->{'members'}, "direct-store"));
@luns = sort { $a->{'file'} <=> $b->{'file'} } @luns;
push(@luns, { 'name' => 'backing-store',
'value' => '',
'values' => [] });
for(my $i=0; $i<@luns; $i++) {
my $path = $luns[$i]->{'values'}->[0] || "";
my @opts;
# Start with option for no device
my $none_found = 0;
if ($i > 0) {
push(@opts, [ 'none', $text{'target_none'} ]);
$none_found = 1 if (!$path);
}
# Add regular partitions
my $part_found = 0;
my $sel = &fdisk::partition_select("part".$i, $path, 0,
\$part_found);
push(@opts, [ 'part', $text{'target_part'}, $sel ]);
# Then add RAID devices
my $rconf = &raid::get_raidtab();
my @ropts;
my $raid_found = 0;
foreach my $c (@$rconf) {
if ($c->{'active'}) {
push(@ropts, [ $c->{'value'},
&text('target_md',
substr($c->{'value'}, -1)) ]);
$raid_found = 1 if ($path eq $c->{'value'});
}
}
if (@ropts) {
push(@opts, [ 'raid', $text{'target_raid'},
&ui_select("raid".$i, $path, \@ropts) ]);
}
# Then add LVM logical volumes
my @vgs = sort { $a->{'name'} cmp $b->{'name'} }
&lvm::list_volume_groups();
my @lvs;
foreach my $v (@vgs) {
push(@lvs, sort { $a->{'name'} cmp $b->{'name'} }
&lvm::list_logical_volumes($v->{'name'}));
}
my @lopts;
my $lvm_found = 0;
foreach my $l (@lvs) {
push(@lopts, [ $l->{'device'},
&text('target_lv', $l->{'vg'}, $l->{'name'}) ]);
$lvm_found = 1 if (&same_file($path, $l->{'device'}));
}
if (@lopts) {
push(@opts, [ 'lvm', $text{'target_lvm'},
&ui_select("lvm".$i, $path, \@lopts) ]);
}
# Then add other file mode
my $mode = $part_found ? 'part' :
$raid_found ? 'raid' :
$none_found ? 'none' :
$lvm_found ? 'lvm' : 'other';
push(@opts, [ 'other', $text{'target_other'},
&ui_textbox("other".$i,
$mode eq 'other' ? $path : "", 50).
" ".&file_chooser_button("other") ]);
# Options for this lun
my @grid;
my $cache = &find_value($luns[$i], "write-cache");
push(@grid, "<b>$text{'target_type'}</b>",
&ui_select("type".$i, $luns[$i]->{'name'},
[ [ 'backing-store', $text{'target_backing'} ],
[ 'direct-store', $text{'target_direct'} ] ]));
push(@grid, "<b>$text{'target_cache'}</b>",
&ui_radio("cache".$i, $cache,
[ [ "on", $text{'yes'} ],
[ "off", $text{'no'} ],
[ "", $text{'default'} ] ]));
print &ui_table_row(&text('target_lun', $i+1),
&ui_radio_table("mode".$i, $mode, \@opts)."\n".
&ui_grid_table(\@grid, 2), 3);
}
print &ui_table_hr();
# Incoming user(s)
my @iusers = &find_value($target, "incominguser");
my $utable = &ui_columns_start([
$text{'target_uname'},
$text{'target_upass'},
]);
my $i = 0;
foreach my $u (@iusers, "", "") {
my ($uname, $upass) = split(/\s+/, $u);
$utable .= &ui_columns_row([
&ui_textbox("uname_$i", $uname, 30),
&ui_textbox("upass_$i", $upass, 20),
]);
$i++;
}
$utable .= &ui_columns_end();
print &ui_table_row($text{'target_iuser'},
&ui_radio("iuser_def", @iusers ? 0 : 1,
[ [ 1, $text{'target_iuserall'} ],
[ 0, $text{'target_iuserbelow'} ] ])."<br>\n".
$utable, 3);
# Outgoing user
my $u = &find_value($target, "outgoinguser");
my ($uname, $upass) = $u ? split(/\s+/, $u) : ( );
print &ui_table_row($text{'target_ouser'},
&ui_radio("ouser_def", $u ? 0 : 1,
[ [ 1, $text{'target_ousernone'}."<br>" ],
[ 0, $text{'target_ousername'} ] ])." ".
&ui_textbox("ouser", $uname, 20)." ".
$text{'target_ouserpass'}." ".
&ui_textbox("opass", $upass, 20), 3);
print &ui_table_hr();
# Allowed initiator address
my @a = &find_value($target, "initiator-address");
print &ui_table_row($text{'target_iaddress'},
&ui_radio("iaddress_def", @a ? 0 : 1,
[ [ 1, $text{'target_iall'} ],
[ 0, $text{'target_ibelow'} ] ])."<br>\n".
&ui_textarea("iaddress", join("\n", @a), 3, 20));
# Allowed initiator name
my @n = &find_value($target, "initiator-name");
print &ui_table_row($text{'target_iname'},
&ui_radio("iname_def", @n ? 0 : 1,
[ [ 1, $text{'target_iall'} ],
[ 0, $text{'target_ibelow'} ] ])."<br>\n".
&ui_textarea("iname", join("\n", @n), 3, 20));
print &ui_table_end();
if ($in{'new'}) {
print &ui_form_end([ [ undef, $text{'create'} ] ]);
}
else {
print &ui_form_end([ [ undef, $text{'save'} ],
[ 'delete', $text{'delete'} ] ]);
}
&ui_print_footer("", $text{'index_return'});

BIN
iscsi-tgtd/images/icon.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

95
iscsi-tgtd/index.cgi Executable file
View File

@@ -0,0 +1,95 @@
#!/usr/local/bin/perl
# Display a list of iSCSI targets
use strict;
use warnings;
require './iscsi-tgtd-lib.pl';
our (%text, %config, $module_name);
&ui_print_header(undef, $text{'index_title'}, "", "intro", 1, 1, 0,
&help_search_link("tgtadm", "man", "doc", "google"));
my $err = &check_config();
if ($err) {
&ui_print_endpage(
$err." ".&text('index_clink', "../config.cgi?$module_name"));
}
# Find and show targets
my $conf = &get_tgtd_config();
my @targets = grep { $_->{'name'} eq 'target' } @$conf;
my @crlinks = ( &ui_link("edit_target.cgi?new=1",$text{'index_add'}) );
if (@targets) {
unshift(@crlinks, &select_all_link("d"), &select_invert_link("d"));
print &ui_form_start("delete_targets.cgi");
print &ui_links_row(\@crlinks);
my @tds = ( "width=5" );
print &ui_columns_start([
"", $text{'index_target'}, $text{'index_lun'},
$text{'index_size'}, $text{'index_users'},
], 100, 0, \@tds);
foreach my $t (@targets) {
my @luns;
my $size = 0;
foreach my $l (&find($t, 'backing-store'),
&find($t, 'direct-store')) {
my $v = $l->{'values'}->[0];
push(@luns, &mount::device_name($v));
$size += &get_device_size($v);
}
my @users = map { $_->{'values'}->[0] }
&find($t, "incominguser");
if (@users > 5) {
@users = (@users[0 .. 4], "...");
}
print &ui_checked_columns_row([
"<a href='edit_target.cgi?name=".
&urlize($t->{'value'})."'>".$t->{'value'}."</a>",
join(" , ", @luns) || "<i>$text{'index_noluns'}</i>",
$size ? &nice_size($size) : "",
join(" , ", @users) || "<i>$text{'index_nousers'}</i>"
],
\@tds, "d", $t->{'value'});
}
print &ui_columns_end();
print &ui_links_row(\@crlinks);
print &ui_form_end([ [ undef, $text{'index_delete'} ] ]);
}
else {
print "<b>$text{'index_none'}</b><p>\n";
print &ui_links_row(\@crlinks);
}
print &ui_hr();
print &ui_buttons_start();
# Manual edit button
print &ui_buttons_row("edit_manual.cgi", $text{'index_manual'},
$text{'index_manualdesc'});
# Show start/stop/restart buttons
my $pid = &is_tgtd_running();
if ($pid) {
print &ui_buttons_row("restart.cgi", $text{'index_restart'},
$text{'index_restartdesc'});
print &ui_buttons_row("stop.cgi", $text{'index_stop'},
$text{'index_stopdesc'});
}
else {
print &ui_buttons_row("start.cgi", $text{'index_start'},
$text{'index_startdesc'});
}
# Show start at boot button
&foreign_require("init");
my $starting = &init::action_status($config{'init_name'});
print &ui_buttons_row("atboot.cgi",
$text{'index_atboot'},
$text{'index_atbootdesc'},
undef,
&ui_radio("boot", $starting == 2 ? 1 : 0,
[ [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ]));
print &ui_buttons_end();
&ui_print_footer("/", $text{'index'});

15
iscsi-tgtd/install_check.pl Executable file
View File

@@ -0,0 +1,15 @@
# install_check.pl
do 'iscsi-tgtd-lib.pl';
# is_installed(mode)
# For mode 1, returns 2 if the server is installed and configured for use by
# Webmin, 1 if installed but not configured, or 0 otherwise.
# For mode 0, returns 1 if installed, 0 if not
sub is_installed
{
my ($mode) = @_;
my $err = &check_config();
return $err ? 0 : $mode + 1;
}

View File

@@ -0,0 +1,484 @@
# iscsi-tgtd-lib.pl
# Common functions for managing and configuring the iSCSI TGTD server
BEGIN { push(@INC, ".."); };
use strict;
use warnings;
use WebminCore;
&init_config();
&foreign_require("raid");
&foreign_require("fdisk");
&foreign_require("lvm");
&foreign_require("mount");
our (%text, %config, %gconfig, $module_config_file);
our ($list_disks_partitions_cache, $get_raidtab_cache,
$list_logical_volumes_cache, $get_tgtd_config_cache);
# check_config()
# Returns undef if the iSCSI server is installed, or an error message if
# missing
sub check_config
{
return $text{'check_econfigset'} if (!$config{'config_file'});
return &text('check_econfig', "<tt>$config{'config_file'}</tt>")
if (!-r $config{'config_file'});
return &text('check_etgtadm', "<tt>$config{'tgtadm'}</tt>")
if (!&has_command($config{'tgtadm'}));
#&foreign_require("init");
#return &text('check_einit', "<tt>$config{'init_name'}</tt>")
# if (&init::action_status($config{'init_name'}) == 0);
return undef;
}
# get_tgtd_config()
# Parses the iSCSI server config file in an array ref of objects
sub get_tgtd_config
{
if (!$get_tgtd_config_cache) {
$get_tgtd_config_cache = &read_tgtd_config_file($config{'config_file'});
}
return $get_tgtd_config_cache;
}
# read_tgtd_config_file(file)
# Parses a single config file into an array ref
sub read_tgtd_config_file
{
my ($file) = @_;
my @rv;
my $lnum = 0;
my $parent;
my $lref = &read_file_lines($file, 1);
my @pstack;
foreach my $ol (@$lref) {
my $l = $ol;
$l =~ s/#.*$//;
if ($l =~ /^\s*include\s(\S+)/) {
# Include some other files
my $ifile = $1;
foreach my $iglob (glob($ifile)) {
next if (!-r $iglob);
my $inc = &read_tgtd_config_file($iglob);
push(@rv, @$inc);
}
}
elsif ($l =~ /^\s*<(\S+)\s+(.*)>/) {
# Start of a block
my $dir = { 'name' => $1,
'value' => $2,
'values' => [ split(/\s+/, $2) ],
'type' => 1,
'members' => [ ],
'file' => $file,
'line' => $lnum,
'eline' => $lnum };
if ($parent) {
push(@{$parent->{'members'}}, $dir);
}
else {
push(@rv, $dir);
}
push(@pstack, $parent);
$parent = $dir;
}
elsif ($l =~ /^\s*<\/(\S+)>/) {
# End of a block
$parent->{'eline'} = $lnum;
$parent = pop(@pstack);
}
elsif ($l =~ /^\s*(\S+)\s+(\S.*)/) {
# Some directive in a block
my $dir = { 'name' => $1,
'value' => $2,
'values' => [ split(/\s+/, $2) ],
'type' => 0,
'file' => $file,
'line' => $lnum,
'eline' => $lnum };
if ($parent) {
push(@{$parent->{'members'}}, $dir);
}
else {
push(@rv, $dir);
}
}
$lnum++;
}
return \@rv;
}
# save_directive(&config, [&old|old-name], [&new], [&parent], [add-file-file])
# Replaces, creates or deletes some directive
sub save_directive
{
my ($conf, $olddir, $newdir, $parent, $addfile) = @_;
my $file;
if ($olddir && !ref($olddir)) {
# Lookup the old directive by name
$olddir = &find($parent ? $parent->{'members'} : $conf, $olddir);
}
if ($olddir) {
# Modifying old directive's file
$file = $olddir->{'file'};
}
elsif ($addfile) {
# Adding to a specific file
$file = $addfile;
}
elsif ($parent) {
# Adding to parent's file
$file = $parent->{'file'};
}
else {
# Adding to the default config file
$file = $config{'config_file'};
}
my $lref = $file ? &read_file_lines($file) : undef;
my @lines = $newdir ? &directive_lines($newdir) : ( );
my $oldlen = $olddir ? $olddir->{'eline'} - $olddir->{'line'} + 1 : undef;
my $oldidx = $olddir && $parent ? &indexof($olddir, @{$parent->{'members'}}) :
$olddir ? &indexof($olddir, @$conf) : undef;
my ($renumline, $renumoffset);
if ($olddir && $newdir) {
# Replace some directive
if ($lref) {
splice(@$lref, $olddir->{'line'}, $oldlen, @lines);
$newdir->{'file'} = $olddir->{'file'};
$newdir->{'line'} = $olddir->{'line'};
$newdir->{'eline'} = $newdir->{'line'} + scalar(@lines) - 1;
if ($parent) {
$parent->{'eline'} += scalar(@lines) - $oldlen;
}
}
if ($parent) {
$parent->{'members'}->[$oldidx] = $newdir;
}
else {
$conf->[$oldidx] = $newdir;
}
$renumline = $newdir->{'eline'};
$renumoffset = scalar(@lines) - $oldlen;
}
elsif ($olddir) {
# Remove some directive
if ($lref) {
splice(@$lref, $olddir->{'line'}, $oldlen);
}
if ($parent) {
# From inside parent
splice(@{$parent->{'members'}}, $oldidx, 1);
if ($lref) {
$parent->{'eline'} -= $oldlen;
}
}
else {
# From top-level
splice(@$conf, $oldidx, 1);
}
$renumline = $olddir->{'line'};
$renumoffset = $oldlen;
}
elsif ($newdir) {
# Add some directive
if ($lref) {
$newdir->{'file'} = $file;
}
if ($parent) {
# Inside parent
if ($lref) {
$newdir->{'line'} = $parent->{'eline'};
$newdir->{'eline'} = $newdir->{'line'} +
scalar(@lines) - 1;
$parent->{'eline'} += scalar(@lines);
splice(@$lref, $newdir->{'line'}, 0, @lines);
}
$parent->{'members'} ||= [ ];
$parent->{'type'} ||= 1;
push(@{$parent->{'members'}}, $newdir);
}
else {
# At end of file
if ($lref) {
$newdir->{'line'} = scalar(@lines);
$newdir->{'eline'} = $newdir->{'line'} +
scalar(@lines) - 1;
push(@$lref, @lines);
}
push(@$conf, $newdir);
}
$renumline = $newdir->{'eline'};
$renumoffset = scalar(@lines);
}
# Apply any renumbering to the config (recursively)
if ($renumoffset && $lref) {
&recursive_renumber($conf, $file, $renumline, $renumoffset,
[ $newdir, $parent ? ( $parent ) : ( ) ]);
}
}
# save_multiple_directives(&config, name, &directives, &parent)
# Update all existing directives with some name
sub save_multiple_directives
{
my ($conf, $name, $newdirs, $parent) = @_;
my $olddirs = [ &find($parent ? $parent->{'members'} : $conf, $name) ];
for(my $i=0; $i<@$olddirs || $i<@$newdirs; $i++) {
&save_directive($conf,
$i<@$olddirs ? $olddirs->[$i] : undef,
$i<@$newdirs ? $newdirs->[$i] : undef,
$parent);
}
}
# delete_if_empty(file)
# Remove some file if after modification it contains no non-whitespace lines
sub delete_if_empty
{
my ($file) = @_;
my $lref = &read_file_lines($file, 1);
foreach my $l (@$lref) {
return 0 if ($l =~ /\S/);
}
&unlink_file($file);
&unflush_file_lines($file);
return 1;
}
# recursive_renumber(&directives, file, after-line, offset, &ignore-list)
sub recursive_renumber
{
my ($conf, $file, $renumline, $renumoffset, $ignore) = @_;
foreach my $c (@$conf) {
if ($c->{'file'} eq $file && &indexof($c, @$ignore) < 0) {
$c->{'line'} += $renumoffset if ($c->{'line'} > $renumline);
$c->{'eline'} += $renumoffset if ($c->{'eline'} > $renumline);
}
if ($c->{'type'}) {
&recursive_renumber($c->{'members'}, $file, $renumline,
$renumoffset, $ignore);
}
}
}
# directive_lines(&dir, [indent])
# Returns the lines of text for some directive
sub directive_lines
{
my ($dir, $indent) = @_;
$indent ||= 0;
my $istr = " " x $indent;
my @rv;
if ($dir->{'type'}) {
# Has sub-directives
push(@rv, $istr."<".$dir->{'name'}.
($dir->{'value'} ? " ".$dir->{'value'} : "").">");
foreach my $s (@{$dir->{'members'}}) {
push(@rv, &directive_lines($s, $indent+1));
}
push(@rv, $istr."</".$dir->{'name'}.">");
}
else {
# Just a name/value
push(@rv, $istr.$dir->{'name'}.
($dir->{'value'} ? " ".$dir->{'value'} : ""));
}
return @rv;
}
# find(&config|&object, name)
# Returns all config objects with the given name
sub find
{
my ($conf, $name) = @_;
$conf = $conf->{'members'} if (ref($conf) eq 'HASH');
my @rv = grep { lc($_->{'name'}) eq lc($name) } @$conf;
return wantarray ? @rv : $rv[0];
}
# find_value(&config|&object, name)
# Returns config values with the given name
sub find_value
{
my ($conf, $name) = @_;
$conf = $conf->{'members'} if (ref($conf) eq 'HASH');
my @rv = map { $_->{'value'} } &find($conf, $name);
return wantarray ? @rv : $rv[0];
}
# is_tgtd_running()
# Returns the PID if the server process is running, or 0 if not
sub is_tgtd_running
{
my $pid = &find_byname("tgtd");
return $pid;
}
# setup_tgtd_init()
# If no init script exists, create one
sub setup_tgtd_init
{
&foreign_require("init");
return 0 if (&init::action_status($config{'init_name'}));
&init::enable_at_boot($config{'init_name'},
"Start TGTd iSCSI server",
&has_command($config{'tgtd'}).
" && sleep 2 && ".
&has_command($config{'tgtadmin'})." -e",
"killall -9 tgtd",
undef,
{ 'fork' => 1 },
);
}
# start_iscsi_tgtd()
# Run the init script to start the server
sub start_iscsi_tgtd
{
if ($config{'start_cmd'}) {
my $out = &backquote_command("$config{'start_cmd'} 2>&1 </dev/null");
return $? ? $out : undef;
}
else {
&setup_tgtd_init();
&foreign_require("init");
my ($ok, $out) = &init::start_action($config{'init_name'});
return $ok ? undef : $out;
}
}
# stop_iscsi_tgtd()
# Run the init script to stop the server
sub stop_iscsi_tgtd
{
if ($config{'stop_cmd'}) {
my $out = &backquote_command("$config{'stop_cmd'} 2>&1 </dev/null");
return $? ? $out : undef;
}
else {
&setup_tgtd_init();
&foreign_require("init");
my ($ok, $out) = &init::stop_action($config{'init_name'});
return $ok ? undef : $out;
}
}
# restart_iscsi_tgtd()
# Sends a HUP signal to re-read the configuration
sub restart_iscsi_tgtd
{
if ($config{'restart_cmd'}) {
my $out = &backquote_command("$config{'restart_cmd'} 2>&1 </dev/null");
return $? ? $out : undef;
}
else {
&stop_iscsi_tgtd();
# Wait for process to exit
for(my $i=0; $i<20; $i++) {
last if (!&is_tgtd_running());
sleep(1);
}
return &start_iscsi_tgtd();
}
}
# get_device_size(device, "part"|"raid"|"lvm"|"other")
# Returns the size in bytes of some device, which can be a partition, RAID
# device, logical volume or regular file.
sub get_device_size
{
my ($dev, $type) = @_;
if (!$type) {
$type = $dev =~ /^\/dev\/md\d+$/ ? "raid" :
$dev =~ /^\/dev\/([^\/]+)\/([^\/]+)$/ ? "lvm" :
$dev =~ /^\/dev\/(s|h|v|xv)d[a-z]+\d*$/ ? "part" : "other";
}
if ($type eq "part") {
# A partition or whole disk
foreach my $d (&list_disks_partitions_cached()) {
if ($d->{'device'} eq $dev) {
# Whole disk
return $d->{'cylinders'} * $d->{'cylsize'};
}
foreach my $p (@{$d->{'parts'}}) {
if ($p->{'device'} eq $dev) {
return ($p->{'end'} - $p->{'start'} + 1) *
$d->{'cylsize'};
}
}
}
return undef;
}
elsif ($type eq "raid") {
# A RAID device
my $conf = &get_raidtab_cached();
foreach my $c (@$conf) {
if ($c->{'value'} eq $dev) {
return $c->{'size'} * 1024;
}
}
return undef;
}
elsif ($type eq "lvm") {
# LVM volume group
foreach my $l (&list_logical_volumes_cached()) {
if ($l->{'device'} eq $dev) {
return $l->{'size'} * 1024;
}
}
}
else {
# A regular file
my @st = stat($dev);
return @st ? $st[7] : undef;
}
}
sub list_disks_partitions_cached
{
$list_disks_partitions_cache ||= [ &fdisk::list_disks_partitions() ];
return @$list_disks_partitions_cache;
}
sub get_raidtab_cached
{
$get_raidtab_cache ||= &raid::get_raidtab();
return $get_raidtab_cache;
}
sub list_logical_volumes_cached
{
if (!$list_logical_volumes_cache) {
$list_logical_volumes_cache = [ ];
foreach my $v (&lvm::list_volume_groups()) {
push(@$list_logical_volumes_cache,
&lvm::list_logical_volumes($v->{'name'}));
}
}
return @$list_logical_volumes_cache;
}
# find_host_name(&config)
# Returns the first host name part of the first target
sub find_host_name
{
my ($conf) = @_;
my %hcount;
foreach my $t (&find_value($conf, "target")) {
my ($host) = split(/:/, $t);
$hcount{$host}++;
}
my @hosts = sort { $hcount{$b} <=> $hcount{$a} } (keys %hcount);
return $hosts[0];
}
# generate_host_name()
# Returns the first part of a target name, in the standard format
sub generate_host_name
{
my @tm = localtime(time());
return sprintf("iqn.%.4d-%.2d.%s", $tm[5]+1900, $tm[4]+1,
join(".", reverse(split(/\./, &get_system_hostname()))));
}
1;

98
iscsi-tgtd/lang/de Normal file
View File

@@ -0,0 +1,98 @@
atboot_einit=Init-Skript $1 existiert nicht
atboot_err=Fehlgeschlagen beim booten zu aktivieren
check_econfig=Die iSCSI-TGTd-Konfigurationsdatei $1 wurde nicht auf Ihrem System gefunden.
check_econfigset=Keine iSCSI TGTd-Konfigurationsdatei!
check_einit=Systemstart Aktion $1 existiert nicht
check_etgtadm=Der iSCSI-TGTd-Verwaltungsbefehl $1 wurde nicht auf Ihrem System gefunden.
dtargets_enone=Nichts ausgew&#228;hlt!
dtargets_err=Fehlgeschlagen Ziele zu l&#246;schen
index_add=F&#252;ge ein neues iSCSI Ziel hinzu.
index_atboot=Starte beim booten?
index_atbootdesc=&#196;ndere diese Option, um zu kontrollieren, ob die iSCSI-Ziel beim Booten gestartet werden soll oder nicht. Wenn es nicht gerade beim booten gestartet wurde und "Ja" gew&#228;hlt wird, wird ein neues Init-Skript erstellt.
index_clink=Vielleicht ist es nicht installiert ist, oder Ihr <a href='$1'>Modulkonfiguration</a> ist falsch.
index_delete=L&#246;sche Ausgew&#228;hlte Ziele
index_lun=Disk-Ger&#228;te
index_manual=Editiere Konfigurationsdateien
index_manualdesc=Manuell Bearbeiten eines der iSCSI-Target-Konfigurationsdateien, um &#196;nderungen vorzunehmen, die von Webmin nicht unterst&#252;tzt werden.
index_noluns=Kein
index_none=Keine iSCSI Ziele zum exportieren wurden bisher definiert.
index_nousers=Jeder
index_restart=Starte iSCSI TGTd neu
index_restartdesc=Klicke auf diese Schaltfl&#228;che, um die aktuelle Konfiguration durch einen Neustart des iSCSI Ziel anzuwenden.
index_return=Liste an Zielen
index_size=Gesamtgr&#246;&#223;e
index_start=Start iSCSI TGTd
index_startdesc=Klicken auf diese Schaltfl&#228;che, um das iSCSI Ziel zu starten, so dass gemeinsam genutzte Ger&#228;te den Clients zug&#228;nglich sind.
index_stop=Stoppe iSCSI TGTd
index_stopdesc=Klicke auf diese Schaltfl&#228;che, um das laufende iSCSI Ziel zu stoppen. Alle freigegebenen Ger&#228;te werden den Clients nicht l&#228;nger zug&#228;nglich sein.
index_target=Ziel Name
index_title=iSCSI TGTd
index_users=Erlaubte Benutzer
log_atboot=iSCSI Server beim booten aktiviert
log_create_target=Ziel $1 erstellt
log_delboot=iSCSI Server beim booten deaktiviert
log_delete_target=Ziel $1 gel&#246;scht
log_delete_targets=$1 Ziele gel&#246;scht
log_manual=Manuell editierte Konfigurationsdatei
log_modify_target=Ziel $1 modifiziert
log_restart=iSCSI Server neu gestartet
log_start=iSCSI Server gestartet
log_stop=iSCSI Server gestoppt
manual_desc=Verwende das Textfeld unten, um die iSCSI-Server-Konfigurationsdatei $1 zu bearbeiten. Sei vorsichtig, da keine Validierung Ihrer Eingaben durchgef&#252;hrt werden!
manual_edata=Kein Inhalt eingegeben!
manual_efile=Ung&#252;ltige Konfigurationsdatei!
manual_err=Fehlgeschlagen Konfigurationsdatei zu speichern
manual_file=W&#228;hle Datei zum editieren:
manual_ok=&#214;ffne
manual_title=Editiere Konfigurationsdatei
restart_err=Fehlgeschlagen iSCSI TGTd neu zu starten
start_err=Fehlgeschlagen iSCSI TGTd zu starten
stop_err=Fehlgeschlagen iSCSI TGTd zu stoppen
target_backing=Hintergrundspeicher
target_blockio=Block basiert (kein Caching, nur f&#252;r Ger&#228;te)
target_cache=Schreibe Cache auf Ger&#228;t?
target_direct=Direkter Ger&#228;te-Zugriff
target_eaddr=Ung&#252;ltig erlaubte IP-Adresse
target_eaname=Ung&#252;ltig erlaubter Initiator-Name
target_egone=Ausgew&#228;hltes Ziel existiert nicht l&#228;nger!
target_eipass=Ung&#252;ltiges Passwort f&#252;r Benutzer $1 - keine Leerzeichen erlaubt
target_eiuser=Ung&#252;ltiger Name f&#252;r Benutzer $1 - keine Leerzeichen erlaubt
target_eiusernone=Kein Client Benutzernamen eingegeben
target_eopass=Ung&#252;ltiges oder fehlendes Passwort f&#252;r Authentifizierung an Clients - keine Leerzeichen erlaubt
target_eother=Fehlende oder ung&#252;ltige Datei f&#252;r Ger&#228;t $1
target_eouser=Fehlender oder ung&#252;ltiger Benutzername f&#252;r die Authentifizierung an Clients - keine Leerzeichen sind erlaubt
target_err=Fehlgeschlagen Ziel zu speichern
target_esectors=Fehlende oder nicht-numerische Anzahl an Sektoren f&#252;r Ger&#228;t $1
target_fileio=Datei basiert
target_header=iSCSI gemeinsamen Ger&#228;teoptionen
target_iaddress=Erlaube Verbindungen von Adressen
target_iall=Alle
target_ibelow=Unten eingegeben ..
target_iname=Erlaube Verbindungen von Initiatoren
target_iomode=IO Modus
target_iuser=Authentifizierung von Clients
target_iuserall=Keine Authentifizierung erforderlich
target_iuserbelow=Erlaube Logins unten..
target_lun=Ger&#228;t zu teilen $1
target_lv=LVM VG $1, LV $2
target_lvm=LVM logisches Volume
target_md=RAID-Ger&#228;t $1
target_name=Ziel Name
target_none=Nichts
target_null=Tempor&#228;re RAM-Disk von der Gr&#246;&#223;e
target_other=Andere Datei oder Ger&#228;t
target_ouser=Authentifizierung f&#252;r Clients
target_ousername=Login mit Benutzername
target_ousernone=Nicht authentifizieren
target_ouserpass=und Passwort
target_part=Lokale Disk-Partition
target_raid=RAID-Ger&#228;t
target_ro=Nur lesen
target_sectors=Sektoren
target_title1=Erstelle iSCSI Ziel
target_title2=Editiere iSCSI Ziel
target_type=Speicher-Typ
target_uname=Benutzername
target_upass=Passwort
target_wb=Write-back caching
target_wt=Write-through caching

105
iscsi-tgtd/lang/en Normal file
View File

@@ -0,0 +1,105 @@
check_econfigset=No iSCSI TGTd configuration file set!
check_econfig=The iSCSI TGTd configuration file $1 was not found on your system.
check_etgtadm=The iSCSI TGTd administration command $1 was not found on your system.
check_einit=Bootup action $1 does not exist
index_title=iSCSI TGTd
index_clink=Maybe it is not installed, or your <a href='$1'>module configuration</a> is incorrect.
index_stop=Stop iSCSI TGTd
index_stopdesc=Click this button to stop the running iSCSI target. All shared devices will no longer be accessible to clients.
index_start=Start iSCSI TGTd
index_startdesc=Click this button to start the iSCSI target, so that shared devices are accessible to clients.
index_restart=Restart iSCSI TGTd
index_restartdesc=Click this button to apply the current configuration by restarting the iSCSI target.
index_atboot=Start at boot?
index_atbootdesc=Change this option to control whether the iSCSI target is started at boot time or not. If it is not currently started at boot and Yes is chosen, a new init script will be created.
index_manual=Edit Configuration Files
index_manualdesc=Manually edit any of the iSCSI target configuration files, to make changes not supported by Webmin.
index_return=list of targets
index_none=No iSCSI targets to export have been defined yet.
index_add=Add a new iSCSI target.
index_target=Target name
index_delete=Delete Selected Targets
index_lun=Disk devices
index_users=Allowed users
index_size=Total size
index_noluns=None
index_nousers=Any
dtargets_err=Failed to delete targets
dtargets_enone=None selected!
target_title1=Create iSCSI Target
target_title2=Edit iSCSI Target
target_header=iSCSI shared device options
target_part=Local disk partition
target_raid=RAID device
target_md=RAID device $1
target_lvm=LVM logical volume
target_lv=LVM VG $1, LV $2
target_other=Other file or device
target_lun=Device to share $1
target_name=Target name
target_egone=Selected target no longer exists!
target_none=Nothing
target_null=Temporary RAM disk of size
target_sectors=sectors
target_fileio=File based
target_blockio=Block based (no caching, for devices only)
target_iomode=IO mode
target_wt=Write-through caching
target_wb=Write-back caching
target_ro=Read-only
target_iuser=Authentication by clients
target_iuserall=No authentication needed
target_iuserbelow=Allow logins below ..
target_uname=Username
target_upass=Password
target_ouser=Authentication to clients
target_ousernone=Don't authenticate
target_ousername=Login with username
target_ouserpass=and password
target_err=Failed to save target
target_esectors=Missing or non-numeric number of sectors for device $1
target_eother=Missing or invalid file for device $1
target_eiuser=Invalid name for user $1 - no spaces are allowed
target_eipass=Invalid password for user $1 - no spaces are allowed
target_eouser=Missing or invalid username for authentication to clients - no spaces are allowed
target_eopass=Missing or invalid password for authentication to clients - no spaces are allowed
target_eiusernone=No client usernames entered
target_iaddress=Allow connections from addresses
target_iname=Allow connections from initiators
target_iall=All
target_ibelow=Entered below ..
target_type=Storage type
target_backing=Backing store
target_direct=Direct device access
target_cache=Cache writes to device?
target_eaddr=Invalid allowed IP address
target_eaname=Invalid allowed initiator name
start_err=Failed to start iSCSI TGTd
stop_err=Failed to stop iSCSI TGTd
restart_err=Failed to restart iSCSI TGTd
atboot_err=Failed to enable at boot
atboot_einit=Init script $1 does not exist
log_create_target=Created target $1
log_delete_target=Deleted target $1
log_modify_target=Modified target $1
log_delete_targets=Deleted $1 targets
log_start=Started iSCSI server
log_stop=Stopped iSCSI server
log_restart=Restarted iSCSI server
log_atboot=Enabled iSCSI server at boot time
log_delboot=Disabled iSCSI server at boot time
log_manual=Manually edited configuration file
manual_title=Edit Configuration File
manual_file=Select file to edit:
manual_ok=Open
manual_desc=Use the text box below to edit the iSCSI server configuration file $1. Be careful, as no validation will be performed on your input!
manual_err=Failed to save configuration file
manual_edata=No contents entered!
manual_efile=Invalid configuration file!

Some files were not shown because too many files have changed in this diff Show More