Compare commits

...

360 Commits

Author SHA1 Message Date
Ilia Ross
08c77d156b Update changelog 2025-05-28 21:15:22 +03:00
Ilia Ross
b1904a6271 Fix reading EOL data correctly 2025-05-28 20:21:08 +03:00
Ilia Ross
16e1135bd1 Fix to keep new lines consistent and nice when installing 2025-05-28 12:42:22 +03:00
Ilia Ross
8dada63714 Add a better way to match standard php-common package
fe0ad881f2 (r158184285)
2025-05-28 12:13:19 +03:00
Jamie Cameron
a477a59ca7 Merge branch 'master' of github.com:webmin/webmin 2025-05-27 19:33:59 -07:00
Jamie Cameron
c5e8c77526 Keep the words array in sync with value 2025-05-27 19:33:52 -07:00
Ilia Ross
8f6a94c537 Fix to only show neutral language checkbox if languages supports it 2025-05-27 03:47:04 +03:00
Ilia Ross
fdad726013 Fix printing footer unless theme was changed 2025-05-27 03:12:38 +03:00
Jamie Cameron
65fb187afe Merge branch 'master' of github.com:webmin/webmin 2025-05-26 17:05:58 -07:00
Jamie Cameron
825ce6154c Don't reference config array entries that don't exist 2025-05-26 17:05:51 -07:00
Ilia Ross
43bdc70248 Update changelog 3/3 2025-05-27 03:00:24 +03:00
Ilia Ross
8e81bd0f93 Add all new UI functions from the theme to the core
[no-build]
2025-05-27 01:46:31 +03:00
Ilia Ross
8fa410792e Fix to improve print and output when deleting package(s) 2025-05-27 00:44:56 +03:00
Jamie Cameron
4c5560544a Remove unnecessary file existence checks, because we're going to attempt to read the files anyway 2025-05-26 14:18:53 -07:00
Ilia Ross
752e722beb Fix to remove excessive new line 2025-05-26 23:55:19 +03:00
Ilia Ross
6899d86d26 Fix to use inline submit
[no-build]
2025-05-26 21:27:54 +03:00
Ilia Ross
c85128bb4d Fix to fit in width 2025-05-26 19:50:48 +03:00
Jamie Cameron
159cdc8057 Merge pull request #2483 from webmin/dev/php-installer
Fix issues in new PHP package manager
2025-05-26 09:15:32 -07:00
Ilia Ross
ccf7c08147 Fix to break conditionally as it fits sometimes 2025-05-26 17:17:50 +03:00
Ilia Ross
53d0566410 Fix to always break line 2025-05-26 16:56:03 +03:00
Ilia Ross
5d83d4040f Add support for showing gender-neutral translations
https://github.com/webmin/webmin/discussions/2482
https://forum.virtualmin.com/t/on-the-rejection-of-gender-neutral-language/133527

833292c0d1

fe064dd57d

4a19a6460b
2025-05-26 16:46:09 +03:00
Ilia Ross
833292c0d1 Add exported German language-neutral strings
https://github.com/webmin/webmin/discussions/2482
https://forum.virtualmin.com/t/on-the-rejection-of-gender-neutral-language/133527
2025-05-26 14:48:11 +03:00
Ilia Ross
f34e0c797b Update changelog 2/2 2025-05-26 14:05:11 +03:00
Ilia Ross
425ca01c5a Fix to simplify extending names
https://github.com/webmin/webmin/pull/2483#discussion_r2106361464
2025-05-26 12:52:47 +03:00
Jamie Cameron
27ee0cc475 Merge branch 'master' of github.com:webmin/webmin 2025-05-25 19:53:22 -07:00
Jamie Cameron
ea7b52d65b dummy directive doesn't use up any lines 2025-05-25 19:53:11 -07:00
Ilia Ross
d88c35bf6f Fix to allow installing PHP packages when none installed 2025-05-26 02:28:31 +03:00
Ilia Ross
eac8684eb2 Fix to print install button for other case scenarios 2025-05-26 01:58:32 +03:00
Ilia Ross
92dc310ce0 Fix to return a new list instead 2025-05-26 01:21:01 +03:00
Ilia Ross
52e24d98e2 Fix to fill in missing binary path for default PHP versions (EL systems) 2025-05-26 00:57:20 +03:00
Ilia Ross
b56c8eb19b Fix to simplify the code and make it work in Perl below version 5.14 2025-05-26 00:20:10 +03:00
Ilia Ross
200b295da0 Fix to call it after check 2025-05-26 00:04:05 +03:00
Ilia Ross
fe0ad881f2 Fix to skip listing annoying and useless meta package on Debian/Ubuntu 2025-05-25 23:38:00 +03:00
Ilia Ross
8c0974ac1d Fix to suggest larges version on top 2025-05-25 23:20:44 +03:00
Ilia Ross
9e552ab7f4 Fix to correctly clear runtime packages on EL systems 2025-05-25 23:16:27 +03:00
Ilia Ross
f684a3b8f2 Fix to prioritize versioned common package over standard when displaying 2025-05-25 23:08:43 +03:00
Ilia Ross
426c144c6c Fix to uninstall properly on Debian (all packages too) 2025-05-25 23:00:50 +03:00
Ilia Ross
1bcf541f85 Fix to uninstall properly on Debian 2025-05-25 22:56:50 +03:00
Ilia Ross
b9bde5bee0 Fix to properly delete and protect Debian dependencies 2025-05-25 22:50:44 +03:00
Ilia Ross
45c4ea214e Add proper function to extend installable packages 2025-05-25 22:11:47 +03:00
Ilia Ross
de834b9cce Fix to drop useless and occupying short version column 2025-05-25 21:38:39 +03:00
Ilia Ross
24c319fcc4 Fix to track based on full version to avoid false positive for standard package 2025-05-25 21:36:09 +03:00
Ilia Ross
44d8e9191f Fix to significantly simplify check for all available PHP packages 2025-05-25 21:23:18 +03:00
Ilia Ross
72673cd72b Fix to factor out code to get PHP version, minor version and binary 2025-05-25 21:08:47 +03:00
Ilia Ross
22280486a9 Fix to correctly display executables 2025-05-25 20:20:42 +03:00
Ilia Ross
0f7cc02c8d Fix to significantly simplify check for different distros 2025-05-25 20:01:40 +03:00
Ilia Ross
6ca55b1944 Fix to remove changelog submit 2025-05-25 17:26:52 +03:00
Ilia Ross
6abf9c093e Update changelog 1/2 2025-05-25 17:19:41 +03:00
Ilia Ross
8cce264953 Fix issues in new PHP package manager 2025-05-25 17:13:11 +03:00
Ilia Ross
8ff86fd7f8 Fix to show PHP version for install cleanly 2025-05-25 17:11:43 +03:00
Ilia Ross
5790358580 Fix to delete dependencies on Debian too 2025-05-25 16:17:06 +03:00
Ilia Ross
c87994e531 Fix to print install PHP button when no version available 2025-05-25 15:44:07 +03:00
Ilia Ross
02d142ced2 Fix to print delete confirm in standard centered way 2025-05-25 15:42:06 +03:00
Ilia Ross
f3d25ab96b Fix to use new API to display 'used by' domains nicely 2025-05-25 13:29:54 +03:00
Ilia Ross
73df190a7e Fix to keep labels consistent 2025-05-25 13:17:12 +03:00
Ilia Ross
b48e310a02 Fix to use neutral language key not to trigger button styling 2025-05-25 12:54:57 +03:00
Ilia Ross
ac8eac2082 Fix to use German rules most people already accept 3/3
https://github.com/webmin/webmin/discussions/2482
2025-05-24 22:27:46 +03:00
Jamie Cameron
fd122a0430 Merge branch 'master' of github.com:webmin/webmin 2025-05-24 12:08:19 -07:00
Jamie Cameron
3ca8cf64d6 start of changelog for version 2.400 2025-05-24 12:08:11 -07:00
Ilia Ross
532a8042c7 Fix to use German rules most people already accept 2/2
https://github.com/webmin/webmin/discussions/2482
2025-05-24 21:46:34 +03:00
Ilia Ross
3849615cfd Fix encoding bug 2025-05-24 21:40:10 +03:00
Jamie Cameron
e4035af18d New version update 2025-05-24 11:14:13 -07:00
Ilia Ross
501698ad4b Fix to use German rules most people already accept 1/2
https://github.com/webmin/webmin/discussions/2482
2025-05-24 20:43:25 +03:00
Ilia Ross
b65a787dbe Fix to perfect font alignment in the logo 2025-05-23 20:55:27 +03:00
Ilia Ross
023b2d453e Fix Webmin logo name
[no-build]
2025-05-23 20:18:41 +03:00
Ilia Ross
5ae96fdca5 Add Usermin logo 2025-05-23 20:18:14 +03:00
Ilia Ross
ef487fc14c Fix logo weight 2025-05-23 19:50:13 +03:00
Ilia Ross
4857b349d6 Add brand icon as it looks way better 2025-05-23 17:32:06 +03:00
Jamie Cameron
7c51438334 Show forgotten password field on PAM form 2025-05-22 16:53:17 -07:00
Jamie Cameron
3a81bdd87c Merge branch 'master' of github.com:webmin/webmin 2025-05-21 16:38:55 -07:00
Jamie Cameron
5b93fb30bd Make field names closer match the config file
https://github.com/webmin/webmin/issues/2478
2025-05-21 16:37:52 -07:00
Jamie Cameron
aaccc9720f Merge pull request #2481 from webmin/dev/forgot-compatibility
Fix to make forgot links compatible across themes
2025-05-21 16:09:26 -07:00
Ilia Ross
856c350a0b Fix to load theme handle first 2025-05-21 22:02:02 +03:00
Ilia Ross
c974bda52c Fix to make forgot links compatible across themes 2025-05-21 19:59:28 +03:00
Ilia Ross
4e2307376d Merge pull request #2480 from MacSteini/master
Updated de
2025-05-21 15:58:27 +03:00
MacSteini
a6f0d4cbcd Updated de 2025-05-21 12:55:29 +01:00
Jamie Cameron
8358bd20af Turn off caching when reading network manager config files, as they may be modified by the nm cli command
https://forum.virtualmin.com/t/virtualmin-virtualserver-ip-copy-to-services/133442/12
2025-05-20 16:43:39 -07:00
Jamie Cameron
693f3c792e Allow sessions to have a max lifetime 2025-05-19 22:18:33 -07:00
Jamie Cameron
c126e9f93e Allow sessions to have a max lifetime 2025-05-19 22:17:59 -07:00
Jamie Cameron
62a52bfc56 Code cleanups 2025-05-19 21:56:46 -07:00
Jamie Cameron
4afe69addf Line length cleanup 2025-05-19 21:56:11 -07:00
Jamie Cameron
1f33234db2 Differentiate temporary session IDs for single-use logins from real sessions 2025-05-19 21:55:56 -07:00
Jamie Cameron
7dda4c62a9 Use the sudo username in the email 2025-05-19 18:47:52 -07:00
Jamie Cameron
1780dc2b16 Merge pull request #2477 from webmin/dev/reset-password-form-simplification
Fix to simplify reset-password UI for sudo-capable users
2025-05-19 15:45:52 -07:00
Ilia Ross
7b326c7317 Fix to improve the label 2025-05-20 01:20:41 +03:00
Ilia Ross
17433e479a Fix to roll back to using existing test 2025-05-20 00:26:39 +03:00
Ilia Ross
5210f37478 Fix to simplify reset-password UI for sudo-capable users 2025-05-19 15:40:53 +03:00
Ilia Ross
8d2b6bf328 Fix consistency for the message
[no-build]
2025-05-19 15:35:52 +03:00
Ilia Ross
967e168e4b Fix to correctly specify the username in the link 2025-05-19 13:35:11 +03:00
Ilia Ross
396ac2f546 Fix to use full param names for readability and consistency 2025-05-15 13:45:19 +03:00
Ilia Ross
6ab3247d3d Fix not to show redundant hostname #2473 2025-05-15 13:16:41 +03:00
Ilia Ross
806c8f4128 Fix indent 2025-05-15 11:31:28 +03:00
Ilia Ross
afaa49591a Fix reverse flag going to the command line #2473 2025-05-15 11:31:00 +03:00
Ilia Ross
3b82950571 Fix to respect reverse order flag #2473 2025-05-15 11:14:55 +03:00
Ilia Ross
41d27ec4b4 Fix tooltip ridiculous border radius
[no-build]
2025-05-14 23:38:18 +03:00
Ilia Ross
bff5837cc0 Fix details arrow in inline mode
[no-build]
2025-05-14 23:27:44 +03:00
Ilia Ross
5395dc57fe Add API to control line-break height 2025-05-14 01:36:02 +03:00
Jamie Cameron
f5ff544439 Use format params 2025-05-10 21:58:17 -07:00
Jamie Cameron
24d17dc0c8 Keep the split value in sync with the full value 2025-05-10 16:36:03 -07:00
Jamie Cameron
4504c74504 Merge branch 'master' of github.com:webmin/webmin 2025-05-10 09:12:03 -07:00
Jamie Cameron
ffe27ae348 Disallow underscores by default in new installs
https://github.com/webmin/webmin/issues/2470
2025-05-10 09:11:54 -07:00
Ilia Ross
23b0e2491e Revert incorrect "Fix to preserve ACL even for modules with noacl flag"
This reverts commit 201d817e9d.
2025-05-09 02:08:15 +03:00
Jamie Cameron
412cc0b612 Merge branch 'master' of github.com:webmin/webmin 2025-05-08 16:06:02 -07:00
Jamie Cameron
89bac6adaa Require that the user whose password is being reset is a local Unix user 2025-05-08 16:05:56 -07:00
Jamie Cameron
0956ff159f Merge pull request #2469 from webmin/dev/config-noacl-mods
Add ability for modules with no ACL to edit config
2025-05-08 15:55:34 -07:00
Ilia Ross
dd34823ed3 Fix not to change uconfig 2025-05-09 00:43:39 +03:00
Ilia Ross
575957325d Add ability for modules with no ACL to edit config 2025-05-08 14:13:18 +03:00
Jamie Cameron
d029b1c165 Add extra check to make sure the sudo-capable user is actually capable 2025-05-07 14:26:41 -07:00
Jamie Cameron
ea151bebfd Fix permissions 2025-05-05 22:02:18 -07:00
Jamie Cameron
22946b82de Add option to show password reset link in the browser 2025-05-05 22:01:56 -07:00
Jamie Cameron
46455e1cf0 Lock link tracking files 2025-05-05 20:08:12 -07:00
Jamie Cameron
c5357f13f6 Merge branch 'master' of github.com:webmin/webmin 2025-05-05 19:05:52 -07:00
Jamie Cameron
cfeaa8fcaa Creating link directory 2025-05-05 19:05:46 -07:00
Ilia Ross
addab7910e Fix input fields widths 2025-05-06 01:28:05 +03:00
Ilia Ross
068780d24a Fix breaking user picking 2025-05-06 01:27:28 +03:00
Ilia Ross
0e78b101b4 Fix inputs width
[no-build]
2025-05-05 20:41:52 +03:00
Ilia Ross
33e5a7fdfc Fix missing label 2025-05-05 20:29:45 +03:00
Ilia Ross
88c9fa54f1 Fix to use neutral key name 2025-05-05 16:17:19 +03:00
Ilia Ross
125a744f2e Fix to load missing theme libraries 2025-05-05 16:12:52 +03:00
Jamie Cameron
8a1e3d2b2f Clean up code and add formal params 2025-05-04 19:59:52 -07:00
Jamie Cameron
5820a98f5a TLS directives need quoting 2025-05-04 18:37:49 -07:00
Jamie Cameron
36af12d39f Internal dev version bump 2025-05-04 16:55:48 -07:00
Jamie Cameron
b0557de951 DNS over TLS is only supported in version 9.17+ 2025-05-04 16:52:16 -07:00
Jamie Cameron
63710a4c44 The admin can send a password reset email for any user, even if they don't have email setup yet 2025-05-04 15:56:55 -07:00
Jamie Cameron
b3e2dabe84 Make comment more descriptive 2025-05-04 15:54:34 -07:00
Jamie Cameron
ff742eddc1 Add ability for the master admin to send forgotten password reset links 2025-05-04 15:54:08 -07:00
Jamie Cameron
d0f31831b6 Extract out functions for re-use 2025-05-04 15:39:37 -07:00
Jamie Cameron
97a9f57cbb Handle case where there is no system action
https://github.com/webmin/webmin/issues/1542
2025-05-04 11:52:30 -07:00
Jamie Cameron
b74d6ca7cc Merge branch 'master' of github.com:webmin/webmin 2025-05-04 11:41:51 -07:00
Jamie Cameron
3ba8f4a6fe Fixes to get password changes for sudo users working 2025-05-04 11:40:58 -07:00
Ilia Ross
9a48d874e2 Add support for printing more headers 2025-05-04 13:18:08 +03:00
Jamie Cameron
c5b0e4c7ff Work on password reset for sudo-capable users 2025-05-03 22:05:46 -07:00
Jamie Cameron
cc0968be8f Cleaner to use temporary variables rather than modifying gconfig 2025-05-03 20:49:04 -07:00
Ilia Ross
f63f3a6817 Add password reset link expires in option 2025-05-03 17:54:56 +03:00
Ilia Ross
b8820c6562 Add password recovery throttling 2025-05-03 01:27:50 +03:00
Ilia Ross
35bdbe19f0 Fix typo 2025-05-03 00:57:38 +03:00
Ilia Ross
76e4cd70b3 Fix to drop dots for consistency 2025-05-03 00:13:51 +03:00
Jamie Cameron
bc996a6263 Merge branch 'master' of github.com:webmin/webmin 2025-05-01 11:47:09 -07:00
Jamie Cameron
265e11eceb Support axosyslog in version detection
https://github.com/webmin/webmin/issues/2465
2025-05-01 11:46:40 -07:00
Ilia Ross
56423b138e Fix bug upon initial feature enrolment
We should always use `[Definition]` to add changes, with defaults simply hardcode rather than populated from the `[DEFAULT] section. This is how at least it was originally implemented.

Initial feature created in response to: https://forum.virtualmin.com/t/change-fail2ban-times/124311/3?u=ilia

This fix triggered by:
https://forum.virtualmin.com/t/fail2ban-intrusion-detector-firewalld-default-jail-options/133201/13?u=ilia
2025-05-01 01:37:27 +03:00
Ilia Ross
80760677c7 Fix Fail2Ban version detection
https://forum.virtualmin.com/t/fail2ban-intrusion-detector-firewalld-default-jail-options/133201/11?u=ilia
2025-05-01 00:56:36 +03:00
Ilia Ross
6367879266 Fix to denote default log filter
https://forum.virtualmin.com/t/fail2ban-intrusion-detector-firewalld-default-jail-options/133201/6?u=ilia
2025-04-30 22:41:44 +03:00
Ilia Ross
a80870980d Fix to correctly merge custom *.conf files
https://forum.virtualmin.com/t/fail2ban-intrusion-detector-firewalld-default-jail-options/133201/4?u=ilia
2025-04-30 22:32:41 +03:00
Ilia Ross
a7676f4004 Fix to break long lines nicer
https://github.com/webmin/webmin/pull/2463#issuecomment-2836316659
2025-04-30 14:43:16 +03:00
Jamie Cameron
cbcdeb9cb0 Fix TLS log parsing 2025-04-29 22:16:55 -07:00
Jamie Cameron
6415b0d8a8 Log original script path, and show it 2025-04-29 11:37:55 -07:00
Jamie Cameron
d821d58fb4 Fix typo 2025-04-29 11:27:03 -07:00
Jamie Cameron
f7f3023191 Clean up repeated and inconsistent script name variables 2025-04-29 11:17:13 -07:00
Jamie Cameron
910d011edd Make the banner cookie HTTPS only 2025-04-29 10:37:38 -07:00
Jamie Cameron
5e00b93b5c Merge pull request #2462 from webmin/dev/miniserv-2fa-probe
Add ability to make authentication in two steps
2025-04-27 21:29:31 -07:00
Ilia Ross
ff4e0ae386 Fix to split lines up
https://github.com/webmin/webmin/pull/2462#pullrequestreview-2797791341
2025-04-28 03:33:52 +03:00
Jamie Cameron
a2e6afbd06 Fix check for key in use 2025-04-27 17:28:05 -07:00
Jamie Cameron
723e169905 Allow TLS key to be selectd for a port 2025-04-27 17:22:28 -07:00
Ilia Ross
19bfe18e0f Add ability to make authentication in two steps 2025-04-28 00:55:59 +03:00
Ilia Ross
b48f6d3406 Fix to drop obsolete code 2025-04-28 00:51:04 +03:00
Jamie Cameron
6743d3b4c6 Add support for IPv6 listen-on 2025-04-27 14:22:01 -07:00
Jamie Cameron
172c504abb Add check for in-use TLS keys 2025-04-27 11:23:54 -07:00
Jamie Cameron
b92d8d11d6 Make sure atd is running if needed
https://github.com/webmin/webmin/issues/2461
2025-04-27 09:52:43 -07:00
Jamie Cameron
d073280e80 Factor out check for atd init script 2025-04-27 09:44:53 -07:00
Jamie Cameron
ebf1138788 CGI to save TLS keys 2025-04-26 21:50:44 -07:00
Jamie Cameron
3706f7862b Certs can start with BEGIN PUBLIC KEY 2025-04-26 20:25:31 -07:00
Jamie Cameron
9bd96b6448 Rate limit before checking if the user exists 2025-04-26 14:44:37 -07:00
Jamie Cameron
7ff37cd12f Add a delay based on the number of tries 2025-04-26 14:42:18 -07:00
Ilia Ross
55fd013b35 Fix to remove pointless new line that looks bad 2025-04-26 21:40:00 +03:00
Ilia Ross
014f949fdb Fix language when logging 2025-04-26 21:38:04 +03:00
Ilia Ross
cb3bde5374 Fix to set email correctly when resetting password 2025-04-26 21:37:42 +03:00
Jamie Cameron
4fbc57350f Add logging for password resets 2025-04-26 10:04:43 -07:00
Jamie Cameron
924e7e8ff5 Remove useless variable 2025-04-26 08:49:49 -07:00
Jamie Cameron
cb7de4edec Remove duplicate variable 2025-04-26 08:32:28 -07:00
Jamie Cameron
f17be6a383 Always show option to download in the background immediately 2025-04-25 20:11:45 -07:00
Jamie Cameron
bcfb698ac6 Detect case where cache is somehow empty
https://github.com/webmin/webmin/issues/2460
2025-04-25 19:50:25 -07:00
Jamie Cameron
8bd079f52f Merge branch 'master' of github.com:webmin/webmin 2025-04-25 16:51:05 -07:00
Jamie Cameron
cef76798f8 clean/reset environment will preserve variables 2025-04-25 16:50:58 -07:00
Ilia Ross
4f046c1d6d Fix to quote escape labels 2025-04-25 23:58:06 +03:00
Ilia Ross
cc83641c11 Add ability for themes to handle each "forgot_*" page 2025-04-25 20:01:30 +03:00
Ilia Ross
971c526ade Fix to lower the static delay for now 2025-04-25 11:39:27 +03:00
Jamie Cameron
717f0b1100 Work on form to edit a TLS key 2025-04-24 21:39:47 -07:00
Jamie Cameron
6ff0e50e94 Merge branch 'master' of github.com:webmin/webmin 2025-04-24 21:12:13 -07:00
Jamie Cameron
0de1844755 Work on DNS over TLS 2025-04-24 21:07:03 -07:00
Ilia Ross
e55f3bdb74 Add ability for the theme to construct own forgot link 2025-04-25 00:49:39 +03:00
Ilia Ross
25d2edeeaf Add a cooldown period for password reset request rates 2025-04-24 21:06:43 +03:00
Ilia Ross
201d817e9d Fix to preserve ACL even for modules with noacl flag
What matters now is that the module gets removed from ACLs, and the new module config page (that didn't exist before) stops working. So the simplest and best solution is to keep the module visible normally, but skip editable ACLs—since the plugin is meant to be controlled by Virtualmin permissions, and access to its config should always be allowed.

https://github.com/webmin/webmin/pull/2426/files#r1972474077
2025-04-24 11:25:03 +03:00
Ilia Ross
b2626ca9c1 Fix to default to useradmin module even for anon user 2025-04-24 10:24:17 +03:00
Ilia Ross
0553cae4e3 Fix to avoid printing switch theme code unless authed 2025-04-24 10:23:14 +03:00
Jamie Cameron
740368fc0d Use correct password hashing function 2025-04-23 20:58:48 -07:00
Jamie Cameron
7c932d3cb0 No need to create extra variables 2025-04-23 20:56:21 -07:00
Jamie Cameron
b46043de84 Check for the d variable properly 2025-04-23 20:51:59 -07:00
Ilia Ross
69e3844cec Fix critical issues when resetting the password
1. If changing password in `/etc/shadow` clone user correctly
 2. Restart miniserv after changing password in `/etc/shadow`
 3. Use correct hashing format when changing Webmin and Unix password
2025-04-23 15:18:09 +03:00
Ilia Ross
215b1332fc Fix to check if domain hash isn't empty 2025-04-23 14:15:56 +03:00
Jamie Cameron
bb8b926d52 Properly declare $d 2025-04-22 22:01:21 -07:00
Ilia Ross
967d519943 Fix to replace the table with much simpler and better layout 2025-04-22 22:25:38 +03:00
Ilia Ross
c84ef98016 Fix default mode to be login and password 2025-04-22 15:27:34 +03:00
Ilia Ross
fd153b28f3 Add improvements to the UI 2025-04-22 15:26:41 +03:00
Ilia Ross
7a3210849d Fix default system type config option to show label correctly 2025-04-22 13:45:52 +03:00
Ilia Ross
fb8339a3ca Fix to always default to fast mode
https://github.com/webmin/webmin/issues/2458#issuecomment-2818513756
2025-04-22 13:40:54 +03:00
Jamie Cameron
e0b6ae7691 Obsfucate email for display 2025-04-21 22:04:03 -07:00
Jamie Cameron
3f5ae24beb Ask for password twice 2025-04-21 19:56:20 -07:00
Jamie Cameron
8cd74c1c35 Don't show Virtualmin output when resetting a password 2025-04-21 16:55:35 -07:00
Jamie Cameron
e983ded21e Include forgotten password pages in package 2025-04-21 16:51:51 -07:00
Ilia Ross
0037d9a9ca Fix to use fast PRC mode by default 2025-04-21 16:28:38 +03:00
Jamie Cameron
a49b5fc0cb Sure as hell nobody is running BIND 8 anymore 2025-04-20 21:20:12 -07:00
Jamie Cameron
e87fc560c9 Move random flag check into a function 2025-04-20 21:15:49 -07:00
Jamie Cameron
ac21e39a88 Use standard functions for version checks 2025-04-20 20:50:51 -07:00
Jamie Cameron
d070176535 Cleanup and reformat code 2025-04-20 20:35:22 -07:00
Jamie Cameron
4c60aa1865 Include username is email subject 2025-04-20 11:15:17 -07:00
Jamie Cameron
590a3218be Cleanup old forgotten password reset key 2025-04-20 11:14:05 -07:00
Jamie Cameron
cf50dd2431 Start of work on password reset rate limiting 2025-04-20 10:54:39 -07:00
Jamie Cameron
a04646e785 Cannot reset password if you're logged in 2025-04-20 10:30:14 -07:00
Jamie Cameron
5d2debca26 Code cleanups 2025-04-20 10:24:07 -07:00
Jamie Cameron
79e5d72393 Cleanup forgotten password link files older than 1 day 2025-04-20 10:21:25 -07:00
Jamie Cameron
410d240e8b What if WEBMIN_VAR isn't set 2025-04-20 10:18:36 -07:00
Jamie Cameron
c074e150f6 Merge branch 'master' of github.com:webmin/webmin 2025-04-20 10:00:55 -07:00
Jamie Cameron
2916f5b723 Define the forgot password dir in init_config 2025-04-20 10:00:47 -07:00
Jamie Cameron
167e8f2b1f support unix user password changes 2025-04-18 22:01:56 -07:00
Ilia Ross
f71c413b6d Fix to allow proxy links to open as they are if the referrer is trusted 2025-04-19 00:31:42 +03:00
Jamie Cameron
a664809bf4 Implement forgotted password reset for Virtualmin users 2025-04-17 22:11:39 -07:00
Jamie Cameron
d8513dbd9e Fix case where error is not called in a module 2025-04-17 22:08:53 -07:00
Jamie Cameron
268b72917d CGI to un-install PHP versions 2025-04-17 21:52:25 -07:00
Jamie Cameron
4082701c48 Version detection fixes 2025-04-17 21:48:05 -07:00
Jamie Cameron
4018977aeb Code and variable scope cleanups
https://github.com/webmin/webmin/issues/2458
2025-04-17 14:15:50 -07:00
Jamie Cameron
ff0da2ca90 Code cleanups
https://github.com/webmin/webmin/issues/2458
2025-04-17 14:05:40 -07:00
Jamie Cameron
badb5b60f7 Merge branch 'master' of github.com:webmin/webmin 2025-04-17 07:39:22 -07:00
Jamie Cameron
a9652f4c88 Minor version bump 2025-04-17 07:39:12 -07:00
Ilia Ross
2febc12586 Merge pull request #2456 from MacSteini/master
Update de
2025-04-16 15:27:03 +03:00
MacSteini
625fff0c6f Update de 2025-04-16 11:32:22 +01:00
Jamie Cameron
ea973b571b Fix password change for regular webmin users 2025-04-15 21:23:10 -07:00
Jamie Cameron
ba6da02850 Don't show module index link if not in a module 2025-04-15 21:19:59 -07:00
Jamie Cameron
f15b147bd0 No need to check for the same condition twice 2025-04-15 21:16:49 -07:00
Jamie Cameron
4b927ed588 Avoid duplicating the error message 2025-04-15 21:14:06 -07:00
Jamie Cameron
8894ca18cf Merge branch 'master' of github.com:webmin/webmin 2025-04-15 19:05:19 -07:00
Jamie Cameron
d9dbcd9746 More work on forgotten password support 2025-04-14 22:44:55 -07:00
Ilia Ross
00ad7fec7a Fix broken Hungarian translations #2455 2025-04-15 01:04:50 +03:00
Jamie Cameron
f76451975c Fix allow-update check
https://forum.virtualmin.com/t/virtualmin-dns-fails-to-detect-rndc-freeze-is-needed/132653
2025-04-12 21:42:41 -07:00
Jamie Cameron
315664a1e1 Merge branch 'master' of github.com:webmin/webmin 2025-04-12 11:00:36 -07:00
Jamie Cameron
18a4c86e2f Work on forgotten password page 2025-04-12 11:00:30 -07:00
Ilia Ross
f65625047b Fix to convert entities to ASCII before printing to logs 2025-04-12 18:26:26 +03:00
Ilia Ross
8d0f19f64d Fix to simplify error print 2025-04-12 18:25:18 +03:00
Jamie Cameron
a768e731cf Allow anonymous access to the forgotten password CGIs 2025-04-11 22:25:17 -07:00
Jamie Cameron
535accda63 Merge branch 'master' of github.com:webmin/webmin 2025-04-11 22:12:18 -07:00
Jamie Cameron
a6c3cccbac Code cleanups 2025-04-11 22:11:59 -07:00
Ilia Ross
d2d16608dc Fix to filter out potentially dangerous characters
https://github.com/webmin/webmin/issues/1838#issuecomment-2795296531
2025-04-11 14:12:33 +03:00
Ilia Ross
196e3ed6c4 Fix to drop trailing dot to align 2025-04-11 12:43:35 +03:00
Jamie Cameron
acdc65c5d7 Code cleanups 2025-04-10 21:39:48 -07:00
Jamie Cameron
dffdd66fb4 UI to enable forgotten password recovery 2025-04-10 21:37:54 -07:00
Jamie Cameron
f6fc4490db Clean up code and check for existing flag before checking variables 2025-04-10 21:32:52 -07:00
Jamie Cameron
73a882b7a0 Merge branch 'master' of github.com:webmin/webmin 2025-04-10 21:29:30 -07:00
Jamie Cameron
5de2d599a2 Delete webmin module from debian package properly 2025-04-10 21:28:08 -07:00
Ilia Ross
cf2806edac Fix to check if local version of mysqldump supports --set-gtid-purged flag
https://forum.virtualmin.com/t/schedule-backup-database-remote-mysql-error/132874/25?u=ilia
2025-04-10 19:36:01 +03:00
Jamie Cameron
0bf83ea2a8 Merge pull request #2447 from webmin/dev/fix-ssl-scheduled-renewals-for-webmin
Fix to respect option to copy new key and certificate to Webmin
2025-04-09 21:32:41 -07:00
Ilia Ross
544db4b1a9 Merge pull request #2451 from MacSteini/master
Update de
2025-04-09 11:43:28 +03:00
MacSteini
f7e4b57c42 Update de 2025-04-09 09:41:47 +01:00
MacSteini
9e9fc9bc87 Update de 2025-04-09 08:40:45 +01:00
MacSteini
23dff016cd Update de 2025-04-09 08:36:45 +01:00
Jamie Cameron
c191caf04b Add a Webmin user field for email address 2025-04-08 20:58:28 -07:00
Jamie Cameron
05f4b8ff96 log package deletion 2025-04-08 20:19:24 -07:00
Jamie Cameron
f30275b49e Merge branch 'master' of github.com:webmin/webmin 2025-04-08 20:13:05 -07:00
Jamie Cameron
3e1b07f823 Add UI for deleting packages and modules 2025-04-08 20:12:38 -07:00
Jamie Cameron
49990e5949 Merge pull request #2450 from MacSteini/master
Update de
2025-04-08 18:36:35 -07:00
MacSteini
434d46643b Update de 2025-04-09 01:16:04 +01:00
MacSteini
33ed262ff0 Merge branch 'webmin:master' into master 2025-04-09 01:11:14 +01:00
Ilia Ross
0bc1dae232 Fix no use logic 2025-04-08 12:12:07 +03:00
Ilia Ross
2760336b40 Fix to use a different type of double-negation logic
https://github.com/webmin/webmin/pull/2447#discussion_r2030265612
2025-04-07 16:42:48 +03:00
Jamie Cameron
18bd46fe93 Work on support for removing packages 2025-04-06 18:58:58 -07:00
Jamie Cameron
fde1b02880 Factor out function to get domains list 2025-04-06 17:21:16 -07:00
Jamie Cameron
f94dabb88c Add form to install a new PHP package 2025-04-06 12:38:12 -07:00
Jamie Cameron
9e9d674206 Show version used by Virtualmin as well 2025-04-06 11:42:03 -07:00
Jamie Cameron
bd5c0bfa54 No need to show domains column if virtualmin isn't installed 2025-04-06 11:33:49 -07:00
Jamie Cameron
b1fdf42530 Don't set a flag that's already set
https://forum.virtualmin.com/t/schedule-backup-database-remote-mysql-error/132874/10
2025-04-03 21:55:59 -07:00
Ilia Ross
f2cba6af00 Fix to respect option to copy new key and certificate to Webmin
https://forum.virtualmin.com/t/letsencrypt-automatic-certificate-advice/132891/3?u=ilia
2025-04-03 16:51:45 +03:00
Jamie Cameron
e5beb7f022 Merge branch 'master' of github.com:webmin/webmin 2025-04-01 22:25:13 -07:00
Jamie Cameron
99f6638194 Coe style cleaups 2025-04-01 22:25:09 -07:00
Jamie Cameron
aa55e33b7e Work on page to show PHP versions 2025-04-01 22:24:33 -07:00
Ilia Ross
b3f28ee4f7 Fix to use new API for remote QR code generation
https://forum.virtualmin.com/t/two-factor-authenticator-is-missing-google-option/132766/14?u=ilia
2025-04-01 14:49:22 +03:00
MacSteini
2ce1157190 Update de 2025-04-01 10:27:58 +01:00
Ilia Ross
d40dbe391e Update translations 2025-03-31 15:42:27 +03:00
Ilia Ross
0fc1bea55e Update TOTP help page 2025-03-31 15:41:48 +03:00
Ilia Ross
225d113d38 Fix not to switch to remote user in case of admin login 2025-03-30 15:43:46 +03:00
Jamie Cameron
663640d801 Merge pull request #2445 from webmin/dev/fix-listing-mysql-auth-plugins
Fix to dynamically list auth plugins in MySQL/MariaDB
2025-03-29 22:07:05 -05:00
Ilia Ross
8bc5ba7a32 Fix to correctly display hashed passwords in UI 2025-03-29 22:19:44 +02:00
Ilia Ross
a10de5a9dc Fix updating unix_socket plugin in default mode 2025-03-29 21:05:37 +02:00
Ilia Ross
a67e327627 Fix to dynamically list auth plugins in MySQL/MariaDB 2025-03-29 16:25:42 +02:00
Ilia Ross
99889c1f30 Fix to use prepared statement instead when getting account lock status 2025-03-29 16:00:30 +02:00
Ilia Ross
42b8f2c25c Add support for account locking in MariaDB 2025-03-29 15:53:37 +02:00
Ilia Ross
6905548fa4 Fix to correctly set the password with auth plugin
https://forum.virtualmin.com/t/maria-db-failed-to-save-user/132794/4
2025-03-29 15:19:34 +02:00
Jamie Cameron
4ae5ec1694 Fix links to edit pages with non-original zone types
https://github.com/webmin/webmin/issues/2443
2025-03-27 07:22:54 -07:00
Jamie Cameron
f3a841d2b9 Merge branch 'master' of github.com:webmin/webmin 2025-03-23 10:42:53 -07:00
Jamie Cameron
2aee714a81 Handle case where two interfaces are modified
https://github.com/webmin/webmin/issues/1546
2025-03-23 10:42:45 -07:00
Ilia Ross
16fec003dc Fix to use shell command with direct file writing for EOL data file 2025-03-23 15:44:36 +02:00
Ilia Ross
fdbf960a2c Fix to use dmesg -T for Linux systems #2442 2025-03-23 03:07:50 +02:00
Ilia Ross
e8b2b21bce Fix to stop rebuilding on release edit
[no-build]
2025-03-22 18:56:44 +02:00
Ilia Ross
1f07fdb274 Fix to prefer JSON::XS over JSON::PP if available for better performance 2025-03-21 16:55:32 +02:00
Ilia Ross
7b85a75a2b Fix not to add ? unless there is a query
[no-build]
2025-03-21 12:54:08 +02:00
Ilia Ross
2185f2068d Update pod
[no-build]
2025-03-21 12:53:05 +02:00
Jamie Cameron
e60be7133b Add support for template variables to help pages 2025-03-20 20:02:47 -07:00
Jamie Cameron
4021b6d8bb Merge branch 'master' of github.com:webmin/webmin 2025-03-20 15:08:23 -07:00
Jamie Cameron
5a777e9395 Dynamic updates may also be enabled globally
https://forum.virtualmin.com/t/virtualmin-dns-fails-to-detect-rndc-freeze-is-needed/132653
2025-03-20 14:55:54 -07:00
Ilia Ross
51e2ebec70 Merge pull request #2441 from MacSteini/master
Update de
2025-03-20 14:12:43 +02:00
MacSteini
afe100d9f0 Update de 2025-03-20 11:26:56 +00:00
Jamie Cameron
eca9472980 Merge pull request #2437 from webmin/dev/fix-dovecot-listen
Add support to configure listen for any type of address
2025-03-19 18:53:53 -07:00
Ilia Ross
62c02d1273 Add TOML as editable by default #2438 2025-03-20 03:23:33 +02:00
Ilia Ross
d74e7e66c5 Fix to simplify regex check 2025-03-19 13:31:37 +02:00
Jamie Cameron
7250c44648 We can use the -cgi binary as a fallback 2025-03-18 21:58:22 -07:00
Jamie Cameron
31c7e63407 Show the PHP binary and version 2025-03-18 21:56:30 -07:00
Ilia Ross
264ecae147 Fix regex to match more accurately 2025-03-19 02:15:55 +02:00
Ilia Ross
6dd8915808 Fix to simplify check 2025-03-19 02:13:25 +02:00
Ilia Ross
48602503cd Add support to configure listen for any type of address
https://github.com/webmin/webmin/issues/2436
2025-03-18 14:04:38 +02:00
Jamie Cameron
13acaeece7 Stop creating a changelog that is no longer used 2025-03-17 15:49:07 -07:00
Jamie Cameron
bb787e4e1c Merge branch 'master' of github.com:webmin/webmin 2025-03-17 15:15:41 -07:00
Jamie Cameron
d4fab15024 No need to switch users if we already switched 2025-03-17 15:15:36 -07:00
Joe Cooper
1cb53ff00a Merge pull request #2435 from swelljoe/fix-makemoduledeb
We don't have to build debs on Debian
2025-03-16 18:43:50 -05:00
Joe Cooper
8043aabf18 We don't have to build debs on Debian 2025-03-16 18:43:04 -05:00
Ilia Ross
3a94ea3788 Update translations 2025-03-15 21:52:41 +02:00
Jamie Cameron
2183088706 Merge branch 'master' of github.com:webmin/webmin 2025-03-15 09:59:08 -07:00
Jamie Cameron
3736f26a84 Handle case where --to-destination is followed by a bare IPv6 address
https://github.com/webmin/webmin/issues/2434
2025-03-15 09:58:46 -07:00
Ilia Ross
f2307ae1fa Fix to stop using MD5 module that was deprecated 2025-03-14 14:42:49 +02:00
Jamie Cameron
45ef8d11c1 Merge branch 'master' of github.com:webmin/webmin 2025-03-13 17:13:44 -07:00
Jamie Cameron
b17df99700 Check the UID that is used for file operations 2025-03-13 17:13:37 -07:00
Ilia Ross
a3f2e64315 Update date 2025-03-14 00:29:51 +02:00
Ilia Ross
853bde5e1a Update CHANGELOG.md 2025-03-14 00:24:23 +02:00
Ilia Ross
083f9b09a2 Ensure li tags are always closed 2025-03-14 00:10:12 +02:00
Jamie Cameron
81e8fc6c37 Merge branch 'master' of github.com:webmin/webmin 2025-03-12 21:39:35 -07:00
Jamie Cameron
b9d2910d60 Run the man command as nobody, to prevent misuse of the section param 2025-03-12 21:38:04 -07:00
Ilia Ross
574f66c251 Merge pull request #2433 from MacSteini/master
Update de
2025-03-12 18:24:45 +02:00
MacSteini
56a231e78d Update de 2025-03-12 11:44:43 +00:00
Ilia Ross
85e7f6c292 Fix to filter out scope identifier
* We could support it but it would be much more work
2025-03-10 13:32:39 +02:00
Ilia Ross
9fa35cc2c9 Fix to save IPv6 nameservers 2025-03-10 13:31:32 +02:00
Jamie Cameron
23cb74fa35 Add function to show warnings in records 2025-03-09 16:34:14 -07:00
Jamie Cameron
e1d87fac1c Some sendmail hash files end with .cdb
https://forum.virtualmin.com/t/issues-editing-sendmail-8-18-1-on-webmin-2-302/132460/7
2025-03-07 17:21:25 -08:00
Jamie Cameron
9ba9bfd524 Merge branch 'master' of github.com:webmin/webmin 2025-03-06 19:03:47 -08:00
Jamie Cameron
6c5c5fa225 No need for modprobe since IPv6 is always in the kernel these days
https://github.com/webmin/webmin/issues/2432
2025-03-06 18:51:14 -08:00
Ilia Ross
495a196b2f Fix type when adding addr 2025-03-06 14:22:49 +02:00
Jamie Cameron
50eb61b89e Use the ip command instead of ifconfig 2025-03-05 20:56:42 -08:00
Jamie Cameron
3cb358fe9e Preserve ordering in module.info files 2025-03-05 11:23:09 -08:00
Jamie Cameron
67e36009f2 Merge branch 'master' of github.com:webmin/webmin 2025-03-04 18:07:38 -08:00
Jamie Cameron
98bda63c54 Declare missing variable 2025-03-04 18:07:26 -08:00
Ilia Ross
240f1ff5c2 Update changelog 2025-03-04 17:28:59 +02:00
Ilia Ross
a125de44a4 Revert incorrect "Simplify permission mappings"
https://forum.virtualmin.com/t/mariadb-database-server-error-when-i-try-to-create-a-new-user/132406/5?u=ilia
2025-03-04 17:14:11 +02:00
Ilia Ross
431ca1a491 Merge pull request #2429 from MacSteini/master
Update de
2025-03-04 13:41:59 +02:00
MacSteini
f799102e7a Update de 2025-03-04 11:34:53 +00:00
Ilia Ross
ea29e33d53 Update changelog 2025-03-03 16:57:57 +02:00
Jamie Cameron
4c990674eb Merge pull request #2428 from webmin/dev/sync-temp
Fix to flush and sync the temp and new files
2025-03-02 20:02:54 -08:00
Ilia Ross
0943289abe Fix to try to simply flush and sync on existing file handle
https://github.com/webmin/webmin/pull/2428/files#r1976753485
2025-03-03 02:43:18 +02:00
Ilia Ross
707cd42bb5 Fix to flush and sync the temp and new files 2025-03-02 23:45:20 +02:00
Jamie Cameron
554cf0e8af Make variable name clearer, and better handle the case where opening a file fails 2025-03-02 11:20:22 -08:00
Jamie Cameron
c918e6583b Only fall back to writing to the dest file directly in the case of a permission denied when running as root, as root should already have access to all files 2025-03-02 11:12:38 -08:00
Jamie Cameron
37f4fce674 Reduce complexity of post-install code by not loading any theme libraries 2025-03-02 11:00:56 -08:00
Jamie Cameron
f6fe748647 Simplify and clean up code 2025-03-02 10:54:00 -08:00
Jamie Cameron
576fef7c76 Clean up any write_file values with a newline in them 2025-03-01 18:01:59 -08:00
Jamie Cameron
cc908e5336 Merge branch 'master' of github.com:webmin/webmin 2025-03-01 17:44:12 -08:00
Jamie Cameron
cd84d0e74c Make variable local 2025-03-01 17:44:04 -08:00
Ilia Ross
b691873b5a 2.302 2025-03-01 12:41:47 +02:00
Jamie Cameron
26a256b5bc Merge branch 'master' of github.com:webmin/webmin 2025-02-28 10:24:45 -08:00
Jamie Cameron
0786538434 Remove obsolete script 2025-02-28 10:24:38 -08:00
Ilia Ross
f6e1eca6fc Fix to simplify clearing known IPs 2025-02-28 11:23:05 +02:00
Jamie Cameron
72d16272c7 Merge pull request #2426 from webmin/dev/noacl
Add `noacl` support
2025-02-27 17:04:22 -08:00
Ilia Ross
948d3e5a2a Add ability to preserve allow/deny IPs #2427 2025-02-27 23:50:43 +02:00
Ilia Ross
6d10d5aa55 Update translations 2025-02-27 13:56:29 +02:00
Ilia Ross
1cef7128d1 Fix to improve wording when applying network 2025-02-27 13:54:39 +02:00
Jamie Cameron
26f3a2997d Merge branch 'master' of github.com:webmin/webmin 2025-02-26 21:33:55 -08:00
Jamie Cameron
773011e783 Preserve comments when editing an environment file
https://github.com/webmin/webmin/issues/2424
2025-02-26 21:33:45 -08:00
565 changed files with 6390 additions and 3396 deletions

View File

@@ -7,7 +7,6 @@ on:
release:
types:
- published
- edited
jobs:
build:

View File

@@ -1,5 +1,47 @@
## Changelog
#### 2.400 (May 25, 2025)
* Add built-in support for forgotten password recovery
* Add support for SSL certificates and DNS over TLS in the BIND module
* Add support to configure listen for any type of address in Dovecot module
* Add ability to manage available PHP packages directly from PHP Configuration module
* Add ability to configure and show proper branding logo on the login page
* Add display of the PHP binary and its version in the PHP Configuration module
* Add improvements to MySQL/MariaDB module when editing users and privileges
* Add support for AxoSyslog in System Logs NG module
* Add TOML as editable format in the File Manager module
* Add support for template variables in help pages
* Add support for enabling gender-neutral translations if supported by the language
* Improve security of single-use login links
* Fix to check if local version of `mysqldump` supports `--set-gtid-purged` flag
* Fix to respect option to copy new key and certificate to Webmin in the SSL Encryption module
* Fix to use new API for auxiliary remote QR code generation
* Fix to show human-readable timestamps for kernel log in the System Logs module
* Fix to respect reverse order flag in the System Logs module
* Fix to prefer JSON::XS over JSON::PP if available for better performance
* Fix bugs with IPv6 interface creation on systems using Network Manager
* Fix to address the security issue in the System Documentation module
* Fix to use fast PRC mode by default in the Webmin Servers Index module
* Fix Fail2Ban version detection
* Fix to follow German translation rules that most people already accept
* Fix to correctly read EOL cache data
#### 2.303 (March 14, 2025)
* Fix permissions error when attempting to open a temp file for writing
* Fix Network Configuration module to use `ip` command instead of `ifconfig` on Debian systems
* Fix to correctly save IPv6 nameservers in Network Configuration module
* Fix to run `man` as `nobody` to prevent section param misuse in System Documentation module
* Add support for Sendmail hash files ending with `.cdb`
* Update German translations
#### 2.302 (March 3, 2025)
* Add ability to preserve allow/deny IPs in Webmin Configuration module #2427
* Add enhancements to module config saving to ensure reliability under all conditions
* Fix to improve wording when applying network in Network Configuration module
* Fix regression in MySQL/MariaDB database user permission assignment
* Fix to clean up old code
* Update German translations
#### 2.301 (February 16, 2025)
* Fix to check correctly if ProFTPD is installed #2410
* Fix to properly escape HTML in date fields

File diff suppressed because one or more lines are too long

View File

@@ -88,6 +88,7 @@ while(my $l = <$fh>) {
$user{'modules'} = $acl{$user[0]};
$user{'lang'} = $gconfig{"lang_$user[0]"};
$user{'langauto'} = $gconfig{"langauto_$user[0]"};
$user{'langneutral'} = $gconfig{"langneutral_$user[0]"};
$user{'locale'} = $gconfig{"locale_$user[0]"};
$user{'dateformat'} = $gconfig{"dateformat_$user[0]"};
$user{'notabs'} = $gconfig{"notabs_$user[0]"};
@@ -104,6 +105,7 @@ while(my $l = <$fh>) {
[ split(/\s+/, $gconfig{"ownmods_$user[0]"} || "") ];
$user{'logouttime'} = $logout{$user[0]};
$user{'real'} = $gconfig{"realname_$user[0]"};
$user{'email'} = $user[14];
push(@rv, \%user);
}
}
@@ -482,7 +484,8 @@ else {
($user->{'temppass'} || ""),":",
($user->{'twofactor_provider'} || ""),":",
($user->{'twofactor_id'} || ""),":",
($user->{'twofactor_apikey'} || ""),
($user->{'twofactor_apikey'} || ""),":",
($user->{'email'} || ""),
"\n");
&close_tempfile($fh);
&unlock_file($miniserv{'userfile'});
@@ -625,7 +628,8 @@ else {
delete($miniserv{"preroot_".$username});
if ($user->{'theme'}) {
$miniserv{"preroot_".$user->{'name'}} =
$user->{'theme'}.($user->{'overlay'} ? " ".$user->{'overlay'} : "");
$user->{'theme'}.($user->{'overlay'} ?
" ".$user->{'overlay'} : "");
}
elsif (defined($user->{'theme'})) {
$miniserv{"preroot_".$user->{'name'}} = "";
@@ -672,7 +676,8 @@ else {
$user->{'temppass'},":",
$user->{'twofactor_provider'},":",
$user->{'twofactor_id'},":",
$user->{'twofactor_apikey'},
$user->{'twofactor_apikey'},":",
$user->{'email'},
"\n");
}
else {
@@ -703,11 +708,17 @@ else {
delete($gconfig{"lang_".$username});
$gconfig{"lang_".$user->{'name'}} = $user->{'lang'} if ($user->{'lang'});
delete($gconfig{"langauto_".$username});
$gconfig{"langauto_".$user->{'name'}} = $user->{'langauto'} if (defined($user->{'langauto'}));
$gconfig{"langauto_".$user->{'name'}} = $user->{'langauto'}
if (defined($user->{'langauto'}));
delete($gconfig{"langneutral_".$username});
$gconfig{"langneutral_".$user->{'name'}} = $user->{'langneutral'}
if (defined($user->{'langneutral'}));
delete($gconfig{"locale_".$username});
$gconfig{"locale_".$user->{'name'}} = $user->{'locale'} if (defined($user->{'locale'}));
$gconfig{"locale_".$user->{'name'}} = $user->{'locale'}
if (defined($user->{'locale'}));
delete($gconfig{"dateformat_".$username});
$gconfig{"dateformat_".$user->{'name'}} = $user->{'dateformat'} if (defined($user->{'dateformat'}));
$gconfig{"dateformat_".$user->{'name'}} = $user->{'dateformat'}
if (defined($user->{'dateformat'}));
delete($gconfig{"notabs_".$username});
$gconfig{"notabs_".$user->{'name'}} = $user->{'notabs'}
if ($user->{'notabs'});
@@ -720,7 +731,8 @@ else {
delete($gconfig{"theme_".$username});
if ($user->{'theme'}) {
$gconfig{"theme_".$user->{'name'}} =
$user->{'theme'}.($user->{'overlay'} ? " ".$user->{'overlay'} : "");
$user->{'theme'}.($user->{'overlay'} ?
" ".$user->{'overlay'} : "");
}
elsif (defined($user->{'theme'})) {
$gconfig{"theme_".$user->{'name'}} = '';
@@ -1408,20 +1420,20 @@ foreach my $s (keys %sessiondb) {
dbmclose(%sessiondb);
}
=head2 create_session_user(\%miniserv, user)
=head2 create_session_user(\%miniserv, user, [lifetime])
Creates a new session ID that's already logged in as the given user
=cut
sub create_session_user
{
my ($miniserv, $username) = @_;
my ($miniserv, $username, $lifetime) = @_;
return undef if (&is_readonly_mode());
&open_session_db($miniserv);
my $sid = &generate_random_session_id();
return undef if (!$sid);
my $t = time();
$sessiondb{$sid} = "$username $t 127.0.0.1";
$sessiondb{$sid} = "$username $t 127.0.0.1".($lifetime ? " ".$lifetime : "");
dbmclose(%sessiondb);
return $sid;
}
@@ -1714,7 +1726,7 @@ elsif ($mode == 2) {
}
else {
# Try detecting system default first
if (&foreign_available('useradmin')) {
if (&foreign_installed('useradmin')) {
&foreign_require('useradmin');
return &useradmin::encrypt_password($pass, $salt, 1);
}
@@ -2325,5 +2337,35 @@ if (!$sid) {
return $sid eq 'bad' ? undef : $sid;
}
# generate_random_id()
# Generate an ID string that can be used for a password reset link
sub generate_random_id
{
if (open(my $RANDOM, "</dev/urandom")) {
my $sid;
my $tmpsid;
if (read($RANDOM, $tmpsid, 16) == 16) {
$sid = lc(unpack('h*',$tmpsid));
}
close($RANDOM);
return $sid;
}
return undef;
}
# obsfucate_email(email)
# Convert an email like foo@bar.com to f**@b**.com
sub obsfucate_email
{
my ($email) = @_;
my ($mailbox, $dom) = split(/\@/, $email);
$mailbox = substr($mailbox, 0, 1) . ("*" x (length($mailbox)-1));
my @doms;
foreach my $d (split(/\./, $dom)) {
push(@doms, substr($d, 0, 1) . ("*" x (length($d)-1)));
}
return $mailbox."\@".join(".", @doms);
}
1;

View File

@@ -159,6 +159,10 @@ print &ui_table_row($text{'edit_pass'},
print &ui_table_row($text{'edit_real'},
&ui_textbox("real", $user{'real'}, 60));
# Contact email for recovery
print &ui_table_row($text{'edit_email'},
&ui_textbox("email", $user{'email'}, 60));
# Storage type
if ($in{'user'}) {
print &ui_table_row($text{'edit_proto'},
@@ -457,6 +461,9 @@ if ($in{'user'}) {
if ($access{'switch'} && $main::session_id && $in{'user'} ne $remote_user) {
push(@buts, [ "but_switch", $text{'edit_switch'} ]);
}
if ($gconfig{'forgot_pass'}) {
push(@buts, [ "but_forgot", $text{'edit_forgot'} ]);
}
if ($access{'delete'}) {
push(@buts, [ "but_delete", $text{'delete'} ]);
}

37
acl/forgot_form.cgi Executable file
View File

@@ -0,0 +1,37 @@
#!/usr/local/bin/perl
# Show form for force sending a password reset link
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text);
&foreign_require("webmin");
&error_setup($text{'forgot_err'});
&ReadParse();
&can_edit_user($in{'user'}) || &error($text{'edit_euser'});
my $u = &get_user($in{'user'});
$u || &error($text{'edit_egone'});
&ui_print_header(undef, $text{'forgot_title'}, "");
print $text{'forgot_desc'},"<p>\n";
print &ui_form_start("forgot_send.cgi", "post");
print &ui_hidden("user_acc", $u->{'name'});
print &ui_table_start($text{'forgot_header'}, undef, 2);
print &ui_table_row($text{'forgot_user'},
$u->{'name'} eq "root"
? &ui_textbox("user", $u->{'name'}, 12)
: "<tt>".$u->{'name'}."</tt>");
print &ui_table_row($text{'forgot_email'},
&ui_opt_textbox("email", $u->{'email'}, 60,
$text{'forgot_email_def'}."<br>\n",
$text{'forgot_email_sel'}));
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'forgot_send'} ] ]);
&ui_print_footer("", $text{'index_return'});

87
acl/forgot_send.cgi Executable file
View File

@@ -0,0 +1,87 @@
#!/usr/local/bin/perl
# Actually send the password reset email
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %gconfig);
&foreign_require("webmin");
&error_setup($text{'forgot_err'});
&ReadParse();
&can_edit_user($in{'user_acc'}) || &error($text{'edit_euser'});
my $wuser = &get_user($in{'user_acc'});
$wuser || &error($text{'edit_egone'});
# Validate inputs
$in{'email_def'} || $in{'email'} =~ /^\S+\@\S+$/ ||
&error($text{'forgot_eemail'});
my $unixuser;
if ($in{'user'} ne $in{'user_acc'}) {
&foreign_require("useradmin");
my ($uinfo) = grep { $_->{'user'} eq $in{'user'} }
&useradmin::list_users();
$uinfo || &error($text{'forgot_eunix'});
my $sudo = &useradmin::can_user_sudo_root($in{'user'});
&error($text{'forgot_enosudo'}) if ($sudo < 0);
&error($text{'forgot_ecansudo'}) if (!$sudo);
$unixuser = $in{'user'};
}
# Generate a random ID and tracking file for this password reset
my $now = time();
my %link = ( 'id' => &generate_random_id(),
'remote' => $ENV{'REMOTE_ADDR'},
'time' => $now,
'user' => $wuser->{'name'},
'uuser' => $unixuser, );
$link{'id'} || &error($text{'forgot_erandom'});
&make_dir($main::forgot_password_link_dir, 0700);
my $linkfile = $main::forgot_password_link_dir."/".$link{'id'};
&lock_file($linkfile);
&write_file($linkfile, \%link);
&unlock_file($linkfile);
my $baseurl = &get_webmin_email_url();
my $url = $baseurl.'/forgot.cgi?id='.&urlize($link{'id'});
&load_theme_library();
$url = &theme_forgot_url($baseurl, $link{'id'}, $unixuser || $link{'user'})
if (defined(&theme_forgot_url));
&ui_print_header(undef, $text{'forgot_title'}, "");
my $username = $unixuser || $wuser->{'name'};
if ($in{'email_def'}) {
# Just show the link
my $timeout = $gconfig{'passreset_timeout'} || 15;
print "<p>",&text('forgot_link', $username, $timeout),"</p>\n";
print "<p><tt>".$url."</tt></p>\n";
&webmin_log("forgot", "link", undef,
{ 'user' => $username,
'unix' => $unixuser ? 1 : 0 });
}
else {
# Construct and send the email
&foreign_require("mailboxes");
my $msg = &text('forgot_adminmsg', $wuser->{'name'}, $url, $baseurl);
$msg =~ s/\\n/\n/g;
$msg = join("\n", &mailboxes::wrap_lines($msg, 75))."\n";
my $subject = &text('forgot_subject', $username);
print &text('forgot_sending',
&html_escape($in{'email'}), $username),"<br>\n";
&mailboxes::send_text_mail(&mailboxes::get_from_address(),
$in{'email'},
undef,
$subject,
$msg);
print $text{'forgot_sent'},"<p>\n";
&webmin_log("forgot", "admin", undef,
{ 'user' => $username,
'unix' => $unixuser ? 1 : 0,
'email' => $in{'email'} });
}
&ui_print_footer("", $text{'index_return'});

View File

@@ -1 +1 @@
<header>IP-Zugriffskontrolle</header>Die IP-Zugriffskontrolle für Benutzer:innen funktioniert auf die gleiche Weise wie die globale IP-Zugriffskontrolle im Webmin-Konfigurationsmodul. Nur wenn ein:e Benutzer:in die globalen Regeln passiert, werden die hier definierten Einschränkungen ebenfalls überprüft.<p><footer>
<header>IP-Zugriffskontrolle</header>Die IP-Zugriffskontrolle für Benutzer funktioniert auf die gleiche Weise wie die globale IP-Zugriffskontrolle im Webmin-Konfigurationsmodul. Nur wenn ein Benutzer die globalen Regeln passiert, werden die hier definierten Einschränkungen ebenfalls überprüft.<p><footer>

View File

@@ -0,0 +1 @@
<header>IP-Zugriffskontrolle</header>Die IP-Zugriffskontrolle für Benutzer:innen funktioniert auf die gleiche Weise wie die globale IP-Zugriffskontrolle im Webmin-Konfigurationsmodul. Nur wenn ein:e Benutzer:in die globalen Regeln passiert, werden die hier definierten Einschränkungen ebenfalls überprüft.<p><footer>

View File

@@ -280,16 +280,18 @@ print &ui_links_row(\@rowlinks);
}
# user_link(user, cgi, param)
# Return HTML for a link to edit one user
sub user_link
{
my $lck = $_[0]->{'pass'} =~ /^\!/ ? 1 : 0;
my $ro = $_[0]->{'readonly'};
return &ui_checkbox("d", $_[0]->{'name'}, "", 0).
my ($user, $cgi, $param) = @_;
my $lck = $user->{'pass'} =~ /^\!/ ? 1 : 0;
my $ro = $user->{'readonly'};
return &ui_checkbox("d", $user->{'name'}, "", 0).
($lck ? "<i>" : "").
($ro ? "<b>" : "").
ui_link("$_[1]?$_[2]=".&urlize($_[0]->{'name'}),
$_[0]->{'name'}).
($_[0]->{'twofactor_id'} ? "*" : "").
&ui_link("$cgi?$param=".&urlize($user->{'name'}),
$user->{'name'}).
($user->{'twofactor_id'} ? "*" : "").
($ro ? "</b>" : "").
($lck ? "</i>" : "");
}

View File

@@ -1,41 +1,42 @@
index_title=Webmin-Benutzer
index_user=Benutzer
index_modules=Module
index_create=Einen neuen privilegierten Benutzer erstellen.
index_screate=Einen neuen sicheren Benutzer erstellen.
index_convert=Unix-zu-Webmin-Benutzer konvertieren
index_create=Neuen privilegierten Benutzer erstellen.
index_screate=Neuen sicheren Benutzer erstellen.
index_convert=Unix-Benutzer in Webmin-Benutzer konvertieren
index_cert=SSL-Zertifikat anfordern
index_twofactor=Zwei-Faktor-Authentifizierung
index_certmsg=Klicken Sie auf diese Schaltfläche, um ein SSL-Zertifikat anzufordern, das Ihnen ermöglicht, sich sicher bei Webmin anzumelden, ohne einen Benutzernamen und ein Passwort eingeben zu müssen.
index_certmsg=Klicken Sie auf diese Schaltfläche, um ein SSL-Zertifikat anzufordern, das eine sichere Anmeldung bei Webmin ohne Benutzername und Passwort ermöglicht.
index_return=Benutzerliste
index_none=Keine
index_edit=Modul-ACL bearbeiten:
index_edit=Modul-ACL bearbeiten :
index_global=Globale ACL
index_users=Webmin-Benutzer
index_groups=Webmin-Gruppen
index_group=Gruppe
index_nousers=Keine bearbeitbaren Webmin-Benutzer definiert.
index_nogroups=Keine Webmin-Gruppen definiert.
index_gcreate=Eine neue Webmin-Gruppe erstellen.
index_gcreate=Neue Webmin-Gruppe erstellen.
index_members=Mitglieder
index_modgroups=Module aus Gruppe $1
index_sync=Unix-Benutzersynchronisierung konfigurieren
index_modgroups=Module aus der Gruppe $1
index_sync=Synchronisation von Unix-Benutzer konfigurieren
index_unix=Unix-Benutzerauthentifizierung konfigurieren
index_sessions=Anmeldesitzungen anzeigen
index_rbac=RBAC einrichten
index_delete=Ausgewählte löschen
index_joingroup=Zur Gruppe hinzufügen:
index_eulist=Fehler beim Auflisten der Benutzer: $1
index_eglist=Fehler beim Auflisten der Gruppen: $1
index_eulist=Fehler beim Auflisten der Benutzer : $1
index_eglist=Fehler beim Auflisten der Gruppen : $1
edit_title=Webmin-Benutzer bearbeiten
edit_title2=Webmin-Benutzer erstellen
edit_title3=Neuen sicheren Webmin-Benutzer erstellen
edit_readonly=Dieser Webmin-Benutzer sollte nicht bearbeitet werden, da er vom $1-Modul verwaltet wird. <a href='$2'>Klicken Sie hier</a>, um diese Warnung zu umgehen und den Benutzer dennoch zu bearbeiten beachten Sie jedoch, dass alle manuellen Änderungen überschrieben werden können!
edit_title3=Sicheren Webmin-Benutzer erstellen
edit_readonly=Dieser Webmin-Benutzer sollte nicht bearbeitet werden, da er:sie vom Modul $1 verwaltet wird. <a href='$2'>Hier klicken</a>, um diese Warnung zu umgehen und den:die Benutzer dennoch zu bearbeiten beachten Sie jedoch, dass manuelle Änderungen überschrieben werden können!
edit_rights=Zugriffsrechte für Webmin-Benutzer
edit_user=Benutzername
edit_cloneof=Webmin-Benutzer klonen
edit_cloneof=Webmin-Benutzer wird geklont
edit_real=Echter Name
edit_email=Kontakt-E-Mail
edit_group=Mitglied der Gruppe
edit_pass=Passwort
edit_same=Gleich wie Unix
@@ -43,152 +44,154 @@ edit_lock=Kein Passwort akzeptiert
edit_pam=PAM-Authentifizierung
edit_unix=Unix-Authentifizierung
edit_extauth=Externes Authentifizierungsprogramm
edit_dont=Nicht ändern
edit_set=Setze auf
edit_dont=Keine Änderung
edit_set=Setzen auf
edit_passlocked=Passwort wurde seit $1 Tagen nicht geändert Konto gesperrt!
edit_passmax=Passwort wurde seit $1 Tagen nicht geändert muss beim nächsten Login geändert werden
edit_passold=Passwort wurde zuletzt vor $1 Tagen geändert
edit_passold=Passwort zuletzt vor $1 Tagen geändert
edit_passtoday=Passwort wurde vor weniger als einem Tag geändert
edit_modules=Module
edit_clone=Klonen
edit_twofactor=Art der Zwei-Faktor-Authentifizierung
edit_twofactorprov=Verwenden von Anbieter $1 mit ID $2
edit_twofactorcancel=Zwei-Faktor-Authentifizierungsanforderung entfernen
edit_twofactornone=Keine eingerichtet
edit_twofactoradd=Zwei-Faktor-Authentifizierung für Benutzer aktivieren
edit_twofactor=Zwei-Faktor-Authentifizierungstyp
edit_twofactorprov=Verwendet Anbieter $1 mit ID $2
edit_twofactorcancel=Pflicht zur Zwei-Faktor-Authentifizierung entfernen
edit_twofactornone=Noch nicht eingerichtet
edit_twofactoradd=Zwei-Faktor für Benutzer aktivieren
edit_lang=Sprache
edit_locale=Gebietsschema
edit_notabs=Module kategorisieren?
edit_logout=Abmeldezeit bei Inaktivität
edit_logout=Zeit bis automatische Abmeldung
edit_mins=Minuten
edit_chars=Buchstaben
edit_minsize=Minimale Passwortlänge
edit_nochange=Änderung des Passworts erzwingen?
edit_nochange=Passwortwechsel-Tage erzwingen?
edit_cert=SSL-Zertifikatsname
edit_none=None
edit_ips=IP-Zugriffssteuerung
edit_all=Von allen Adressen erlauben
edit_allow=Nur von aufgelisteten Adressen erlauben
edit_deny=Von aufgelisteten Adressen verweigern
edit_ipdesc=Die IP-Zugriffssteuerung für Benutzer funktioniert genauso wie die globale IP-Zugriffssteuerung im Webmin-Konfigurationsmodul. Nur wenn ein Benutzer die globalen Kontrollen besteht, werden auch die hier angegebenen überprüft.
edit_skill=Fähigkeitsstufe
edit_risk=Risikoebene
edit_risk_high=Superbenutzer
edit_none=Keine
edit_ips=IP-Zugriffskontrolle
edit_all=Zugriff von allen Adressen erlauben
edit_allow=Nur Zugriff von gelisteten Adressen erlauben
edit_deny=Zugriff von gelisteten Adressen verweigern
edit_ipdesc=Die IP-Zugriffskontrolle für Benutzer funktioniert wie die globale IP-Zugriffskontrolle im Webmin-Konfigurationsmodul. Nur wenn globale Regeln bestanden werden, gelten die hier definierten zusätzlich.
edit_skill=Kompetenzstufe
edit_risk=Risikostufe
edit_risk_high=Superuser
edit_risk_medium=Admin-Benutzer
edit_risk_low=Normaler Benutzer
edit_groupmods=(Zusätzlich zu Modulen aus der Gruppe)
edit_euser=Sie dürfen diesen Benutzer nicht bearbeiten
edit_groupmods=(Zusätzlich zu den Modulen aus der Gruppe)
edit_euser=Sie dürfen diesen:die Benutzer nicht bearbeiten
edit_egone=Ausgewählter Benutzer existiert nicht mehr!
edit_ecreate=Sie dürfen keine Benutzer erstellen
edit_theme=Persönliches UI-Theme
edit_themeglobal=Von Webmin-Konfiguration
edit_themeglobal=Aus Webmin-Konfiguration
edit_themedef=Legacy-Theme
edit_overlay=Persönliches Theme-Overlay
edit_overlayglobal=None Standard-Theme verwenden
edit_overlayglobal=Keines Theme-Standardeinstellungen verwenden
edit_log=Protokolle anzeigen
edit_selall=Alle auswählen
edit_invert=Auswahl umkehren
edit_hide=Ungenutzte ausblenden
edit_switch=Zum Benutzer wechseln
edit_hide=Nicht verwendete ausblenden
edit_switch=Zu Benutzer wechseln
edit_forgot=Link zum Zurücksetzen des Passworts senden
edit_return=Webmin-Benutzer
edit_return2=Webmin-Gruppe
edit_rbacdeny=RBAC-Zugriffsmodus
edit_rbacdeny0=RBAC steuert nur ausgewählte Modul-ACLs
edit_rbacdeny1=RBAC steuert alle Module und ACLs
edit_global=Berechtigungen für alle Module
edit_templock=Vorübergehend gesperrt
edit_temppass=Änderung beim nächsten Login erzwingen
edit_templock=Temporär gesperrt
edit_temppass=Änderung des Passworts beim nächsten Login erzwingen
edit_days=Erlaubte Wochentage
edit_alldays=Jeden Tag
edit_alldays=Jeder Tag
edit_seldays=Nur ausgewählte Tage ..
edit_hours=Erlaubte Tageszeiten
edit_hours=Erlaubte Uhrzeiten
edit_allhours=Jederzeit
edit_selhours=Von $1:$2 bis $3:$4
edit_ui=Benutzeroberflächenoptionen
edit_security=Sicherheits- und Einschränkungsoptionen
edit_security=Sicherheits- und Limit-Optionen
edit_mods=Verfügbare Webmin-Module
edit_modsg=Verfügbare Webmin-Module (neben denen aus der Gruppe)
edit_modsg=Verfügbare Webmin-Module (zusätzlich zu den aus der Gruppe)
edit_proto=Speichertyp
edit_proto_mysql=MySQL-Datenbank
edit_proto_postgresql=PostgreSQL-Datenbank
edit_proto_ldap=LDAP-Server
edit_proto_=Lokale Dateien
edit_safe=Privilegienstufe
edit_safe0=Uneingeschränkt
edit_safe=Berechtigungslevel
edit_safe0=Unbeschränkt
edit_safe1=Nur sichere Module
edit_unsafe=Auf uneingeschränkt zurücksetzen
edit_unsafe=Zurücksetzen auf unbeschränkt
save_err=Fehler beim Speichern des Benutzers
save_err=Speichern des:der Benutzer fehlgeschlagen
save_ename='$1' ist kein gültiger Benutzername
save_eunixname=Der Benutzername '$1' ist kein Unix-Benutzer und kann daher im sicheren Modus nicht verwendet werden
save_eunixname=Der Benutzername '$1' ist kein Unix-Benutzer und kann daher nicht im sicheren Modus verwendet werden
save_enamewebmin=Der Benutzername 'webmin' ist für interne Zwecke reserviert
save_edup=Der Benutzername '$1' wird bereits verwendet
save_eoverlay=Ein Theme-Overlay kann nur ausgewählt werden, wenn ein Theme vorhanden ist
save_edeny=Sie können sich selbst keinen Zugriff auf das Webmin Users-Modul verweigern
save_eos=Die Option "Gleich wie Unix" für Passwörter wird von Ihrem Betriebssystem nicht unterstützt.
save_emd5=Die Option "Gleich wie Unix" für Passwörter kann auf Systemen mit MD5-Verschlüsselung nicht verwendet werden
save_eoverlay=Ein Theme-Overlay kann nur ausgewählt werden, wenn auch ein Theme festgelegt wurde
save_edeny=Sie können sich selbst keinen Zugriff auf das Modul „Webmin-Benutzer“ verweigern
save_eos=Die Option Gleich wie Unix“-Passwort wird von Ihrem Betriebssystem nicht unterstützt
save_emd5=Die Option Gleich wie Unix“-Passwort kann auf Systemen mit MD5-Verschlüsselung nicht verwendet werden
save_eunix=Der Unix-Benutzer '$1' existiert nicht
save_emod=Sie können keinen Zugriff auf das Modul '$1' gewähren
save_emod=Zugriff auf Modul '$1' kann nicht gewährt werden
save_ecreate=Sie dürfen keine Benutzer erstellen
save_euser=Sie dürfen diesen Benutzer nicht bearbeiten
save_ecolon=Passwörter dürfen nicht das : Zeichen enthalten
save_epass=Passwort ist nicht gültig: $1
save_euser=Sie dürfen diesen:die Benutzer nicht bearbeiten
save_ecolon=Passwörter dürfen das Zeichen „:“ nicht enthalten
save_epass=Passwort ist ungültig : $1
save_eself=Ihre aktuelle IP-Adresse ($1) würde abgelehnt
save_epam=PAM-Authentifizierung ist nicht verfügbar, da das Perl-Modul <tt>Authen::PAM</tt> entweder nicht installiert oder nicht richtig funktioniert.
save_epam2=Sie können das Perl-Module-Modul von Webmin verwenden, um <a href='$1'>Authen::PAM herunterzuladen und zu installieren</a>.
save_egroup=Sie dürfen nicht der Gruppe zuweisen
save_epam=PAM-Authentifizierung ist nicht verfügbar, da das Perl-Modul <tt>Authen::PAM</tt> nicht installiert oder nicht korrekt funktioniert
save_epam2=Sie können das Perl-Modul <tt>Authen::PAM</tt> jetzt über das Webmin-Modul „Perl-Module“ <a href='$1'>herunterladen und installieren</a>
save_egroup=Sie dürfen diese Gruppe nicht zuweisen
save_enone=Keine Adressen eingegeben
save_enet='$1' ist keine gültige Netzwerkadresse
save_emask='$1' ist keine gültige Netzmaske
save_eip='$1' ist keine vollständige IP- oder Netzwerkadresse
save_ehost=Fehler beim Finden der IP-Adresse für '$1'
save_elogouttime=Fehlende oder nicht-numerische Abmeldezeit bei Inaktivität
save_eminsize=Fehlende oder nicht-numerische minimale Passwortlänge
save_edays=Keine Tage ausgewählt
save_ehours=Fehlende oder ungültige Zeiten
save_ehost=IP-Adresse für '$1' konnte nicht ermittelt werden
save_elogouttime=Fehlende oder ungültige Inaktivitäts-Logout-Zeit
save_eminsize=Fehlende oder ungültige minimale Passwortlänge
save_edays=Keine erlaubten Tage ausgewählt
save_ehours=Fehlende oder ungültige erlaubte Zeiten
save_ehours2=Startzeit muss vor Endzeit liegen
save_etemp=Die Option, das Passwort beim nächsten Login zu ändern, kann nur verwendet werden, wenn <a href='$1'>Benutzer aufgefordert werden, neue Passwörter einzugeben</a> aktiviert ist
save_etemp=Die Option zur Erzwingung des Passwortwechsels beim nächsten Login kann nicht verwendet werden, solange die <a href='$1'>Eingabeaufforderung für neue Passwörter</a> nicht aktiviert ist
save_eemail=E-Mail-Adresse darf das Zeichen „:“ nicht enthalten
delete_err=Fehler beim Löschen des Benutzers
delete_err=Benutzer konnte nicht gelöscht werden
delete_eself=Sie können sich nicht selbst löschen
delete_ecannot=Sie dürfen keine Benutzer löschen
delete_euser=Sie dürfen diesen Benutzer nicht löschen
delete_euser=Sie dürfen diesen:die Benutzer nicht löschen
delete_eanonuser=Dieser Benutzer wird für den anonymen Modulzugriff verwendet
cert_title=Zertifikat anfordern
cert_issue=Zertifikat ausstellen
cert_header=Details des neuen Zertifikats
cert_msg=Dieses Formular ermöglicht Ihnen die Anforderung eines SSL-Client-Zertifikats, das in Zukunft verwendet wird, um Ihnen Zugang zu Webmin zu gewähren, anstelle Ihres Benutzernamens und Passworts. Dies ist sicherer, aber da die Authentifizierung automatisch erfolgt, können Sie beim Verwenden des Zertifikats nicht zu einem anderen Benutzer wechseln.
cert_ebrowser=Webmin weiß nicht, wie man Client-Zertifikate für Ihren Browser ( $1 ) ausstellt
cert_msg=Mit diesem Formular können Sie ein SSL-Client-Zertifikat anfordern, das künftig für den Zugang zu Webmin anstelle von Benutzername und Passwort verwendet wird. Dies ist sicherer, aber da die Authentifizierung automatisch erfolgt, können Sie bei Verwendung des Zertifikats nicht zu einem anderen Benutzer wechseln.
cert_ebrowser=Webmin weiß nicht, wie Client-Zertifikate für Ihren Browser ($1) ausgestellt werden können
cert_cn=Ihr Name
cert_email=E-Mail-Adresse
cert_ou=Abteilung
cert_o=Organisation
cert_sp=Bundesland
cert_c=Ländercode
cert_key=Schlüssellänge
cert_key=Schlüsselgröße
cert_done=Ihr Zertifikat für $1 wurde erfolgreich erstellt.
cert_pickup=<a href='$1'>Klicken Sie hier, um Ihr Zertifikat abzuholen und in Ihrem Browser zu installieren</a>
cert_install=Installieren Sie Ihr Zertifikat im Browser
cert_ekey=Ein neuer SSL-Schlüssel wurde von Ihrem Browser nicht übermittelt - möglicherweise unterstützt er keine SSL-Client-Zertifikate.
cert_eca=Fehler beim Einrichten der Zertifizierungsstelle: $1
cert_already=Warnung - Sie verwenden bereits das Zertifikat $1.
cert_etempdir=Ungültige Zertifikatsdatei
cert_pickup=<a href='$1'>Hier klicken, um Ihr Zertifikat abzuholen und im Browser zu installieren</a>
cert_install=Zertifikat in Browser installieren
cert_ekey=Ihr Browser hat keinen neuen SSL-Schlüssel übermittelt möglicherweise unterstützt er keine SSL-Client-Zertifikate
cert_eca=Zertifizierungsstelle konnte nicht eingerichtet werden : $1
cert_already=Warnung Sie verwenden bereits das Zertifikat $1.
cert_etempdir=Ungültige Zertifikatdatei
acl_title=Modul-Zugriffskontrolle
acl_title2=Für $1 in $2
acl_title3=Für Gruppe $1 in $2
acl_options=Zugriffskontrolloptionen für $1
acl_config=Kann die Modulkonfiguration bearbeiten?
acl_reset=Auf Vollzugriff zurücksetzen
acl_rbac=Zugriffskontrolleinstellungen von RBAC übernehmen?
acl_rbacyes=Ja (überschreibt die untenstehenden Einstellungen)
acl_options=$1-Zugriffsoptionen
acl_config=Kann Modulkonfiguration bearbeiten?
acl_reset=Auf vollen Zugriff zurücksetzen
acl_rbac=Zugriffssteuerungseinstellungen aus RBAC übernehmen?
acl_rbacyes=Ja (überschreibt untenstehende Einstellungen)
acl_uall=Alle Benutzer
acl_uthis=Dieser Benutzer
acl_usel=Ausgewählte Benutzer ..
acl_gr=Mitglieder von $1
acl_users=Benutzer, die bearbeitet werden können
acl_users=Bearbeitbare Benutzer
acl_mods=Kann Zugriff gewähren auf
acl_all=Alle Module
acl_own=Nur eigene Module
@@ -198,42 +201,42 @@ acl_delete=Kann Benutzer löschen?
acl_rename=Kann Benutzer umbenennen?
acl_acl=Kann Modul-Zugriffskontrolle bearbeiten?
acl_lang=Kann Sprache ändern?
acl_locale=Kann Regionaleinstellungen ändern?
acl_locale=Kann Gebietsschema ändern?
acl_chcert=Kann SSL-Zertifikatsnamen ändern?
acl_euser=Sie dürfen die ACL für diesen Benutzer nicht bearbeiten
acl_egroup=Sie dürfen die Gruppen-ACLs nicht bearbeiten
acl_emod=Sie dürfen die ACL für dieses Modul nicht bearbeiten
acl_euser=Sie dürfen die ACL dieses:dieser Benutzer nicht bearbeiten
acl_egroup=Sie dürfen keine Gruppen-ACLs bearbeiten
acl_emod=Sie dürfen die ACL dieses Moduls nicht bearbeiten
acl_others=Kann nicht zugängliche Module sehen?
acl_cert=Kann Zertifikate anfordern?
acl_err=Fehler beim Speichern der Zugriffskontrolle
acl_err=Speichern der Zugriffskontrolle fehlgeschlagen
acl_groups=Kann Gruppen bearbeiten?
acl_gassign=Kann Benutzer Gruppen zuweisen
acl_gall=Alle Gruppen
acl_gsel=Ausgewählt ..
acl_gsel=Ausgewählte ..
acl_gnone=Keine
acl_perms=Neu erstellte Benutzer erhalten
acl_perms_1=Gleiche Modul-Zugriffskontrolle wie Ersteller
acl_perms_0=Standard (uneingeschränkte) Modul-Zugriffskontrolle
acl_sync=Kann Benutzersynchronisierung konfigurieren?
acl_perms_1=Gleiche Modul-ACL wie Ersteller
acl_perms_0=Standard (unbeschränkte) Modul-ACL
acl_sync=Kann Benutzersynchronisation konfigurieren?
acl_unix=Kann Unix-Authentifizierung konfigurieren?
acl_sessions=Kann Anmeldesitzungen anzeigen und abbrechen?
acl_cats=Kann Kategorisierung ändern?
acl_theme=Kann persönliches Theme ändern?
acl_ips=Kann IP-Zugriffskontrolle ändern?
acl_switch=Kann zu anderen Benutzern wechseln?
acl_switch=Kann zu anderen Benutzer wechseln?
acl_times=Kann erlaubte Anmeldezeiten ändern?
acl_pass=Kann Passwortbeschränkungen ändern?
acl_sql=Kann Benutzer- und Gruppendatenbank konfigurieren?
log_modify=Webmin-Benutzer $1 geändert
log_modify=Webmin-Benutzer $1 bearbeitet
log_rename=Webmin-Benutzer $1 in $2 umbenannt
log_create=Webmin-Benutzer $1 erstellt
log_clone=Webmin-Benutzer $1 nach $2 kopiert
log_clone=Webmin-Benutzer $1 zu $2 geklont
log_delete=Webmin-Benutzer $1 gelöscht
log_acl=Zugriff für $1 in $2 aktualisiert
log_reset=Zugriff für $1 in $2 zurückgesetzt
log_cert=Zertifikat für Benutzer $1 ausgestellt
log_modify_g=Webmin-Gruppe $1 geändert
log_modify_g=Webmin-Gruppe $1 bearbeitet
log_rename_g=Webmin-Gruppe $1 in $2 umbenannt
log_create_g=Webmin-Gruppe $1 erstellt
log_delete_g=Webmin-Gruppe $1 gelöscht
@@ -242,199 +245,202 @@ log_delete_users=$1 Webmin-Benutzer gelöscht
log_delete_groups=$1 Webmin-Gruppen gelöscht
log_joingroup=$1 Webmin-Benutzer zur Gruppe $2 hinzugefügt
log_pass=Passwortbeschränkungen geändert
log_unix=Unix-Authentifizierung geändert
log_sync=Unix-Benutzersynchronisierung geändert
log_unix=Unix-Benutzerauthentifizierung geändert
log_sync=Unix-Benutzersynchronisation geändert
log_sql=Benutzer- und Gruppendatenbank geändert
log_twofactor=Benutzer $1 bei Zwei-Faktor-Anbieter $2 registriert
log_onefactor=Benutzer $1 von Zwei-Faktor-Authentifizierung abgemeldet
log_onefactor=Zwei-Faktor-Authentifizierung für Benutzer $1 deaktiviert
log_forgot_send=E-Mail zum Zurücksetzen des Passworts für Benutzer $1 an $2 gesendet
log_forgot_reset=Passwort für Benutzer $1 mit E-Mail $2 zurückgesetzt
log_forgot_admin=Administrator hat E-Mail zum Zurücksetzen des Passworts für Benutzer $1 an $2 gesendet
gedit_ecannot=Sie dürfen Gruppen nicht bearbeiten
gedit_ecannot=Sie dürfen keine Gruppen bearbeiten
gedit_title=Webmin-Gruppe bearbeiten
gedit_title2=Webmin-Gruppe erstellen
gedit_group=Gruppenname
gedit_rights=Webmin-Gruppen-Zugriffsrechte
gedit_rights=Zugriffsrechte der Webmin-Gruppe
gedit_modules=Module der Mitglieder
gedit_members=Mitgliedsbenutzer und -gruppen
gedit_members=Mitglieds-Benutzer und -Gruppen
gedit_desc=Gruppenbeschreibung
gedit_egone=Ausgewählte Gruppe existiert nicht mehr!
gdelete_err=Fehler beim Löschen der Gruppe
gdelete_ecannot=Sie dürfen Gruppen nicht löschen
gdelete_err=Gruppe konnte nicht gelöscht werden
gdelete_ecannot=Sie dürfen keine Gruppen löschen
gdelete_euser=Sie können Ihre eigene Gruppe nicht löschen
gdelete_esub=Gruppen mit Untergruppen können nicht gelöscht werden
gdelete_title=Gruppe löschen
gdelete_desc=Wollen Sie die Gruppe $1 und ihre Mitgliedsbenutzer $2 wirklich löschen?
gdelete_desc=Möchten Sie die Gruppe $1 und ihre Mitglieds-Benutzer $2 wirklich löschen?
gdelete_ok=Gruppe löschen
gsave_err=Fehler beim Speichern der Gruppe
gsave_err=Gruppe konnte nicht gespeichert werden
gsave_ename=Fehlender oder ungültiger Gruppenname
gsave_enamewebmin=Der Gruppenname 'webmin' ist für die interne Nutzung reserviert
gsave_enamewebmin=Der Gruppenname 'webmin' ist für interne Zwecke reserviert
gsave_edup=Gruppenname wird bereits verwendet
gsave_edesc=Ungültige Beschreibung - das Zeichen : ist nicht erlaubt
gsave_edesc=Ungültige Beschreibung das Zeichen ":" ist nicht erlaubt
convert_title=Benutzer konvertieren
convert_ecannot=Sie dürfen Unix-Benutzer nicht konvertieren
convert_nogroups=Auf Ihrem System sind keine Webmin-Gruppen definiert. Es muss mindestens eine Gruppe erstellt werden, bevor eine Konvertierung erfolgt, um Berechtigungen für die konvertierten Benutzer zu definieren.
convert_desc=Mit diesem Formular können Sie vorhandene Unix-Benutzer in Webmin-Benutzer konvertieren. Die Berechtigungen jedes neuen Webmin-Benutzers werden durch die unten ausgewählte Gruppe bestimmt.
convert_ecannot=Sie dürfen keine Unix-Benutzer konvertieren
convert_nogroups=Auf Ihrem System wurden keine Webmin-Gruppen definiert. Mindestens eine Gruppe muss erstellt werden, bevor Benutzer konvertiert werden können, um die Berechtigungen festzulegen.
convert_desc=Mit diesem Formular können bestehende Unix-Benutzer in Webmin-Benutzer konvertiert werden. Die Berechtigungen jedes neuen Webmin-Benutzers werden durch die unten ausgewählte Gruppe bestimmt.
convert_0=Alle Benutzer
convert_1=Nur Benutzer
convert_2=Alle außer Benutzern
convert_2=Alle außer Benutzer
convert_3=Benutzer mit Gruppe
convert_4=Benutzer mit UIDs im Bereich
convert_group=Neuen Benutzern Webmin-Gruppe zuweisen
convert_sync2=Passwort zukünftig mit Unix-Benutzer synchronisieren?
convert_group=Neuen Benutzer Webmin-Gruppe zuweisen
convert_sync2=Passwort künftig mit Unix-Benutzer synchronisieren?
convert_ok=Jetzt konvertieren
convert_err=Fehler bei der Konvertierung der Benutzer
convert_eusers=Keine Benutzer zur Konvertierung eingegeben
convert_err=Benutzer konnten nicht konvertiert werden
convert_eusers=Keine zu konvertierenden Benutzer eingegeben
convert_egroup=Unix-Gruppe existiert nicht
convert_emin=Ungültige minimale UID
convert_emax=Ungültige maximale UID
convert_ewgroup=Keine solche Webmin-Gruppe
convert_ewgroup2=Sie dürfen keine neuen Benutzer dieser Gruppe zuweisen
convert_ewgroup2=Sie dürfen neuen Benutzer diese Gruppe nicht zuweisen
convert_skip=$1 wird übersprungen
convert_exists=$1 existiert bereits
convert_invalid=$1 ist kein gültiger Webmin-Benutzername
convert_added=$1 wird hinzugefügt
convert_msg=Konvertiere Unix-Benutzer...
convert_msg=Konvertiere Unix-Benutzer
convert_user=Unix-Benutzer
convert_action=Durchgeführte Aktion
convert_action=Ausgeführte Aktion
convert_done=$1 Benutzer konvertiert, $2 ungültig, $3 bereits vorhanden, $4 ausgeschlossen.
convert_users=Zu konvertierende Benutzer
sync_title=Unix-Benutzersynchronisierung
sync_desc=Mit diesem Formular können Sie die automatische Synchronisierung von Unix-Benutzern, die über Webmin erstellt wurden, und Benutzern in diesem Modul konfigurieren.
sync_nogroups=Auf Ihrem System sind keine Webmin-Gruppen definiert. Es muss mindestens eine Gruppe erstellt werden, um den Zugriff für erstellte Benutzer festzulegen.
sync_title=Synchronisation von Unix-Benutzer
sync_desc=Mit diesem Formular können Sie die automatische Synchronisation von über Webmin erstellten Unix-Benutzer und Benutzer in diesem Modul konfigurieren.
sync_nogroups=Auf Ihrem System wurden keine Webmin-Gruppen definiert. Es muss mindestens eine Gruppe erstellt werden, um die Zugriffsrechte für erstellte Benutzer festzulegen.
sync_when=Wann synchronisieren
sync_create=Erstelle einen Webmin-Benutzer, wenn ein Unix-Benutzer erstellt wird.
sync_update=Aktualisiere den entsprechenden Webmin-Benutzer, wenn ein Unix-Benutzer aktualisiert wird.
sync_delete=Lösche den entsprechenden Webmin-Benutzer, wenn ein Unix-Benutzer gelöscht wird.
sync_modify=Ändere den Namen des entsprechenden Webmin-Benutzers, wenn ein Unix-Benutzer umbenannt wird.
sync_group=Neuen Benutzern Webmin-Gruppe zuweisen
sync_unix=Passwort neuer Benutzer auf Unix-Authentifizierung setzen.
sync_ecannot=Sie dürfen die Benutzersynchronisierung nicht konfigurieren.
sync_create=Webmin-Benutzer erstellen, wenn ein Unix-Benutzer erstellt wird.
sync_update=Den zugehörigen Webmin-Benutzer aktualisieren, wenn ein Unix-Benutzer aktualisiert wird.
sync_delete=Den zugehörigen Webmin-Benutzer löschen, wenn ein Unix-Benutzer gelöscht wird.
sync_modify=Den zugehörigen Webmin-Benutzer umbenennen, wenn ein Unix-Benutzer umbenannt wird.
sync_group=Neuen Benutzer Webmin-Gruppe zuweisen
sync_unix=Passwort für neue Benutzer auf Unix-Authentifizierung setzen.
sync_ecannot=Sie dürfen keine Benutzersynchronisation konfigurieren.
unix_title=Unix-Benutzerauthentifizierung
unix_err=Fehler beim Speichern der Unix-Authentifizierung
unix_desc=Diese Seite ermöglicht es Ihnen, Webmin so zu konfigurieren, dass Anmeldeversuche gegen die Systembenutzerliste und PAM überprüft werden. Dies kann nützlich sein, wenn Sie eine große Anzahl von vorhandenen Unix-Benutzern haben, denen Sie Zugriff auf Webmin gewähren möchten.
unix_err=Speichern der Unix-Authentifizierung fehlgeschlagen
unix_desc=Auf dieser Seite können Sie Webmin so konfigurieren, dass Anmeldeversuche gegen die SystemBenutzerliste und PAM validiert werden. Dies ist nützlich, wenn Sie vielen bestehenden Unix-Benutzer Zugriff auf Webmin gewähren möchten.
unix_def=Nur Webmin-Benutzer dürfen sich anmelden
unix_sel=Erlaube den folgenden Unix-Benutzern die Anmeldung ..
unix_sel=Folgenden Unix-Benutzer Anmeldung erlauben ..
unix_mode=Erlauben
unix_mall=Alle Benutzer
unix_group=Mitglieder der Gruppe ..
unix_user=Unix-Benutzer ..
unix_who=Benutzer oder Gruppe
unix_to=Als Webmin-Benutzer
unix_ecannot=Sie dürfen die Unix-Benutzerauthentifizierung nicht konfigurieren
unix_epam=Unix-Authentifizierung ist nicht verfügbar, da das Perl-Modul <tt>Authen::PAM</tt> nicht installiert oder nicht ordnungsgemäß funktioniert.
unix_all=Alle Unix-Benutzer erlauben
unix_allow=Nur gelisteten Unix-Benutzern erlauben
unix_deny=Gelisteten Unix-Benutzern verweigern
unix_ecannot=Sie dürfen die Unix-Authentifizierung nicht konfigurieren
unix_epam=Unix-Authentifizierung ist nicht verfügbar, da das Perl-Modul <tt>Authen::PAM</tt> nicht installiert oder nicht korrekt funktioniert.
unix_all=Allen Unix-Benutzer Zugang erlauben
unix_allow=Nur gelisteten Unix-Benutzer Zugang erlauben
unix_deny=Gelisteten Unix-Benutzer Zugang verweigern
unix_none=Keine Benutzer eingegeben
unix_euser='$1' ist kein gültiger Benutzername
unix_egroup='$1' ist kein gültiger Gruppenname
unix_shells=Unix-Benutzern deren Shells nicht in der Datei enthalten sind verweigern
unix_shells=Unix-Benutzer mit nicht gelisteten Shells den Zugang verweigern
unix_eshells=Fehlende oder nicht vorhandene Shells-Datei
unix_restrict2=Zusätzliche Einschränkungen
unix_ewhogroup=Fehlende Gruppe zum Erlauben in Zeile $1
unix_ewhouser=Fehlender Benutzer zum Erlauben in Zeile $1
unix_enone=Keine Unix-Benutzer oder -Gruppen zum Erlauben eingegeben
unix_ewhogroup=Fehlende Gruppe in Zeile $1
unix_ewhouser=Fehlender Benutzer in Zeile $1
unix_enone=Keine Unix-Benutzer oder Gruppen zur Erlaubnis eingegeben
unix_same=&lt;Gleicher Benutzer oder Gruppe&gt;
unix_sudo=Benutzern, die alle Befehle über <tt>sudo</tt> ausführen können, die Anmeldung als <tt>root</tt> erlauben
unix_pamany=Behandle Anmeldungen, die nur die PAM-Überprüfung bestehen, als $1
unix_esudo=Der $1-Befehl ist nicht installiert
unix_esudomod=Das benötigte Perl-Modul $1 für die <tt>sudo</tt>-Authentifizierung ist nicht installiert
unix_header=Einstellungen zur Unix-Benutzerauthentifizierung
unix_sudo=Benutzer, die über <tt>sudo</tt> alle Befehle ausführen dürfen, erlauben sich als <tt>root</tt> anzumelden
unix_pamany=Anmeldungen, die nur PAM bestehen, als $1 behandeln
unix_esudo=Der Befehl $1 ist nicht installiert
unix_esudomod=Das Perl-Modul $1, das für die <tt>sudo</tt>-Authentifizierung benötigt wird, ist nicht installiert
unix_header=Einstellungen r Unix-Benutzerauthentifizierung
unix_utable=Erlaubte Unix-Benutzer
sessions_title=Aktuelle Anmelde-Sitzungen
sessions_title=Aktuelle Anmeldesitzungen
sessions_id=Sitzungs-ID
sessions_user=Webmin-Benutzer
sessions_login=Zuletzt aktiv um
sessions_login=Zuletzt aktiv am
sessions_host=IP-Adresse
sessions_lview=Protokolle anzeigen ..
sessions_actions=Aktionen ..
sessions_all=Alle Sitzungen ..
sessions_logouts=Auch abgemeldete Sitzungen anzeigen ..
sessions_state=Zustand
sessions_lview=Protokolle anzeigen..
sessions_actions=Aktionen..
sessions_all=Alle Sitzungen..
sessions_logouts=Auch abgemeldete Sitzungen anzeigen..
sessions_state=Status
sessions_action=Aktionen
sessions_this=Diese Anmeldung
sessions_in=Angemeldet
sessions_out=Abgemeldet
sessions_kill=Trennen ..
sessions_kill=Verbindung trennen..
logins_title=Kürzliche Webmin-Anmeldungen
logins_title=Letzte Webmin-Anmeldungen
hide_title=Nicht verwendete Module ausblenden
hide_desc=Die folgenden Module werden aus der Modulliste für $1 entfernt, da die entsprechenden Server auf Ihrem System nicht installiert sind ..
hide_desc=Folgende Module werden aus der Modulliste für $1 entfernt, da deren zugehörige Server auf Ihrem System nicht installiert sind ..
hide_ok=Module jetzt ausblenden
hide_none=Nichts auszublenden - $1 hat keinen Zugriff auf Module, deren entsprechende Server auf Ihrem System nicht installiert sind.
hide_desc2=Bitte beachten Sie, dass diese Module nicht automatisch wieder erscheinen, wenn die entsprechenden Server installiert werden. Sie müssen den Zugriff manuell über dieses Modul gewähren.
hide_clone=(Klonen $1)
hide_none=Nichts auszublenden $1 hat keinen Zugriff auf Module, deren Server nicht installiert sind.
hide_desc2=Beachten Sie, dass diese Module nicht automatisch wieder angezeigt werden, wenn die zugehörigen Server installiert werden. Der Zugriff muss manuell über dieses Modul gewährt werden.
hide_clone=(Klon von $1)
switch_euser=Sie dürfen nicht zu diesem Benutzer wechseln
switch_eold=Bestehende Sitzung nicht gefunden!
switch_eold=Vorhandene Sitzung nicht gefunden!
rbac_title=RBAC einrichten
rbac_desc=Die RBAC-Integration von Webmin bietet eine Möglichkeit, die Berechtigungen für Benutzer-Module und ACLs aus einer RBAC (Role Based Access Control)-Datenbank zu bestimmen, anstatt aus den eigenen Konfigurationsdateien von Webmin. Sobald die RBAC-Unterstützung aktiviert ist, werden die Fähigkeiten eines Benutzers, für den die Option <b>RBAC steuert alle Module und ACLs</b> ausgewählt ist, von RBAC und nicht von den eigenen Zugriffskontroll-Einstellungen von Webmin bestimmt.
rbac_esolaris=RBAC wird derzeit nur auf Solaris unterstützt und kann daher auf diesem $1-System nicht verwendet werden.
rbac_eperl=Das Perl-Modul $1, das für die RBAC-Integration benötigt wird, ist nicht installiert. <a href='$2'>Klicken Sie hier</a>, um es jetzt installieren zu lassen.
rbac_ecpan=Sie haben keinen Zugriff auf die Webmin Perl-Module-Seite, um das notwendige $1-Modul für die RBAC-Integration zu installieren.
rbac_ok=Die RBAC-Integration ist auf diesem System verfügbar und kann auf der Seite "Webmin-Benutzer bearbeiten" pro Benutzer aktiviert werden.
rbac_desc=Die RBAC-Integration von Webmin bietet eine Möglichkeit, Modul- und ACL-Berechtigungen für Benutzer aus einer RBAC-Datenbank (Role Based Access Control) statt aus Webmins eigenen Konfigurationsdateien abzuleiten. Sobald RBAC aktiviert ist, werden alle Berechtigungen für Benutzer mit der Option <b>RBAC steuert alle Module und ACLs</b> über RBAC verwaltet.
rbac_esolaris=RBAC wird derzeit nur unter Solaris unterstützt und kann daher auf diesem $1-System nicht verwendet werden.
rbac_eperl=Das für die RBAC-Integration benötigte Perl-Modul $1 ist nicht installiert. <a href='$2'>Hier klicken</a>, um es jetzt zu installieren.
rbac_ecpan=Sie haben keinen Zugriff auf die Seite „Perl-Module, um das erforderliche Modul $1 für die RBAC-Integration zu installieren.
rbac_ok=RBAC-Integration ist auf diesem System verfügbar und kann auf der Seite Webmin-Benutzer bearbeiten“ benutzerspezifisch aktiviert werden.
udeletes_err=Fehler beim Löschen der Benutzer
udeletes_jerr=Fehler beim Hinzufügen von Benutzern zur Gruppe
udeletes_err=Benutzer konnten nicht gelöscht werden
udeletes_jerr=Benutzer konnten nicht zur Gruppe hinzugefügt werden
udeletes_enone=Keine ausgewählt
udeletes_title=Benutzer löschen
udeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Benutzer löschen möchten? Alle ihre Zugriffskontrolleinstellungen und Benutzerdaten gehen verloren.
udeletes_rusure=Möchten Sie die $1 ausgewählten Benutzer wirklich löschen? Alle deren Zugriffseinstellungen und Benutzerdetails gehen dabei verloren.
udeletes_users=Ausgewählte Benutzer: $1
udeletes_ok=Benutzer löschen
udeletes_ereadonly=Einer der ausgewählten Benutzer ist als nicht bearbeitbar markiert
gdeletes_err=Fehler beim Löschen der Gruppen
gdeletes_err=Gruppen konnten nicht gelöscht werden
gdeletes_title=Gruppen löschen
gdeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Gruppen und die $2 Benutzer, die sie enthalten, löschen möchten? Alle ihre Zugriffskontrolleinstellungen und Benutzerdaten gehen verloren.
gdeletes_rusure=Möchten Sie die $1 ausgewählten Gruppen und die darin enthaltenen $2 Benutzer wirklich löschen? Alle Zugriffseinstellungen und Benutzerdetails gehen dabei verloren.
gdeletes_users=Ausgewählte Gruppen: $1
gdeletes_ok=Gruppen löschen
pass_title=Passwortrichtlinien
pass_ecannot=Sie dürfen die Passwortrichtlinien nicht bearbeiten
pass_header=Webmin Passwortdurchsetzungsoptionen
pass_title=Passwortbeschränkungen
pass_ecannot=Sie dürfen keine Passwortbeschränkungen bearbeiten
pass_header=Optionen zur Passwortdurchsetzung in Webmin
pass_minsize=Minimale Passwortlänge
pass_nominsize=Keine Mindestlänge
pass_regexps=Reguläre Ausdrücke, mit denen Passwörter übereinstimmen müssen
pass_regdesc=Beschreibung des regulären Ausdrucks für Menschen
pass_maxdays=Tage, bevor das Passwort geändert werden muss
pass_lockdays=Tage, bevor das unveränderte Passwort das Konto sperrt
pass_nominsize=Kein Minimum
pass_regexps=Reguläre Ausdrücke, die Passwörter erfüllen müssen
pass_regdesc=Lesbare Beschreibung für regulären Ausdruck
pass_maxdays=Tage, bis Passwort geändert werden muss
pass_lockdays=Tage, bis Konto bei unverändertem Passwort gesperrt wird
pass_nomaxdays=Änderung nie erforderlich
pass_nolockdays=Konto wird nie gesperrt
pass_nouser=Passwörter mit Benutzernamen verbieten?
pass_nodict=Passwörter aus Wörterbüchern verbieten?
pass_oldblock=Anzahl der alten Passwörter, die abgelehnt werden
pass_nooldblock=Keine Begrenzung der Passwortwiederverwendung
pass_nouser=Passwörter dürfen keinen Benutzernamen enthalten?
pass_nodict=Keine Wörterbuchwörter im Passwort erlaubt?
pass_oldblock=Anzahl vorheriger Passwörter, die abgelehnt werden
pass_nooldblock=Keine Beschränkung der Wiederverwendung
pass_days=Tage
pass_pass=Passwörter
pass_err=Fehler beim Speichern der Passwortrichtlinien
pass_eminsize=Fehlende oder nicht numerische Mindestpasswortlänge
pass_emaxdays=Fehlende oder nicht numerische Anzahl der Tage vor der Änderung
pass_elockdays=Fehlende oder nicht numerische Anzahl der Tage vor der Kontosperrung
pass_eoldblock=Fehlende oder nicht numerische Anzahl der alten Passwörter, die abgelehnt werden
pass_err=Speichern der Passwortbeschränkungen fehlgeschlagen
pass_eminsize=Fehlende oder ungültige minimale Passwortlänge
pass_emaxdays=Fehlende oder ungültige Anzahl Tage bis zur Änderung
pass_elockdays=Fehlende oder ungültige Anzahl Tage bis zur Sperrung
pass_eoldblock=Fehlende oder ungültige Anzahl alter Passwörter zur Ablehnung
cpass_minsize=Muss mindestens $1 Buchstaben lang sein
cpass_notre=Entspricht einem nicht erlaubten Muster
cpass_re=Entspricht nicht einem erforderlichen Muster
cpass_re=Entspricht keinem erforderlichen Muster
cpass_name=Enthält den Benutzernamen
cpass_dict=Ist ein Wörterbuchwort
cpass_spellcmd=Weder der $1- noch der $2-Befehl, der zur Überprüfung von Wörterbuchwörtern benötigt wird, ist installiert
cpass_old=Alte Passwörter können nicht wiederverwendet werden
cpass_spellcmd=Die Befehle $1 oder $2 zur Wörterbuchprüfung sind nicht installiert
cpass_old=Alte Passwörter dürfen nicht wiederverwendet werden
sql_title=Benutzer- und Gruppendatenbank
sql_ecannot=Sie dürfen die Benutzer- und Gruppendatenbank nicht konfigurieren
sql_header=Optionen für die Datenbank-Backend für Benutzer und Gruppen
sql_header=Optionen für Datenbank-Backend für Benutzer und Gruppen
sql_host=Hostname
sql_user=Benutzername
sql_pass=Passwort
sql_db=Datenbankname
sql_ssl=Verbindung Verschlüsselung
sql_ssl=Verbindungsverschlüsselung
sql_ssl0=Keine
sql_ssl1=SSL
sql_ssl2=TLS
@@ -442,70 +448,87 @@ sql_userclass=Objektklasse für Benutzer
sql_groupclass=Objektklasse für Gruppen
sql_euserclass=Fehlende oder ungültige Objektklasse für Benutzer
sql_egroupclass=Fehlende oder ungültige Objektklasse für Gruppen
sql_none=Nur lokale Dateien zur Speicherung von Benutzern und Gruppen verwenden
sql_none=Nur lokale Dateien zur Speicherung von Benutzer und Gruppen verwenden
sql_mysql=MySQL-Datenbank verwenden
sql_postgresql=PostgreSQL-Datenbank verwenden
sql_ldap=LDAP-Server verwenden
sql_prefix=Erstellen unter DN
sql_prefix=Unter DN erstellen
sql_addto0=Neue Benutzer zur oben ausgewählten Datenbank hinzufügen
sql_addto1=Neue Benutzer zu lokalen Dateien hinzufügen
sql_nocache0=Verbindungen zur Datenbank cachen
sql_nocache1=Für jede Abfrage eine neue Verbindung öffnen
sql_nocache0=Datenbankverbindungen zwischenspeichern
sql_nocache1=Für jede Abfrage neue Verbindung öffnen
sql_emod=Fehlendes erforderliches Perl-Modul <tt>$1</tt>
sql_etable=Fehler beim Abfragen der erforderlichen Tabelle $1 : $2
sql_eldapdn=Basis LDAP DN $1 wurde nicht gefunden
sql_eclass=LDAP-Objektklasse $1 existiert nicht im Schema des Servers
sql_err=Fehler beim Speichern der Benutzer- und Gruppendatenbank-Einstellungen
sql_etable=Abfrage der erforderlichen Tabelle $1 fehlgeschlagen : $2
sql_eldapdn=Basis-LDAP-DN $1 wurde nicht gefunden
sql_eclass=LDAP-Objektklasse $1 existiert nicht im Server-Schema
sql_err=Speichern der Datenbankeinstellungen für Benutzer und Gruppen fehlgeschlagen
sql_ehost=Fehlender oder nicht auflösbarer Hostname
sql_euser=Fehlender oder ungültiger Benutzername (keine Leerzeichen erlaubt)
sql_epass=Ungültiges Passwort (keine Leerzeichen erlaubt)
sql_edb=Ungültiger Datenbankname (keine Leerzeichen erlaubt)
sql_eprefix=Fehlender oder ungültiger Basis-DN (keine Leerzeichen erlaubt)
sql_eprefix2=Ungültig aussehender Basis-DN - sollte wie <tt>dc=mydomain,dc=com</tt> aussehen
sql_eprefix2=Ungültig aussehender Basis-DN sollte z.B. <tt>dc=meinedomain,dc=com</tt> sein
sql_title2=Fehlende Tabellen erstellen
sql_tableerr=Benutzer- und Gruppendatenbankeinstellungen sind gültig, aber einige Tabellen, die von Webmin benötigt werden, fehlen: $1
sql_tableerr2=Klicken Sie auf die Schaltfläche <b>Tabellen erstellen</b>, um sie automatisch zu erstellen, oder führen Sie das SQL unten manuell aus.
sql_tableerr=Einstellungen der Benutzer- und Gruppendatenbank sind gültig, aber einige für Webmin erforderliche Tabellen fehlen : $1
sql_tableerr2=Klicken Sie auf die Schaltfläche <b>Tabellen erstellen</b> unten, um sie automatisch zu erstellen, oder führen Sie das untenstehende SQL manuell aus.
sql_make=Tabellen erstellen
sql_title3=Fehlende DN erstellen
sql_dnerr=Benutzer- und Gruppendatenbankeinstellungen sind gültig, aber der LDAP-DN, den Webmin benötigt, fehlt: $1
sql_dnerr2=Klicken Sie auf die Schaltfläche <b>DN erstellen</b>, um ihn automatisch zu erstellen, oder fügen Sie ihn manuell zu Ihrem LDAP-Server hinzu.
sql_title3=Fehlenden DN erstellen
sql_dnerr=Einstellungen der Benutzer- und Gruppendatenbank sind gültig, aber der für Webmin erforderliche LDAP-DN fehlt : $1
sql_dnerr2=Klicken Sie auf die Schaltfläche <b>DN erstellen</b> unten, um ihn automatisch zu erstellen, oder fügen Sie ihn manuell zu Ihrem LDAP-Server hinzu.
sql_makedn=DN erstellen
sql_schema=LDAP-Schema herunterladen
sql_timeout_def=Standardverbindungstimeout verwenden (60 Sekunden)
sql_timeout_for=Cache-Verbindungen nach
sql_timeout_secs=Sekunden schließen
sql_etimeout=Cache-Verbindungstimeout muss eine Zahl sein
sql_timeout_def=Standard-Timeout für Verbindungen verwenden (60 Sekunden)
sql_timeout_for=Zwischengespeicherte Verbindungen schließen nach
sql_timeout_secs=Sekunden
sql_etimeout=Timeout für zwischengespeicherte Verbindungen muss eine Zahl sein
make_title=Benutzer- und Gruppentabellen erstellen
make_err=Fehler beim Erstellen der Benutzer- und Gruppentabellen
make_exec=Führe SQL $1 aus ..
make_failed=.. Erstellung fehlgeschlagen : $1
make_err=Erstellen der Benutzer- und Gruppentabellen fehlgeschlagen
make_exec=SQL $1 wird ausgeführt ..
make_failed=.. Erstellen fehlgeschlagen : $1
make_done=.. abgeschlossen
make_still=Einige Probleme wurden auch nach der Tabellenerstellung gefunden: $1
make_still=Einige Probleme wurden auch nach dem Erstellen der Tabellen festgestellt : $1
makedn_title=LDAP DN erstellen
makedn_title=LDAP-DN erstellen
makedn_eoc=Keine strukturellen Objektklassen gefunden!
makedn_exec=Erstelle übergeordneten DN $1 ..
makedn_failed=.. Erstellung fehlgeschlagen : $1
makedn_exec=Eltern-DN $1 wird erstellt ..
makedn_failed=.. Erstellen fehlgeschlagen : $1
makedn_done=.. abgeschlossen
makedn_still=Einige Probleme wurden auch nach der DN-Erstellung gefunden: $1
makedn_still=Einige Probleme wurden auch nach dem Erstellen des DN festgestellt : $1
schema_title=LDAP-Schema herunterladen
schema_desc=Bevor Webmin einen LDAP-Server zur Speicherung von Benutzern und Gruppen verwenden kann, muss er konfiguriert werden, um das unten stehende Schema zu verwenden. Dies kann normalerweise erreicht werden, indem die Schema-Definition in <tt>/etc/ldap/schema</tt> oder <tt>/etc/openldap/schema</tt> als <tt>webmin.schema</tt> gespeichert wird, und dann den Server konfiguriert wird, um diese Schema-Datei zu laden.
schema_desc=Bevor Webmin einen LDAP-Server zur Speicherung von Benutzer und Gruppen verwenden kann, muss er mit dem untenstehenden Schema konfiguriert werden. Das kann typischerweise durch Speichern der Schema-Definition in <tt>/etc/ldap/schema</tt> oder <tt>/etc/openldap/schema</tt> als <tt>webmin.schema</tt> erfolgen, gefolgt von der Konfiguration des Servers zur Verwendung dieser Datei.
schema_download=Schema-Datei herunterladen : <a href=$1>$1</a>
twofactor_err=Fehler beim Einrichten der Zwei-Faktor-Authentifizierung
twofactor_err=Zwei-Faktor-Authentifizierung konnte nicht eingerichtet werden
twofactor_euser=Ihr Webmin-Benutzer wurde nicht gefunden!
twofactor_title=Zwei-Faktor-Authentifizierung
twofactor_disable=Zwei-Faktor-Authentifizierung deaktivieren
twofactor_already=Ihre Webmin-Anmeldung hat bereits zwei-Faktor-Authentifizierung mit Anbieter $1 und Konten-ID $2 aktiviert.
twofactor_already2=Webmin-Anmeldung $3 hat bereits zwei-Faktor-Authentifizierung mit Anbieter $1 und Konten-ID $2 aktiviert.
twofactor_desc=Diese Seite ermöglicht es Ihnen, die Zwei-Faktor-Authentifizierung für Ihre Webmin-Anmeldung mit <a href='$2' target=_blank>$1</a> zu aktivieren. Sobald aktiviert, wird ein zusätzlicher Authentifizierungstoken erforderlich sein, um sich bei Webmin anzumelden.
twofactor_desc2=Diese Seite ermöglicht es Ihnen, die Zwei-Faktor-Authentifizierung für Webmin-Anmeldung $3 mit <a href='$2' target=_blank>$1</a> zu aktivieren. Sobald aktiviert, wird ein zusätzlicher Authentifizierungstoken erforderlich sein, um sich bei Webmin anzumelden.
twofactor_enable=Für Zwei-Faktor-Authentifizierung anmelden
twofactor_header=Details zur Zwei-Faktor-Authentifizierung
twofactor_enrolling=Anmeldung zur Zwei-Faktor-Authentifizierung mit Anbieter $1 ..
twofactor_failed=.. Anmeldung fehlgeschlagen : $1
twofactor_already=Ihr Webmin-Login hat bereits Zwei-Faktor-Authentifizierung mit Anbieter $1 und Konto-ID $2 aktiviert.
twofactor_already2=Webmin-Login $3 hat bereits Zwei-Faktor-Authentifizierung mit Anbieter $1 und Konto-ID $2 aktiviert.
twofactor_desc=Auf dieser Seite können Sie die Zwei-Faktor-Authentifizierung für Ihr Webmin-Login mit <a href='$2' target=_blank>$1</a> aktivieren. Nach der Aktivierung ist beim Login ein zusätzlicher Authentifizierungscode erforderlich.
twofactor_desc2=Auf dieser Seite können Sie die Zwei-Faktor-Authentifizierung für das Webmin-Login $3 mit <a href='$2' target=_blank>$1</a> aktivieren. Nach der Aktivierung ist beim Login ein zusätzlicher Authentifizierungscode erforderlich.
twofactor_enable=Für Zwei-Faktor-Authentifizierung registrieren
twofactor_header=Details zur Zwei-Faktor-Registrierung
twofactor_enrolling=Registrierung r Zwei-Faktor-Authentifizierung bei Anbieter $1 läuft ..
twofactor_failed=.. Registrierung fehlgeschlagen : $1
twofactor_done=.. abgeschlossen. Ihre ID bei diesem Anbieter ist <tt>$1</tt>.
twofactor_setup=Die Zwei-Faktor-Authentifizierung wurde auf diesem System noch nicht aktiviert, kann aber über das <a href='$1'>Webmin-Konfigurations</a> Modul aktiviert werden.
twofactor_ebutton=Kein Button geklickt!
twofactor_setup=Zwei-Faktor-Authentifizierung ist auf diesem System noch nicht aktiviert, kann aber über das Modul <a href='$1'>Webmin-Konfiguration</a> eingeschaltet werden.
twofactor_ebutton=Keine Schaltfläche geklickt!
forgot_title=Link zum Zurücksetzen des Passworts senden
forgot_err=Link zum Zurücksetzen des Passworts konnte nicht gesendet werden
forgot_header=Details zum Link zum Zurücksetzen des Passworts
forgot_user=Passwort für Benutzer zurücksetzen
forgot_email=Zustellungsmethode für Link
forgot_email_def=Link in Webmin anzeigen
forgot_email_sel=Link per E-Mail senden an
forgot_send=Link senden
forgot_desc=Auf dieser Seite können Sie einen Link erzeugen oder versenden, mit dem ein Webmin-Benutzer ein neues Passwort festlegen kann. Seien Sie vorsichtig, an welche Adresse Sie diesen Link senden, da er vollständigen Zugriff auf das Webmin-Login gewährt!
forgot_adminmsg=Sie erhalten diese E-Mail vom Admin des Webmin-Systems unter $3 für das Login $1.\n\nWenn Sie das Passwort zurücksetzen möchten, folgen Sie diesem Link:\n$2
forgot_sending=Passwort-Zurücksetzungs-E-Mail für $2 an $1 wird gesendet ..
forgot_sent=.. gesendet
forgot_link=Der folgende Link kann verwendet werden, um das Webmin-Passwort für $1 in den nächsten $2 Minuten zurückzusetzen:
forgot_enosudo=Sudo ist auf diesem System nicht verfügbar!
forgot_ecansudo=Der eingegebene Benutzer hat keine Sudo-Rechte
forgot_eunix=Der eingegebene sudo-fähige Benutzer existiert nicht!

154
acl/lang/de.neutral Normal file
View File

@@ -0,0 +1,154 @@
index_title=Webmin-Benutzer:innen
index_user=Benutzer:in
index_create=Neuen privilegierten Benutzer:in erstellen.
index_screate=Neue:n sichere:n Benutzer:in erstellen.
index_convert=Unix-Benutzer:innen in Webmin-Benutzer:innen konvertieren
index_return=Benutzer:innenliste
index_users=Webmin-Benutzer:innen
index_nousers=Keine bearbeitbaren Webmin-Benutzer:innen definiert.
index_sync=Synchronisation von Unix-Benutzer:innen konfigurieren
index_eulist=Fehler beim Auflisten der Benutzer:innen : $1
edit_title=Webmin-Benutzer:in bearbeiten
edit_title2=Webmin-Benutzer:in erstellen
edit_title3=Sichere:n Webmin-Benutzer:in erstellen
edit_readonly=Dieser Webmin-Benutzer:in sollte nicht bearbeitet werden, da er:sie vom Modul $1 verwaltet wird. <a href='$2'>Hier klicken</a>, um diese Warnung zu umgehen und den:die Benutzer:in dennoch zu bearbeiten beachten Sie jedoch, dass manuelle Änderungen überschrieben werden können!
edit_rights=Zugriffsrechte für Webmin-Benutzer:in
edit_user=Benutzer:innenname
edit_cloneof=Webmin-Benutzer:in wird geklont
edit_twofactorprov=Verwendet Anbieter:in $1 mit ID $2
edit_twofactoradd=Zwei-Faktor für Benutzer:in aktivieren
edit_ipdesc=Die IP-Zugriffskontrolle für Benutzer:innen funktioniert wie die globale IP-Zugriffskontrolle im Webmin-Konfigurationsmodul. Nur wenn globale Regeln bestanden werden, gelten die hier definierten zusätzlich.
edit_risk_medium=Admin-Benutzer:in
edit_risk_low=Normale:r Benutzer:in
edit_euser=Sie dürfen diesen:die Benutzer:in nicht bearbeiten
edit_egone=Ausgewählte:r Benutzer:in existiert nicht mehr!
edit_ecreate=Sie dürfen keine Benutzer:innen erstellen
edit_switch=Zu Benutzer:in wechseln
edit_return=Webmin-Benutzer:in
save_err=Speichern des:der Benutzer:in fehlgeschlagen
save_ename='$1' ist kein gültiger Benutzer:innenname
save_eunixname=Der Benutzer:innenname '$1' ist kein Unix-Benutzer:in und kann daher nicht im sicheren Modus verwendet werden
save_enamewebmin=Der Benutzer:innenname 'webmin' ist für interne Zwecke reserviert
save_edup=Der Benutzer:innenname '$1' wird bereits verwendet
save_edeny=Sie können sich selbst keinen Zugriff auf das Modul „Webmin-Benutzer:innen“ verweigern
save_eunix=Der Unix-Benutzer:in '$1' existiert nicht
save_ecreate=Sie dürfen keine Benutzer:innen erstellen
save_euser=Sie dürfen diesen:die Benutzer:in nicht bearbeiten
delete_err=Benutzer:in konnte nicht gelöscht werden
delete_ecannot=Sie dürfen keine Benutzer:innen löschen
delete_euser=Sie dürfen diesen:die Benutzer:in nicht löschen
delete_eanonuser=Dieser Benutzer:in wird für den anonymen Modulzugriff verwendet
cert_msg=Mit diesem Formular können Sie ein SSL-Client-Zertifikat anfordern, das künftig für den Zugang zu Webmin anstelle von Benutzer:innenname und Passwort verwendet wird. Dies ist sicherer, aber da die Authentifizierung automatisch erfolgt, können Sie bei Verwendung des Zertifikats nicht zu einem anderen Benutzer:in wechseln.
acl_uall=Alle Benutzer:innen
acl_uthis=Diese:r Benutzer:in
acl_usel=Ausgewählte Benutzer:innen ..
acl_users=Bearbeitbare Benutzer:innen
acl_create=Kann neue Benutzer:innen erstellen?
acl_delete=Kann Benutzer:innen löschen?
acl_rename=Kann Benutzer:innen umbenennen?
acl_euser=Sie dürfen die ACL dieses:dieser Benutzer:in nicht bearbeiten
acl_gassign=Kann Benutzer:innen Gruppen zuweisen
acl_perms=Neu erstellte Benutzer:innen erhalten
acl_perms_1=Gleiche Modul-ACL wie Ersteller:in
acl_switch=Kann zu anderen Benutzer:innen wechseln?
acl_sql=Kann Benutzer:innen- und Gruppendatenbank konfigurieren?
log_modify=Webmin-Benutzer:in $1 bearbeitet
log_rename=Webmin-Benutzer:in $1 in $2 umbenannt
log_create=Webmin-Benutzer:in $1 erstellt
log_clone=Webmin-Benutzer:in $1 zu $2 geklont
log_delete=Webmin-Benutzer:in $1 gelöscht
log_cert=Zertifikat für Benutzer:in $1 ausgestellt
log_switch=Zu Webmin-Benutzer:in $1 gewechselt
log_delete_users=$1 Webmin-Benutzer:innen gelöscht
log_joingroup=$1 Webmin-Benutzer:innen zur Gruppe $2 hinzugefügt
log_sql=Benutzer:innen- und Gruppendatenbank geändert
log_twofactor=Benutzer:in $1 bei Zwei-Faktor-Anbieter:in $2 registriert
log_onefactor=Zwei-Faktor-Authentifizierung für Benutzer:in $1 deaktiviert
log_forgot_send=E-Mail zum Zurücksetzen des Passworts für Benutzer:in $1 an $2 gesendet
log_forgot_reset=Passwort für Benutzer:in $1 mit E-Mail $2 zurückgesetzt
log_forgot_admin=Administrator:in hat E-Mail zum Zurücksetzen des Passworts für Benutzer:in $1 an $2 gesendet
gedit_members=Mitglieds-Benutzer:innen und -Gruppen
gdelete_desc=Möchten Sie die Gruppe $1 und ihre Mitglieds-Benutzer:innen $2 wirklich löschen?
convert_title=Benutzer:innen konvertieren
convert_ecannot=Sie dürfen keine Unix-Benutzer:innen konvertieren
convert_nogroups=Auf Ihrem System wurden keine Webmin-Gruppen definiert. Mindestens eine Gruppe muss erstellt werden, bevor Benutzer:innen konvertiert werden können, um die Berechtigungen festzulegen.
convert_desc=Mit diesem Formular können bestehende Unix-Benutzer:innen in Webmin-Benutzer:innen konvertiert werden. Die Berechtigungen jedes neuen Webmin-Benutzers:in werden durch die unten ausgewählte Gruppe bestimmt.
convert_0=Alle Benutzer:innen
convert_1=Nur Benutzer:innen
convert_2=Alle außer Benutzer:innen
convert_3=Benutzer:innen mit Gruppe
convert_4=Benutzer:innen mit UIDs im Bereich
convert_group=Neuen Benutzer:innen Webmin-Gruppe zuweisen
convert_sync2=Passwort künftig mit Unix-Benutzer:in synchronisieren?
convert_err=Benutzer:innen konnten nicht konvertiert werden
convert_eusers=Keine zu konvertierenden Benutzer:innen eingegeben
convert_ewgroup2=Sie dürfen neuen Benutzer:innen diese Gruppe nicht zuweisen
convert_invalid=$1 ist kein gültiger Webmin-Benutzer:innenname
convert_msg=Konvertiere Unix-Benutzer:innen …
convert_user=Unix-Benutzer:in
convert_done=$1 Benutzer:innen konvertiert, $2 ungültig, $3 bereits vorhanden, $4 ausgeschlossen.
convert_users=Zu konvertierende Benutzer:innen
sync_title=Synchronisation von Unix-Benutzer:innen
sync_desc=Mit diesem Formular können Sie die automatische Synchronisation von über Webmin erstellten Unix-Benutzer:innen und Benutzer:innen in diesem Modul konfigurieren.
sync_nogroups=Auf Ihrem System wurden keine Webmin-Gruppen definiert. Es muss mindestens eine Gruppe erstellt werden, um die Zugriffsrechte für erstellte Benutzer:innen festzulegen.
sync_create=Webmin-Benutzer:in erstellen, wenn ein Unix-Benutzer:in erstellt wird.
sync_update=Den zugehörigen Webmin-Benutzer:in aktualisieren, wenn ein Unix-Benutzer:in aktualisiert wird.
sync_delete=Den zugehörigen Webmin-Benutzer:in löschen, wenn ein Unix-Benutzer:in gelöscht wird.
sync_modify=Den zugehörigen Webmin-Benutzer:in umbenennen, wenn ein Unix-Benutzer:in umbenannt wird.
sync_group=Neuen Benutzer:innen Webmin-Gruppe zuweisen
sync_unix=Passwort für neue Benutzer:innen auf Unix-Authentifizierung setzen.
unix_desc=Auf dieser Seite können Sie Webmin so konfigurieren, dass Anmeldeversuche gegen die Systembenutzer:innenliste und PAM validiert werden. Dies ist nützlich, wenn Sie vielen bestehenden Unix-Benutzer:innen Zugriff auf Webmin gewähren möchten.
unix_def=Nur Webmin-Benutzer:innen dürfen sich anmelden
unix_sel=Folgenden Unix-Benutzer:innen Anmeldung erlauben ..
unix_mall=Alle Benutzer:innen
unix_user=Unix-Benutzer:in ..
unix_who=Benutzer:in oder Gruppe
unix_to=Als Webmin-Benutzer:in
unix_all=Allen Unix-Benutzer:innen Zugang erlauben
unix_allow=Nur gelisteten Unix-Benutzer:innen Zugang erlauben
unix_deny=Gelisteten Unix-Benutzer:innen Zugang verweigern
unix_none=Keine Benutzer:innen eingegeben
unix_euser='$1' ist kein gültiger Benutzer:innenname
unix_shells=Unix-Benutzer:innen mit nicht gelisteten Shells den Zugang verweigern
unix_ewhouser=Fehlender Benutzer:in in Zeile $1
unix_enone=Keine Unix-Benutzer:innen oder Gruppen zur Erlaubnis eingegeben
unix_same=&lt;Gleiche:r Benutzer:in oder Gruppe&gt;
unix_sudo=Benutzer:innen, die über <tt>sudo</tt> alle Befehle ausführen dürfen, erlauben sich als <tt>root</tt> anzumelden
unix_utable=Erlaubte Unix-Benutzer:innen
sessions_user=Webmin-Benutzer:in
switch_euser=Sie dürfen nicht zu diesem:r Benutzer:in wechseln
rbac_desc=Die RBAC-Integration von Webmin bietet eine Möglichkeit, Modul- und ACL-Berechtigungen für Benutzer:innen aus einer RBAC-Datenbank (Role Based Access Control) statt aus Webmins eigenen Konfigurationsdateien abzuleiten. Sobald RBAC aktiviert ist, werden alle Berechtigungen für Benutzer:innen mit der Option <b>RBAC steuert alle Module und ACLs</b> über RBAC verwaltet.
rbac_ok=RBAC-Integration ist auf diesem System verfügbar und kann auf der Seite „Webmin-Benutzer:in bearbeiten“ benutzerspezifisch aktiviert werden.
udeletes_err=Benutzer:innen konnten nicht gelöscht werden
udeletes_jerr=Benutzer:innen konnten nicht zur Gruppe hinzugefügt werden
udeletes_title=Benutzer:innen löschen
udeletes_rusure=Möchten Sie die $1 ausgewählten Benutzer:innen wirklich löschen? Alle deren Zugriffseinstellungen und Benutzerdetails gehen dabei verloren.
udeletes_users=Ausgewählte Benutzer:innen: $1
udeletes_ok=Benutzer:innen löschen
udeletes_ereadonly=Einer der ausgewählten Benutzer:innen ist als nicht bearbeitbar markiert
gdeletes_rusure=Möchten Sie die $1 ausgewählten Gruppen und die darin enthaltenen $2 Benutzer:innen wirklich löschen? Alle Zugriffseinstellungen und Benutzerdetails gehen dabei verloren.
sql_title=Benutzer:innen- und Gruppendatenbank
sql_ecannot=Sie dürfen die Benutzer:innen- und Gruppendatenbank nicht konfigurieren
sql_header=Optionen für Datenbank-Backend für Benutzer:innen und Gruppen
sql_user=Benutzer:innenname
sql_userclass=Objektklasse für Benutzer:innen
sql_euserclass=Fehlende oder ungültige Objektklasse für Benutzer:innen
sql_none=Nur lokale Dateien zur Speicherung von Benutzer:innen und Gruppen verwenden
sql_addto0=Neue Benutzer:innen zur oben ausgewählten Datenbank hinzufügen
sql_addto1=Neue Benutzer:innen zu lokalen Dateien hinzufügen
sql_err=Speichern der Datenbankeinstellungen für Benutzer:innen und Gruppen fehlgeschlagen
sql_euser=Fehlender oder ungültiger Benutzer:innenname (keine Leerzeichen erlaubt)
sql_tableerr=Einstellungen der Benutzer:innen- und Gruppendatenbank sind gültig, aber einige für Webmin erforderliche Tabellen fehlen : $1
sql_dnerr=Einstellungen der Benutzer:innen- und Gruppendatenbank sind gültig, aber der für Webmin erforderliche LDAP-DN fehlt : $1
make_title=Benutzer:innen- und Gruppentabellen erstellen
make_err=Erstellen der Benutzer:innen- und Gruppentabellen fehlgeschlagen
schema_desc=Bevor Webmin einen LDAP-Server zur Speicherung von Benutzer:innen und Gruppen verwenden kann, muss er mit dem untenstehenden Schema konfiguriert werden. Das kann typischerweise durch Speichern der Schema-Definition in <tt>/etc/ldap/schema</tt> oder <tt>/etc/openldap/schema</tt> als <tt>webmin.schema</tt> erfolgen, gefolgt von der Konfiguration des Servers zur Verwendung dieser Datei.
twofactor_euser=Ihr Webmin-Benutzer:in wurde nicht gefunden!
twofactor_already=Ihr Webmin-Login hat bereits Zwei-Faktor-Authentifizierung mit Anbieter:in $1 und Konto-ID $2 aktiviert.
twofactor_already2=Webmin-Login $3 hat bereits Zwei-Faktor-Authentifizierung mit Anbieter:in $1 und Konto-ID $2 aktiviert.
twofactor_enrolling=Registrierung für Zwei-Faktor-Authentifizierung bei Anbieter:in $1 läuft ..
twofactor_done=.. abgeschlossen. Ihre ID bei diesem Anbieter:in ist <tt>$1</tt>.
forgot_user=Passwort für Benutzer:in zurücksetzen
forgot_desc=Auf dieser Seite können Sie einen Link erzeugen oder versenden, mit dem ein:e Webmin-Benutzer:in ein neues Passwort festlegen kann. Seien Sie vorsichtig, an welche Adresse Sie diesen Link senden, da er vollständigen Zugriff auf das Webmin-Login gewährt!
forgot_ecansudo=Der eingegebene Benutzer:in hat keine Sudo-Rechte
forgot_eunix=Der eingegebene sudo-fähige Benutzer:in existiert nicht!

View File

@@ -36,6 +36,7 @@ edit_rights=Webmin user access rights
edit_user=Username
edit_cloneof=Cloning Webmin user
edit_real=Real name
edit_email=Contact email
edit_group=Member of group
edit_pass=Password
edit_same=Same as Unix
@@ -90,6 +91,7 @@ edit_selall=Select all
edit_invert=Invert selection
edit_hide=Hide Unused
edit_switch=Switch to User
edit_forgot=Send Password Reset Link
edit_return=Webmin user
edit_return2=Webmin group
edit_rbacdeny=RBAC access mode
@@ -148,6 +150,7 @@ save_edays=No days to allow selected
save_ehours=Missing or invalid times to allow
save_ehours2=Start time to allow must be before end
save_etemp=The option to force a password change at next login cannot be used unless <a href='$1'>prompting users to enter new passwords</a> is enabled
save_eemail=Email address cannot contain the : character
delete_err=Failed to delete user
delete_eself=You cannot delete yourself
@@ -247,6 +250,9 @@ log_sync=Changed unix user synchronization
log_sql=Changed user and group database
log_twofactor=Enrolled user $1 with two-factor provider $2
log_onefactor=Dis-enrolled user $1 for two-factor authentication
log_forgot_send=Sent password reset email for user $1 to $2
log_forgot_reset=Reset password for user $1 with email $2
log_forgot_admin=Admin sent password reset email for user $1 to $2
gedit_ecannot=You are not allowed to edit groups
gedit_title=Edit Webmin Group
@@ -510,4 +516,21 @@ twofactor_done=.. complete. Your ID with this provider is <tt>$1</tt>.
twofactor_setup=Two-factor authentication has not been enabled on this system yet, but can be turned on using the <a href='$1'>Webmin Configuration</a> module.
twofactor_ebutton=No button clicked!
forgot_title=Send Password Reset Link
forgot_err=Failed to send password reset link
forgot_header=Password reset link details
forgot_user=Reset password for user
forgot_email=Link delivery method
forgot_email_def=Display link in Webmin
forgot_email_sel=Send link via email to
forgot_send=Send Link
forgot_desc=This page allows you to generate or send a link that can be used to select a new password for a Webmin user to any email address. Be careful which address you send this link to, as it will effectively grant full access to the Webmin login!
forgot_adminmsg=You are receiving this email from the administrator of the Webmin system at $3, for the login $1.\n\nIf you would like to proceed with resetting the password, follow this link :\n$2
forgot_sending=Sending password reset email for $2 to $1 ..
forgot_sent=.. sent
forgot_link=The link below can be used to reset the Webmin password for $1 for the next $2 minutes :
forgot_enosudo=Sudo is not available on this system!
forgot_ecansudo=The user entered does not have sudo permissions
forgot_eunix=The sudo-capable user entered does not exist!
__norefs=1

View File

@@ -37,6 +37,7 @@ foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a});
next if ($k =~ /^1111111/);
my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k});
next if ($user =~ /^\!/ && !$in{'logouts'});
next if ($user =~ /^-/);
next if ($miniserv{'logouttime'} &&
$time_now - $ltime > $miniserv{'logouttime'}*60);
my @cols;

View File

@@ -62,6 +62,10 @@ elsif ($action eq 'switch') {
elsif ($action eq 'twofactor') {
return &text('log_twofactor', $object, $p->{'provider'}, $p->{'id'});
}
elsif ($action eq 'forgot') {
return &text('log_forgot_'.$type, &html_escape($p->{'user'}),
&html_escape($p->{'email'}));
}
else {
return $text{'log_'.$action};
}

View File

@@ -14,24 +14,28 @@ our (%in, %text, %config, %access, $config_directory, $base_remote_user);
# Check for special button clicks, and redirect
if ($in{'but_clone'}) {
&redirect("edit_user.cgi?clone=".&urlize($in{'old'}));
exit;
return;
}
elsif ($in{'but_log'}) {
&redirect("../webminlog/search.cgi?uall=0&mall=1&tall=1&user=".
&urlize($in{'old'}));
exit;
return;
}
elsif ($in{'but_switch'}) {
&redirect("switch.cgi?user=".&urlize($in{'old'}));
exit;
return;
}
elsif ($in{'but_delete'}) {
&redirect("delete_user.cgi?user=".&urlize($in{'old'}));
exit;
return;
}
elsif ($in{'twofactor'}) {
&redirect("twofactor_form.cgi?user=".&urlize($in{'old'}));
exit;
return;
}
elsif ($in{'but_forgot'}) {
&redirect("forgot_form.cgi?user=".&urlize($in{'old'}));
return;
}
# Get the user object
@@ -225,6 +229,8 @@ $user{'nochange'} = !$access{'nochange'} || !defined($in{'nochange'}) ?
$user{'lastchange'} = $old->{'lastchange'};
$user{'olds'} = $old->{'olds'};
$user{'real'} = $in{'real'} =~ /\S/ ? $in{'real'} : undef;
$in{'email'} =~ /:/ && &error($text{'save_eemail'});
$user{'email'} = $in{'email'};
my $raddr = $ENV{'REMOTE_ADDR'};
my @ips;
if ($access{'ips'}) {

View File

@@ -549,7 +549,7 @@ local($i, @old, $lref, $change, $len, $v);
@old = &find_directive_struct($_[0], $_[2]);
local @files;
for($i=0; $i<@old || $i<@{$_[1]}; $i++) {
$v = ${$_[1]}[$i];
$v = $i<@{$_[1]} ? $_[1]->[$i] : undef;
if ($i >= @old) {
# a new directive is being added. If other directives of this
# type exist, add it after them. Otherwise, put it at the end of
@@ -580,7 +580,8 @@ for($i=0; $i<@old || $i<@{$_[1]}; $i++) {
# in this section
local($f, %v, $j);
$f = $_[2]->[0]->{'file'};
for($j=0; $_[2]->[$j]->{'file'} eq $f; $j++) { }
for($j=0; $j < @{$_[2]} &&
$_[2]->[$j]->{'file'} eq $f; $j++) { }
$lref = &read_file_lines($f);
if ($_[2] eq $_[3]) {
# Top-level, so add to the end of the file
@@ -654,16 +655,19 @@ if ($newdir) {
if ($isrc) {
&recursive_set_indent($newdir, $isrc->{'indent'});
}
$newdir{'words'} = &wsplit($newdir{'value'});
@newlines = &directive_lines($newdir);
}
if ($olddir && $newdir) {
# Update in place
$newdir->{'words'} = &wsplit($newdir->{'value'});
if ($first) {
# Just changing first and last line, like virtualhost IP
$lref->[$olddir->{'line'}] = $newlines[0];
$lref->[$olddir->{'eline'}] = $newlines[$#newlines];
$olddir->{'name'} = $newdir->{'name'};
$olddir->{'value'} = $newdir->{'value'};
$olddir->{'words'} = $newdir->{'words'};
}
else {
# Re-writing whole block
@@ -707,6 +711,7 @@ elsif (!$olddir && $newdir) {
$addpos--;
$addline = $pconf->[$addpos]->{'eline'}+1;
}
$newdir->{'words'} = &wsplit($newdir->{'value'});
$newdir->{'file'} = $file;
$newdir->{'line'} = $addline;
$newdir->{'eline'} = $addline + scalar(@newlines) - 1;
@@ -748,13 +753,11 @@ foreach my $dir (@$dirs) {
if ($dir->{'type'}) {
# Do sub-members too
&recursive_set_lines_files($dir->{'members'}, $line+1, $file);
$line += scalar(@{$dir->{'members'}})+1;
$dir->{'eline'} = $line;
$line += scalar(grep { $_->{'name'} ne 'dummy' }
@{$dir->{'members'}})+1;
}
else {
$dir->{'eline'} = $line;
}
$line++;
$dir->{'eline'} = $line;
$line++ if ($dir->{'name'} ne 'dummy');
}
return $line;
}
@@ -778,17 +781,17 @@ unlink($file);
# beyond the given line.
sub renumber
{
local($d);
if (!$_[3]) { return; }
foreach $d (@{$_[0]}) {
if ($d->{'file'} eq $_[2] && $d->{'line'} >= $_[1]) {
$d->{'line'} += $_[3];
my ($conf, $line, $file, $offset) = @_;
return if (!$offset);
foreach my $d (@$conf) {
if ($d->{'file'} eq $file && $d->{'line'} >= $_[1]) {
$d->{'line'} += $offset;
}
if ($d->{'file'} eq $_[2] && $d->{'eline'} >= $_[1]) {
$d->{'eline'} += $_[3];
if ($d->{'file'} eq $file && $d->{'eline'} >= $_[1]) {
$d->{'eline'} += $offset;
}
if ($d->{'type'}) {
&renumber($d->{'members'}, $_[1], $_[2], $_[3]);
&renumber($d->{'members'}, $line, $file, $offset);
}
}
}
@@ -1466,10 +1469,11 @@ foreach $f (@main::locked_apache_files) {
}
# directive_lines(directive, ...)
# Convery a list of Apache directives into a list of lines
sub directive_lines
{
local @rv;
foreach $d (@_) {
my @rv;
foreach my $d (@_) {
next if ($d->{'name'} eq 'dummy');
my $indent = (" " x $d->{'indent'});
if ($d->{'type'}) {

View File

@@ -153,5 +153,18 @@ else {
}
}
# get_init_status()
# If the init module is installed and there is an atd bootup action, return
# its name, current running status and boot status
sub get_init_status
{
return () if (!&foreign_available("init"));
my $init = defined(&get_init_name) ? &get_init_name() : undef;
return () if (!$init);
my $r = &init::status_action($init);
my $atboot = &init::action_status($init);
return ($init, $r, $atboot);
}
1;

View File

@@ -138,34 +138,31 @@ if ($access{'allow'} && $config{'allow_file'}) {
}
# If there is an init script that runs an atd server, show status
if (&foreign_available("init")) {
&foreign_require("init");
my $init = defined(&get_init_name) ? &get_init_name() : undef;
if ($access{'stop'} && $init) {
print &ui_hr();
print &ui_buttons_start();
my ($init, $r, $atboot) = &get_init_status();
if ($access{'stop'} && $init) {
print &ui_hr();
print &ui_buttons_start();
# Running now?
my $r = &init::status_action($init);
if ($r == 1) {
print &ui_buttons_row("stop.cgi", $text{'index_stop'},
$text{'index_stopdesc'});
}
elsif ($r == 0) {
print &ui_buttons_row("start.cgi", $text{'index_start'},
$text{'index_startdesc'});
}
# Start at boot?
my $atboot = &init::action_status($init);
print &ui_buttons_row("bootup.cgi", $text{'index_boot'},
$text{'index_bootdesc'}, undef,
&ui_radio("boot", $atboot == 2 ? 1 : 0,
[ [ 1, $text{'yes'} ],
[ 0, $text{'no'} ] ]));
print &ui_buttons_end();
# Running now?
my $r = &init::status_action($init);
if ($r == 1) {
print &ui_buttons_row("stop.cgi", $text{'index_stop'},
$text{'index_stopdesc'});
}
elsif ($r == 0) {
print &ui_buttons_row("start.cgi", $text{'index_start'},
$text{'index_startdesc'});
}
# Start at boot?
my $atboot = &init::action_status($init);
print &ui_buttons_row("bootup.cgi", $text{'index_boot'},
$text{'index_bootdesc'}, undef,
&ui_radio("boot", $atboot == 2 ? 1 : 0,
[ [ 1, $text{'yes'} ],
[ 0, $text{'no'} ] ]));
print &ui_buttons_end();
}
&ui_print_footer("/", $text{'index'});

View File

@@ -1 +1 @@
<header>Bacula-Backup</header>Bacula ist eine Sammlung von Computerprogrammen, die es Ihnen (oder der/dem Systemadministrator:in) ermöglichen, Backups, Wiederherstellungen und Überprüfungen von Computerdaten über ein Netzwerk mit verschiedenen Computertypen zu verwalten. Bacula kann auch auf einem einzelnen Computer ausgeführt werden und Backups auf verschiedene Medientypen, einschließlich Bandlaufwerken und Festplatten, erstellen.<p>Technisch gesehen ist es ein netzwerkbasiertes Client/Server-Backup-Programm. Bacula ist relativ einfach zu bedienen und effizient, während es viele erweiterte Speicherverwaltungsfunktionen bietet, die das Auffinden und Wiederherstellen verlorener oder beschädigter Dateien erleichtern. Durch sein modulares Design ist Bacula von kleinen Einzelcomputersystemen bis hin zu großen Netzwerken mit Hunderten von Computern skalierbar.<p>Das Bacula-System ist in drei separate Daemons unterteilt, die theoretisch auf verschiedenen Hosts laufen können:<br><dl><dt>Director<dd>Der Director speichert Jobs, Clients und die meisten anderen Konfigurationseinstellungen und ist für das Initiieren von Backup-Jobs verantwortlich. Dieses Webmin-Modul muss auf dem System ausgeführt werden, auf dem der Director installiert ist.<dt>File-Daemon<dd>Dieser Daemon ist für das Lesen der zu sichernden Dateien verantwortlich. Eine Bacula-Konfiguration kann mehrere File-Daemons enthalten, die jeweils auf einem zu sichernden System ausgeführt werden.<dt>Storage-Daemon<dd>Der Storage-Daemon ist für das Schreiben der Daten auf das endgültige Backup-Medium, wie ein Bandlaufwerk oder eine Datei, verantwortlich. In der Regel wird nur ein solcher Daemon benötigt (meist auf demselben Host wie der Director), aber in komplexeren Bacula-Setups können mehrere Systeme mit unterschiedlichen Bandlaufwerken zur Lastverteilung eingesetzt werden.</dl>Dieses Webmin-Modul kann ein System verwalten, auf dem ein oder mehrere Bacula-Daemons installiert sind.<p><footer>
<header>Bacula-Backup</header>Bacula ist eine Sammlung von Computerprogrammen, die es Ihnen (oder dem Systemadministrator) ermöglichen, Backups, Wiederherstellungen und Überprüfungen von Computerdaten über ein Netzwerk mit verschiedenen Computertypen zu verwalten. Bacula kann auch auf einem einzelnen Computer ausgeführt werden und Backups auf verschiedene Medientypen, einschließlich Bandlaufwerken und Festplatten, erstellen.<p>Technisch gesehen ist es ein netzwerkbasiertes Client/Server-Backup-Programm. Bacula ist relativ einfach zu bedienen und effizient, während es viele erweiterte Speicherverwaltungsfunktionen bietet, die das Auffinden und Wiederherstellen verlorener oder beschädigter Dateien erleichtern. Durch sein modulares Design ist Bacula von kleinen Einzelcomputersystemen bis hin zu großen Netzwerken mit Hunderten von Computern skalierbar.<p>Das Bacula-System ist in drei separate Daemons unterteilt, die theoretisch auf verschiedenen Hosts laufen können:<br><dl><dt>Director<dd>Der Director speichert Jobs, Clients und die meisten anderen Konfigurationseinstellungen und ist für das Initiieren von Backup-Jobs verantwortlich. Dieses Webmin-Modul muss auf dem System ausgeführt werden, auf dem der Director installiert ist.<dt>File-Daemon<dd>Dieser Daemon ist für das Lesen der zu sichernden Dateien verantwortlich. Eine Bacula-Konfiguration kann mehrere File-Daemons enthalten, die jeweils auf einem zu sichernden System ausgeführt werden.<dt>Storage-Daemon<dd>Der Storage-Daemon ist für das Schreiben der Daten auf das endgültige Backup-Medium, wie ein Bandlaufwerk oder eine Datei, verantwortlich. In der Regel wird nur ein solcher Daemon benötigt (meist auf demselben Host wie der Director), aber in komplexeren Bacula-Setups können mehrere Systeme mit unterschiedlichen Bandlaufwerken zur Lastverteilung eingesetzt werden.</dl>Dieses Webmin-Modul kann ein System verwalten, auf dem ein oder mehrere Bacula-Daemons installiert sind.<p><footer>

View File

@@ -0,0 +1 @@
<header>Bacula-Backup</header>Bacula ist eine Sammlung von Computerprogrammen, die es Ihnen (oder der/dem Systemadministrator:in) ermöglichen, Backups, Wiederherstellungen und Überprüfungen von Computerdaten über ein Netzwerk mit verschiedenen Computertypen zu verwalten. Bacula kann auch auf einem einzelnen Computer ausgeführt werden und Backups auf verschiedene Medientypen, einschließlich Bandlaufwerken und Festplatten, erstellen.<p>Technisch gesehen ist es ein netzwerkbasiertes Client/Server-Backup-Programm. Bacula ist relativ einfach zu bedienen und effizient, während es viele erweiterte Speicherverwaltungsfunktionen bietet, die das Auffinden und Wiederherstellen verlorener oder beschädigter Dateien erleichtern. Durch sein modulares Design ist Bacula von kleinen Einzelcomputersystemen bis hin zu großen Netzwerken mit Hunderten von Computern skalierbar.<p>Das Bacula-System ist in drei separate Daemons unterteilt, die theoretisch auf verschiedenen Hosts laufen können:<br><dl><dt>Director<dd>Der Director speichert Jobs, Clients und die meisten anderen Konfigurationseinstellungen und ist für das Initiieren von Backup-Jobs verantwortlich. Dieses Webmin-Modul muss auf dem System ausgeführt werden, auf dem der Director installiert ist.<dt>File-Daemon<dd>Dieser Daemon ist für das Lesen der zu sichernden Dateien verantwortlich. Eine Bacula-Konfiguration kann mehrere File-Daemons enthalten, die jeweils auf einem zu sichernden System ausgeführt werden.<dt>Storage-Daemon<dd>Der Storage-Daemon ist für das Schreiben der Daten auf das endgültige Backup-Medium, wie ein Bandlaufwerk oder eine Datei, verantwortlich. In der Regel wird nur ein solcher Daemon benötigt (meist auf demselben Host wie der Director), aber in komplexeren Bacula-Setups können mehrere Systeme mit unterschiedlichen Bandlaufwerken zur Lastverteilung eingesetzt werden.</dl>Dieses Webmin-Modul kann ein System verwalten, auf dem ein oder mehrere Bacula-Daemons installiert sind.<p><footer>

View File

@@ -1 +1 @@
<header>Bandbreitenüberwachung</header>Dieses Modul kann zur Erstellung einfacher Berichte über die Bandbreitennutzung nach Port, Host, Protokoll und Zeit für den ausgehenden oder weitergeleiteten Datenverkehr Ihres Systems verwendet werden. Es ist sowohl für eigenständige Hosts als auch für Systeme, die als Gateway (möglicherweise mit NAT) für ein Netzwerk fungieren, nützlich.<p>Bevor das Modul genutzt werden kann, müssen mehrere Firewall-Regeln und ein Syslog-Eintrag eingerichtet werden, um den über Ihr System gesendeten und empfangenen Datenverkehr zu erfassen. Während der Einrichtung muss das externe Netzwerkinterface des Systems ausgewählt werden, auf dem der Datenverkehr überwacht wird. Dies ist typischerweise das PPP-Interface für eine DFÜ- oder ADSL-Verbindung oder das Ethernet-Interface, das mit dem Kabelmodem oder dem Upstream-Router verbunden ist.<p>Sobald mindestens eine Stunde an Datenverkehr erfasst wurde, kann das Modul Berichte generieren, die den Datenverkehr nach einer der folgenden Kategorien zusammenfassen:<ul><li><b>Stunde</b><br>Datum und Stunde, zu der die Daten empfangen wurden.<li><b>Tag</b><br>Datum, an dem die Daten empfangen wurden.<li><b>Host</b><br>Der Host im internen Netzwerk oder die Firewall, die die Daten gesendet oder empfangen hat.<li><b>Interner Port</b><br>Der Port auf einem internen oder Firewall-Host, an den die Daten gesendet wurden. Diese Ansicht ist nützlich, um zu bestimmen, wie viel Datenverkehr durch Verbindungen zu Ihren Servern generiert wird.<li><b>Externer Port</b><br>Der Port auf einem Server außerhalb Ihres Netzwerks, an den Daten gesendet wurden. Dies kann verwendet werden, um festzustellen, welche Dienste von Benutzer:innen Ihres Netzwerks genutzt werden.<li><b>Port</b><br>Sowohl interne als auch externe Ports. Diese Ansicht ist hilfreich, um die gesamte Netzwerknutzung nach Diensttyp zu vergleichen.</ul>Zusätzlich kann der Bericht auf bestimmte Hosts, Ports oder Protokolle beschränkt werden. Der Host kann als IP-Adresse, Hostname oder Netzwerkadresse (z. B. 192.168.1.0) eingegeben werden. Der Port kann als Name oder Nummer eingegeben werden und umfasst sowohl TCP- als auch UDP-Verbindungen.<p>Der Bericht kann außerdem auf Datenverkehr innerhalb eines bestimmten Zeitraums begrenzt werden, indem die Felder <b>Für Datenverkehr nach</b> und <b>Für Datenverkehr vor</b> verwendet werden. Da der Datenverkehr stündlich zusammengefasst wird, kann die Einschränkung nicht feiner als auf Stundenbasis erfolgen.<p>Die Option <b>Nur Server-Ports?</b> ist nützlich, wenn nach eingehenden, ausgehenden oder allen Ports gefiltert wird. Sie beschränkt die Anzeige auf Ports, die üblicherweise von Servern verwendet werden (Ports unter 1024 oder benannte Ports), um die Anzeige nicht mit Zählungen von clientseitigen Ports zu überladen, die oft weniger relevant sind.<p>Die Option <b>Hostnamen auflösen?</b> kann aktiviert werden, wenn der Bericht nach Hosts gefiltert wird. Dies führt dazu, dass alle IP-Adressen nach Möglichkeit in Hostnamen aufgelöst werden.<p><hr>
<header>Bandbreitenüberwachung</header>Dieses Modul kann zur Erstellung einfacher Berichte über die Bandbreitennutzung nach Port, Host, Protokoll und Zeit für den ausgehenden oder weitergeleiteten Datenverkehr Ihres Systems verwendet werden. Es ist sowohl für eigenständige Hosts als auch für Systeme, die als Gateway (möglicherweise mit NAT) für ein Netzwerk fungieren, nützlich.<p>Bevor das Modul genutzt werden kann, müssen mehrere Firewall-Regeln und ein Syslog-Eintrag eingerichtet werden, um den über Ihr System gesendeten und empfangenen Datenverkehr zu erfassen. Während der Einrichtung muss das externe Netzwerkinterface des Systems ausgewählt werden, auf dem der Datenverkehr überwacht wird. Dies ist typischerweise das PPP-Interface für eine DFÜ- oder ADSL-Verbindung oder das Ethernet-Interface, das mit dem Kabelmodem oder dem Upstream-Router verbunden ist.<p>Sobald mindestens eine Stunde an Datenverkehr erfasst wurde, kann das Modul Berichte generieren, die den Datenverkehr nach einer der folgenden Kategorien zusammenfassen:<ul><li><b>Stunde</b><br>Datum und Stunde, zu der die Daten empfangen wurden.<li><b>Tag</b><br>Datum, an dem die Daten empfangen wurden.<li><b>Host</b><br>Der Host im internen Netzwerk oder die Firewall, die die Daten gesendet oder empfangen hat.<li><b>Interner Port</b><br>Der Port auf einem internen oder Firewall-Host, an den die Daten gesendet wurden. Diese Ansicht ist nützlich, um zu bestimmen, wie viel Datenverkehr durch Verbindungen zu Ihren Servern generiert wird.<li><b>Externer Port</b><br>Der Port auf einem Server außerhalb Ihres Netzwerks, an den Daten gesendet wurden. Dies kann verwendet werden, um festzustellen, welche Dienste von Benutzer Ihres Netzwerks genutzt werden.<li><b>Port</b><br>Sowohl interne als auch externe Ports. Diese Ansicht ist hilfreich, um die gesamte Netzwerknutzung nach Diensttyp zu vergleichen.</ul>Zusätzlich kann der Bericht auf bestimmte Hosts, Ports oder Protokolle beschränkt werden. Der Host kann als IP-Adresse, Hostname oder Netzwerkadresse (z. B. 192.168.1.0) eingegeben werden. Der Port kann als Name oder Nummer eingegeben werden und umfasst sowohl TCP- als auch UDP-Verbindungen.<p>Der Bericht kann außerdem auf Datenverkehr innerhalb eines bestimmten Zeitraums begrenzt werden, indem die Felder <b>Für Datenverkehr nach</b> und <b>Für Datenverkehr vor</b> verwendet werden. Da der Datenverkehr stündlich zusammengefasst wird, kann die Einschränkung nicht feiner als auf Stundenbasis erfolgen.<p>Die Option <b>Nur Server-Ports?</b> ist nützlich, wenn nach eingehenden, ausgehenden oder allen Ports gefiltert wird. Sie beschränkt die Anzeige auf Ports, die üblicherweise von Servern verwendet werden (Ports unter 1024 oder benannte Ports), um die Anzeige nicht mit Zählungen von clientseitigen Ports zu überladen, die oft weniger relevant sind.<p>Die Option <b>Hostnamen auflösen?</b> kann aktiviert werden, wenn der Bericht nach Hosts gefiltert wird. Dies führt dazu, dass alle IP-Adressen nach Möglichkeit in Hostnamen aufgelöst werden.<p><hr>

View File

@@ -0,0 +1 @@
<header>Bandbreitenüberwachung</header>Dieses Modul kann zur Erstellung einfacher Berichte über die Bandbreitennutzung nach Port, Host, Protokoll und Zeit für den ausgehenden oder weitergeleiteten Datenverkehr Ihres Systems verwendet werden. Es ist sowohl für eigenständige Hosts als auch für Systeme, die als Gateway (möglicherweise mit NAT) für ein Netzwerk fungieren, nützlich.<p>Bevor das Modul genutzt werden kann, müssen mehrere Firewall-Regeln und ein Syslog-Eintrag eingerichtet werden, um den über Ihr System gesendeten und empfangenen Datenverkehr zu erfassen. Während der Einrichtung muss das externe Netzwerkinterface des Systems ausgewählt werden, auf dem der Datenverkehr überwacht wird. Dies ist typischerweise das PPP-Interface für eine DFÜ- oder ADSL-Verbindung oder das Ethernet-Interface, das mit dem Kabelmodem oder dem Upstream-Router verbunden ist.<p>Sobald mindestens eine Stunde an Datenverkehr erfasst wurde, kann das Modul Berichte generieren, die den Datenverkehr nach einer der folgenden Kategorien zusammenfassen:<ul><li><b>Stunde</b><br>Datum und Stunde, zu der die Daten empfangen wurden.<li><b>Tag</b><br>Datum, an dem die Daten empfangen wurden.<li><b>Host</b><br>Der Host im internen Netzwerk oder die Firewall, die die Daten gesendet oder empfangen hat.<li><b>Interner Port</b><br>Der Port auf einem internen oder Firewall-Host, an den die Daten gesendet wurden. Diese Ansicht ist nützlich, um zu bestimmen, wie viel Datenverkehr durch Verbindungen zu Ihren Servern generiert wird.<li><b>Externer Port</b><br>Der Port auf einem Server außerhalb Ihres Netzwerks, an den Daten gesendet wurden. Dies kann verwendet werden, um festzustellen, welche Dienste von Benutzer:innen Ihres Netzwerks genutzt werden.<li><b>Port</b><br>Sowohl interne als auch externe Ports. Diese Ansicht ist hilfreich, um die gesamte Netzwerknutzung nach Diensttyp zu vergleichen.</ul>Zusätzlich kann der Bericht auf bestimmte Hosts, Ports oder Protokolle beschränkt werden. Der Host kann als IP-Adresse, Hostname oder Netzwerkadresse (z. B. 192.168.1.0) eingegeben werden. Der Port kann als Name oder Nummer eingegeben werden und umfasst sowohl TCP- als auch UDP-Verbindungen.<p>Der Bericht kann außerdem auf Datenverkehr innerhalb eines bestimmten Zeitraums begrenzt werden, indem die Felder <b>Für Datenverkehr nach</b> und <b>Für Datenverkehr vor</b> verwendet werden. Da der Datenverkehr stündlich zusammengefasst wird, kann die Einschränkung nicht feiner als auf Stundenbasis erfolgen.<p>Die Option <b>Nur Server-Ports?</b> ist nützlich, wenn nach eingehenden, ausgehenden oder allen Ports gefiltert wird. Sie beschränkt die Anzeige auf Ports, die üblicherweise von Servern verwendet werden (Ports unter 1024 oder benannte Ports), um die Anzeige nicht mit Zählungen von clientseitigen Ports zu überladen, die oft weniger relevant sind.<p>Die Option <b>Hostnamen auflösen?</b> kann aktiviert werden, wenn der Bericht nach Hosts gefiltert wird. Dies führt dazu, dass alle IP-Adressen nach Möglichkeit in Hostnamen aufgelöst werden.<p><hr>

View File

@@ -63,16 +63,21 @@ if ($bind_version && $bind_version =~ /^(\d+\.\d+)\./) {
our $dnssec_dlv_zone = "dlv.isc.org.";
our @dnssec_dlv_key = ( 257, 3, 5, '"BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URkY62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboMQKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VStTDN0YUuWrBNh"' );
my $rand_flag;
# get_rand_flag()
# Return a flag to read from a randomness source
sub get_rand_flag
{
if ($gconfig{'os_type'} =~ /-linux$/ &&
$config{'force_random'} eq '0' &&
-r "/dev/urandom" &&
$bind_version =~ /^9\./ &&
&compare_version_numbers($bind_version, '<', '9.14.2')) {
&compare_version_numbers($bind_version, 9) >= 0 &&
&compare_version_numbers($bind_version, '9.14.2') < 0) {
# Version: 9.14.2 deprecated the use of -r option
# in favor of using /dev/random [bugs:#5370]
$rand_flag = "-r /dev/urandom";
return "-r /dev/urandom";
}
return "";
}
# have_dnssec_tools_support()
# Returns 1 if dnssec-tools support is available and we meet minimum version
@@ -398,10 +403,11 @@ return defined($dir->{'value'}) ? $dir->{'value'} :
# Returns the base directory for named files
sub base_directory
{
if ($_[1] || !-r $zone_names_cache) {
my ($conf, $nocache) = @_;
if ($nocache || !-r $zone_names_cache) {
# Actually work out base
my ($opts, $dir, $conf);
$conf = $_[0] ? $_[0] : &get_config();
my ($opts, $dir);
$conf ||= &get_config();
if (($opts = &find("options", $conf)) &&
($dir = &find("directory", $opts->{'members'}))) {
return $dir->{'value'};
@@ -415,7 +421,7 @@ else {
# Use cache
my %znc;
&read_file_cached($zone_names_cache, \%znc);
return $znc{'base'} || &base_directory($_[0], 1);
return $znc{'base'} || &base_directory($conf, 1);
}
}
@@ -530,12 +536,10 @@ if ($dir->{'type'} && $dir->{'type'} == 1 && $dir->{'members'}) {
}
# directives that need their value to be quoted
my %need_quote;
my @need_quote = ( "file", "zone", "view", "pid-file", "statistics-file",
"dump-file", "named-xfer", "secret" );
foreach my $need (@need_quote) {
$need_quote{$need}++;
}
"dump-file", "named-xfer", "secret", "cert-file", "key-file",
"ca-file" );
my %need_quote = map { $_, 1 } @need_quote;
# directive_lines(&directive, tabs)
# Renders some directive into a number of lines of text
@@ -2481,22 +2485,22 @@ sub list_zone_names
{
# Check if any files have changed, or if the master config has changed, or
# the PID file.
my (%files, %znc);
my ($changed, $filecount, %donefile);
my (%files, %znc, $changed);
my @st = stat($zone_names_cache);
if (@st) {
&read_file_cached_with_stat($zone_names_cache, \%znc);
my $filecount = 0;
foreach my $k (keys %znc) {
if ($k =~ /^file_(.*)$/) {
$filecount++;
$donefile{$1}++;
my @fst = stat($1);
if (!@fst || $fst[9] > $st[9] ||
$znc{'size_'.$1} != $fst[7]) {
$changed = 1;
}
$filecount++;
}
}
$changed = 1 if (!$filecount);
}
else {
$changed = 1;
@@ -2508,6 +2512,11 @@ if ($changed || !$znc{'version'} ||
# Yes .. need to rebuild
%znc = ( );
my $conf = &get_config();
my $gau;
my $opts = &find("options", $conf);
if ($opts && &find("allow-update", $opts->{'members'})) {
$gau = 1;
}
my @views = &find("view", $conf);
my $n = 0;
foreach my $v (@views) {
@@ -2519,7 +2528,7 @@ if ($changed || !$znc{'version'} ||
my $file = &find_value("file", $z->{'members'});
my $up = &find("update-policy", $z->{'members'});
my $au = &find("allow-update", $z->{'members'});
my $dynamic = $up || $au ? 1 : 0;
my $dynamic = $up || $au || $gau ? 1 : 0;
$znc{"zone_".($n++)} = join("\t", $z->{'value'},
$z->{'index'}, $type, $v->{'value'}, $dynamic, $file);
$files{$z->{'file'}}++;
@@ -2535,7 +2544,7 @@ if ($changed || !$znc{'version'} ||
$file ||= ""; # slaves and other types with no file
my $up = &find("update-policy", $z->{'members'});
my $au = &find("allow-update", $z->{'members'});
my $dynamic = $up || $au ? 1 : 0;
my $dynamic = $up || $au || $gau ? 1 : 0;
$znc{"zone_".($n++)} = join("\t", $z->{'value'},
$z->{'index'}, $type, "*", $dynamic, $file);
$files{$z->{'file'}}++;
@@ -3151,6 +3160,13 @@ sub supports_check_zone
return $config{'checkzone'} && &has_command($config{'checkzone'});
}
# supports_tls()
# Returns 1 if DNS over TLS is supported
sub supports_tls
{
return &compare_version_numbers($bind_version, 9.17) >= 0 ? 1 : 0;
}
# check_zone_records(&zone-name|&zone)
# Returns a list of errors from checking some zone file, if any
sub check_zone_records
@@ -3174,6 +3190,36 @@ my $out = &backquote_command(
return $? ? split(/\r?\n/, $out) : ( );
}
# check_zone_warnings(&zone-name|&zone)
# Returns a list of warnings from checking some zone file, if any
sub check_zone_warnings
{
my ($zone) = @_;
my ($zonename, $zonefile);
if ($zone->{'values'}) {
# Zone object
$zonename = $zone->{'values'}->[0];
my $f = &find("file", $zone->{'members'});
$zonefile = $f->{'values'}->[0];
}
else {
# Zone name object
$zonename = $zone->{'name'};
$zonefile = $zone->{'file'};
}
my $absfile = &make_chroot(&absolute_path($zonefile));
my $out = &backquote_command(
$config{'checkzone'}." ".quotemeta($zonename)." ".
quotemeta($absfile)." 2>&1 </dev/null");
my @rv;
foreach my $l (split(/\r?\n/, $out)) {
if ($l =~ /^\Q$absfile\E:\d+:\s*(.*)/) {
push(@rv, $1);
}
}
return @rv;
}
# supports_check_conf()
# Returns 1 if BIND configuration checking is supported, 0 if not
sub supports_check_conf
@@ -3337,10 +3383,8 @@ return &has_command($config{'signzone'}) &&
# dnssec-validation directive is not supported, 0 otherwise
sub supports_dnssec_client
{
my ($bind_major, $bind_minor) = split(/\./, $bind_version);
return $bind_major > 9 ? 2 :
$bind_major == 9 ? ($bind_minor >= 4 ? 2 : 1) : 0;
return &compare_version_numbers($bind_version, 9.4) >= 0 ? 2 :
&compare_version_numbers($bind_version, 9) >= 0 ? 1 : 0;
}
# dnssec_size_range(algorithm)
@@ -3406,7 +3450,7 @@ closedir(ZONEDIR);
# Fork a background job to do lots of IO, to generate entropy
my $pid;
if (!$rand_flag) {
if (!&get_rand_flag()) {
$pid = fork();
if (!$pid) {
exec("find / -type f >/dev/null 2>&1");
@@ -3455,7 +3499,7 @@ else {
"cd ".quotemeta($fn)." && ".
"$config{'keygen'} -a ".quotemeta($alg).
" -b ".quotemeta($zonesize).
" -n ZONE $rand_flag $dom 2>&1");
" -n ZONE ".&get_rand_flag()." $dom 2>&1");
if ($?) {
kill('KILL', $pid) if ($pid);
return $out;
@@ -3467,7 +3511,7 @@ else {
"cd ".quotemeta($fn)." && ".
"$config{'keygen'} -a ".quotemeta($alg).
" -b ".quotemeta($size).
" -n ZONE -f KSK $rand_flag $dom 2>&1");
" -n ZONE -f KSK ".&get_rand_flag()." $dom 2>&1");
kill('KILL', $pid) if ($pid);
if ($?) {
return $out;
@@ -3537,7 +3581,7 @@ $zonekey || return "Could not find DNSSEC zone key";
# Fork a background job to do lots of IO, to generate entropy
my $pid;
if (!$rand_flag) {
if (!&get_rand_flag()) {
$pid = fork();
if (!$pid) {
exec("find / -type f >/dev/null 2>&1");
@@ -3554,7 +3598,7 @@ my $alg = $zonekey->{'algorithm'};
my $out = &backquote_logged(
"cd ".quotemeta($dir)." && ".
"$config{'keygen'} -a ".quotemeta($alg)." -b ".quotemeta($zonesize).
" -n ZONE $rand_flag $dom 2>&1");
" -n ZONE ".&get_rand_flag()." $dom 2>&1");
kill('KILL', $pid) if ($pid);
if ($?) {
return "Failed to generate new zone key : $out";
@@ -4492,4 +4536,24 @@ if ($zone) {
return $r;
}
# find_tls_users(&conf, name)
# Find all listen-on or other directives that use a given TLS key name
sub find_tls_users
{
my ($conf, $name) = @_;
my @rv;
my $opts = &find("options", $conf);
if ($opts) {
my @listen = ( &find("listen-on", $opts->{'members'}),
&find("listen-on-v6", $opts->{'members'}) );
foreach my $l (@listen) {
my $idx = &indexof("tls", @{$l->{'values'}});
if ($idx >= 0 && $l->{'values'}->[$idx+1] eq $name) {
push(@rv, $l);
}
}
}
return @rv;
}
1;

View File

@@ -20,12 +20,22 @@ my $desc = &ip6int_to_net(&arpa_to_ip($zone->{'name'}));
my $file = &make_chroot(&absolute_path($zone->{'file'}));
my @errs = &check_zone_records($zone);
my @warns = &check_zone_warnings($zone);
if (@errs) {
# Show list of errors
print "<b>",&text('check_errs', "<tt>$file</tt>"),"</b><p>\n";
print "<ul>\n";
foreach my $e (@errs) {
print "<li>".&html_escape($e)."\n";
print "<li>".&html_escape($e)."</li>\n";
}
print "</ul>\n";
}
elsif (@warns) {
# Just show warnings
print "<b>",&text('check_warns', "<tt>$file</tt>"),"</b><p>\n";
print "<ul>\n";
foreach my $e (@warns) {
print "<li>".&html_escape($e)."</li>\n";
}
print "</ul>\n";
}

View File

@@ -21,7 +21,7 @@ if (@errs) {
print "<b>",&text('ncheck_errs', "<tt>$file</tt>"),"</b><p>\n";
print "<ul>\n";
foreach my $e (@errs) {
print "<li>".&html_escape($e)."\n";
print "<li>".&html_escape($e)."</li>\n";
}
print "</ul>\n";
}

View File

@@ -22,26 +22,47 @@ print &ui_form_start("save_net.cgi", "post");
print &ui_table_start($text{'net_header'}, "width=100%", 4);
# Ports and addresses to listen on
my @listen = &find("listen-on", $mems);
my @listen = ( &find("listen-on", $mems),
&find("listen-on-v6", $mems) );
my $ltable = &ui_radio("listen_def", @listen ? 0 : 1,
[ [ 1, $text{'default'} ],
[ 0, $text{'net_below'} ] ])."<br>\n";
my @table = ( );
push(@listen, { });
my @tls = map { $_->{'values'}->[0] } &find("tls", $conf);
for(my $i=0; $i<@listen; $i++) {
my $port = $listen[$i]->{'value'} eq 'port' ?
$listen[$i]->{'values'}->[1] : undef;
my @vals = map { $_->{'name'} } @{$listen[$i]->{'members'}};
my $l = $listen[$i];
my $v = $l->{'values'} || [];
my ($port, $tls);
for(my $j=0; $j<@$v; $j++) {
if ($v->[$j] eq "port") {
$port = $v->[++$j];
}
if ($v->[$j] eq "tls") {
$tls = $v->[++$j];
}
}
my @vals = map { $_->{'name'} } @{$l->{'members'}};
push(@table, [
&ui_select("proto_$i",
$l->{'name'} eq 'listen-on-v6' ? 'v6' :
$l->{'name'} eq 'listen-on' ? 'v4' : '',
[ [ '', $text{'net_none'} ],
[ 'v4', 'IPv4' ],
[ 'v6', 'IPv6' ] ]),
&ui_radio("pdef_$i", $port ? 0 : 1,
[ [ 1, $text{'default'} ],
[ 0, &ui_textbox("port_$i", $port, 5) ] ]),
@tls ? ( &ui_select("tls_$i", $tls, [ '', @tls ]) ) : ( ),
&ui_textbox("addrs_$i", join(" ", @vals), 50),
]);
}
$ltable .= &ui_columns_table(
[ $text{'net_port'}, $text{'net_addrs'} ],
[ $text{'net_proto'},
$text{'net_port'},
@tls ? ( $text{'net_tls'} ) : ( ),
$text{'net_addrs'} ],
undef,
\@table,
undef,

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -18,7 +18,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -22,7 +22,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -22,7 +22,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -22,7 +22,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -25,7 +25,7 @@ pid_file=/var/run/named/named.pid
chroot=
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -22,7 +22,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -25,7 +25,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -19,7 +19,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -25,7 +25,7 @@ pid_file=/var/run/named/named.pid
chroot=/var/lib/named
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -25,7 +25,7 @@ pid_file=/var/run/named/named.pid
chroot=/var/lib/named
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -25,7 +25,7 @@ pid_file=/var/run/named/named.pid
chroot=/var/lib/named
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -16,7 +16,7 @@ short_names=0
named_path=/usr/syno/named/bin
confirm_zone=1
soa_style=1
allow_underscore=1
allow_underscore=0
pid_file=/var/run/named.pid
by_view=0
show_list=1

View File

@@ -24,7 +24,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
chroot=/
master_dir=/etc/named.d/master

View File

@@ -24,7 +24,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
chroot=/
master_dir=/var/named/master

View File

@@ -24,7 +24,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
chroot=/var/lib/named/chroot
master_dir=/var/named/master

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -23,7 +23,7 @@ stop_cmd=/etc/init.d/named stop
pid_file=/var/run/named/named.pid
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -21,7 +21,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

View File

@@ -20,7 +20,7 @@ forwardzonefilename_format=ZONE.hosts
reversezonefilename_format=ZONE.rev
rev_must=0
ipv6_mode=1
allow_underscore=1
allow_underscore=0
by_view=0
confirm_zone=1
confirm_rec=0

63
bind8/edit_tls.cgi Executable file
View File

@@ -0,0 +1,63 @@
#!/usr/local/bin/perl
# Show a form to edit or create a TLS key and cert
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%access, %text, %in);
require './bind8-lib.pl';
$access{'defaults'} || &error($text{'tls_ecannot'});
&supports_tls() || &error($text{'tls_esupport'});
&ReadParse();
# Get the TLS config being edited
my $tls;
if (!$in{'new'}) {
my $conf = &get_config();
my @tls = &find("tls", $conf);
($tls) = grep { $_->{'values'}->[0] eq $in{'name'} } @tls;
$tls || &error($text{'tls_egone'});
}
else {
$tls = { 'values' => [],
'members' => [] };
}
my $mems = $tls->{'members'};
&ui_print_header(undef, $in{'new'} ? $text{'tls_title1'}
: $text{'tls_title2'}, "");
print &ui_form_start("save_tls.cgi", "post");
print &ui_hidden("new", $in{'new'});
print &ui_hidden("oldname", $in{'name'});
print &ui_table_start($text{'tls_header'}, undef, 2);
# Name of this key
print &ui_table_row($text{'tls_name'},
&ui_textbox("name", $tls->{'values'}->[0], 30));
# Key file
print &ui_table_row($text{'tls_key'},
&ui_filebox("key", &find_value("key-file", $mems), 60));
# Cert file
print &ui_table_row($text{'tls_cert'},
&ui_filebox("cert", &find_value("cert-file", $mems), 60));
# CA cert file
my $ca = &find_value("ca-file", $mems);
print &ui_table_row($text{'tls_ca'},
&ui_radio("ca_def", $ca ? 0 : 1,
[ [ 1, $text{'tls_ca_def'} ],
[ 0, &ui_filebox("ca", $ca, 60) ] ]));
print &ui_table_end();
print &ui_form_end(
$in{'new'} ? [ [ undef, $text{'create'} ] ]
: [ [ undef, $text{'save'} ],
[ 'delete', $text{'delete'} ] ]
);
&ui_print_footer("list_tls.cgi", $text{'tls_return'});

View File

@@ -26,6 +26,10 @@ foreach my $z (@zones) {
$v eq "." || !&can_edit_zone($z) ||
&arpa_to_ip($v) !~ /\Q$in{'search'}\E/i);
my $t = $z->{'type'};
next if (!$t);
$t = "delegation" if ($t eq "delegation-only");
$t = "master" if ($t eq "primary");
$t = "slave" if ($t eq "secondary");
if ($z->{'view'}) {
push(@zlinks, "edit_$t.cgi?zone=$z->{'name'}".
"&view=$z->{'viewindex'}");

BIN
bind8/images/tls.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

View File

@@ -118,16 +118,19 @@ if ($access{'defaults'}) {
if ($access{'defaults'}) {
# display global options
print &ui_subheading($text{'index_opts'});
my @olinks = ("conf_servers.cgi", "conf_logging.cgi", "conf_acls.cgi",
"conf_files.cgi", "conf_forwarding.cgi", "conf_net.cgi",
"conf_misc.cgi", "conf_controls.cgi", "conf_keys.cgi",
"conf_zonedef.cgi", "list_slaves.cgi",
$bind_version >= 9 ? ( "conf_rndc.cgi" ) : ( ),
&supports_dnssec_client() ? ( "conf_trusted.cgi" ) : ( ),
((&supports_dnssec()) && (&have_dnssec_tools_support())) ? ( "conf_dnssectools.cgi" ) : ( ),
&supports_dnssec() ? ( "conf_dnssec.cgi" ) : ( ),
&supports_check_conf() ? ( "conf_ncheck.cgi" ) : ( ),
"conf_manual.cgi" );
my @olinks = (
"conf_servers.cgi", "conf_logging.cgi", "conf_acls.cgi",
"conf_files.cgi", "conf_forwarding.cgi", "conf_net.cgi",
"conf_misc.cgi", "conf_controls.cgi", "conf_keys.cgi",
"conf_zonedef.cgi", "list_slaves.cgi", "conf_rndc.cgi",
&supports_dnssec_client() ? ( "conf_trusted.cgi" ) : ( ),
&supports_dnssec() && &have_dnssec_tools_support() ?
( "conf_dnssectools.cgi" ) : ( ),
&supports_dnssec() ? ( "conf_dnssec.cgi" ) : ( ),
&supports_tls() ? ( "list_tls.cgi" ) : ( ),
&supports_check_conf() ? ( "conf_ncheck.cgi" ) : ( ),
"conf_manual.cgi",
);
my @otitles = map { /(conf|list)_(\S+).cgi/; $text{$2."_title"} } @olinks;
my @oicons = map { /^(conf|list)_(\S+).cgi/; "images/$2.gif"; } @olinks;
&icons_table(\@olinks, \@otitles, \@oicons, 6);
@@ -453,7 +456,7 @@ else {
print &ui_links_row(\@crlinks);
}
if ($access{'views'} && $bind_version >= 9) {
if ($access{'views'}) {
# Display list of views
print &ui_hr();
print &ui_subheading($text{'index_views'});

View File

@@ -1173,6 +1173,7 @@ rmass_clash=إنشاء حتى لو كان السجل موجود بالفعل؟
check_title=تحقق السجلات
check_ecannot=غير مسموح لك بالتحقق من السجلات
check_errs=The following errors were found in the records file $1 ..
check_warns=تم العثور على التحذيرات التالية في ملف السجلات $1 ..
check_allok=No errors were found in the records file $1.
ncheck_title=تحقق BIND التكوين

View File

@@ -59,6 +59,8 @@ log_delete_recs2=Изтрити $1 записи в зона $2
massdelete_vwarn=Някои зони са свързани с домейна Virtualmin $1 и затова не трябва да се изтриват тук!
massdelete_vwarn2=Някои зони са свързани с домейна Virtualmin $1 и $2 други и затова не трябва да се изтриват тук!
check_warns=Следните предупреждения бяха намерени във файла със записи $1 ..
zonekey_algorithm=DNSSEC алгоритъм : $1
zonekey_ds_keytag=Ключов етикет
zonekey_ds_alg=Алгоритъм

View File

@@ -63,6 +63,8 @@ log_delete_recs2=S'han suprimit $1 registres a la zona $2
massdelete_vwarn=Algunes zones estan associades al domini Virtualmin $1, per tant, no hauríem de suprimir-les aquí.
massdelete_vwarn2=Algunes zones estan associades al domini Virtualmin $1 i $2, per tant, no hauríem de suprimir-les.
check_warns=S'han trobat els advertiments següents al fitxer de registres $1 ..
zonekey_algorithm=Algorisme DNSSEC : $1
zonekey_ds_keytag=Etiqueta clau
zonekey_ds_alg=Algorisme

View File

@@ -289,6 +289,7 @@ rmass_eclash2=.. záznam se stejným názvem a stejnou hodnotou $1 již existuje
check_title=Zkontrolujte záznamy
check_ecannot=Není dovoleno kontrolovat záznamy
check_errs=V souboru záznamů $1 byly nalezeny následující chyby.
check_warns=V souboru záznamů $1 byla nalezena následující varování ..
check_allok=V souboru záznamů $1 nebyly nalezeny žádné chyby.
ncheck_title=Zkontrolujte BIND Config

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