Compare commits

..

732 Commits

Author SHA1 Message Date
Jamie Cameron
083bde276c Logrotate configs cannot be world writable : https://github.com/webmin/webmin/issues/2396 2025-02-06 18:32:55 -08:00
Jamie Cameron
1b7c9f9dd6 Enable and disable modules on debian with links 2025-02-04 22:02:05 -08:00
Jamie Cameron
32e08c1fca Merge branch 'master' of github.com:webmin/webmin 2025-02-04 19:54:32 -08:00
Jamie Cameron
fc88e8b2f7 Fix permissions 2025-02-04 19:54:24 -08:00
Jamie Cameron
c6a0aa1f15 Check for separate gateway field https://forum.virtualmin.com/t/add-new-server-is-removing-the-gateway/131904 2025-02-04 19:52:54 -08:00
Jamie Cameron
13da2bc390 Merge pull request #2392 from webmin/dev/show-virtual-package-info
Add ability to show reverse dependencies
2025-02-04 19:02:55 -08:00
Jamie Cameron
492179ecf1 Merge pull request #2393 from MacSteini/master
Update de
2025-02-04 18:39:16 -08:00
MacSteini
cb008dd4f8 Update de 2025-02-05 01:18:30 +00:00
MacSteini
6ca9dedb29 Update de 2025-02-05 01:05:52 +00:00
Ilia Ross
9cc735c01b Add ability to show reverse dependencies 2025-02-05 02:23:33 +02:00
Ilia Ross
ea5a1c0f8c Fix to revert changes to package_info 2025-02-05 01:17:45 +02:00
Ilia Ross
96d749202b Fix regex for getting reverse providers 2025-02-04 23:11:43 +02:00
Ilia Ross
86bd8568d3 Add support for package_info to also check reverse provides 2025-02-04 22:34:14 +02:00
Ilia Ross
3d5e3166ac Fix to check for referenced package only when allowed 2025-02-04 22:09:36 +02:00
Ilia Ross
783ee2d4d6 Fix to display version with the dash as in package name 2025-02-04 20:24:14 +02:00
Ilia Ross
49c05624e1 Add ability to show referenced package name 2025-02-04 20:20:00 +02:00
Ilia Ross
fc0ddace80 Add support for package_info to also consider dependencies 2025-02-04 14:21:18 +02:00
Ilia Ross
7ecf0b38a7 Update translations 2025-02-04 13:55:33 +02:00
Ilia Ross
73d90826a1 Fix to use 'extension' term instead of 'module' 2025-02-04 13:55:23 +02:00
Ilia Ross
31f6a58b0a No need for a colon or bold text 2025-02-04 12:57:26 +02:00
Ilia Ross
6c82ca53a5 Fix PECL packages are for RPM distros 2025-02-04 12:47:55 +02:00
Jamie Cameron
df1bf060a9 Start of work on debian-style php modules 2025-02-03 22:11:48 -08:00
Jamie Cameron
5e203798a9 Handle PECL package names 2025-02-03 21:57:02 -08:00
Jamie Cameron
e8565d84ab Debian uses conf.d 2025-02-03 21:53:09 -08:00
Jamie Cameron
4ac6ce2723 Just drop support for manually editing extensions entirely 2025-02-03 21:02:48 -08:00
Jamie Cameron
5fddf7aa7a New version bump 2025-02-02 15:21:44 -08:00
Jamie Cameron
84265a9c7b Add missing var 2025-02-02 15:11:25 -08:00
Jamie Cameron
0bca7791d7 Add missing param 2025-02-02 14:56:15 -08:00
Jamie Cameron
54a9dcb75f Rename function to make it less ambiguous 2025-02-02 14:43:24 -08:00
Jamie Cameron
a3bce3d1aa Merge branch 'master' of github.com:webmin/webmin 2025-02-02 14:40:02 -08:00
Jamie Cameron
938f9b35ca Exensions make no sense in FPM mode 2025-02-02 14:39:54 -08:00
Ilia Ross
45b88d85b5 Add support for displaying table size
https://github.com/webmin/webmin/issues/2386
2025-02-02 23:45:31 +02:00
Ilia Ross
db213c812a Add ability to configure allowed IP/CIDR
https://forum.virtualmin.com/t/ip-white-listing/131804/6?u=ilia
2025-02-02 19:41:56 +02:00
Ilia Ross
f08df0a858 Move legacy modules to modules/legacy branch
https://github.com/webmin/webmin/tree/modules/legacy
2025-02-02 14:55:10 +02:00
Ilia Ross
699de35596 Fix to create correct rc script
2b357cf0f1 (r152033120)
2025-02-02 13:57:35 +02:00
Ilia Ross
9d5d790526 Fix to ensure systemd custom units are created in the correct directory 2025-02-01 21:23:22 +02:00
Ilia Ross
433c4151fe Update translations 2025-02-01 12:18:33 +02:00
Ilia Ross
07e1655e14 Fix to improve option name 2025-02-01 12:04:10 +02:00
Jamie Cameron
44f4283009 Add missing blank line 2025-01-31 19:41:14 -08:00
Jamie Cameron
f330307803 Merge branch 'master' of github.com:webmin/webmin 2025-01-31 19:40:32 -08:00
Jamie Cameron
8595a36f18 Don't show extensions UI when we enable them via packages https://forum.virtualmin.com/t/there-is-a-problem-with-php-extensions/124552 2025-01-31 19:40:25 -08:00
Ilia Ross
121b20caa0 Fix button id to be more distinctive for easier styling 2025-01-31 19:38:17 +02:00
Ilia Ross
198b25e3a3 Fix only display the bottom form when there are too many users 2025-01-31 19:25:00 +02:00
Ilia Ross
d70496aac9 Fix broken Fetchmail page 2025-01-31 15:11:21 +02:00
Jamie Cameron
14f9624ac4 Also check file size in the cache 2025-01-29 20:54:28 -08:00
Jamie Cameron
8727a6cc8e Merge branch 'master' of github.com:webmin/webmin 2025-01-29 20:44:49 -08:00
Jamie Cameron
60ce4c81fe Cleanup code that checks the cache 2025-01-29 20:39:57 -08:00
Ilia Ross
ba81b22e55 Fix to revert File::Copy for compatibility with earlier versions of Perl 2025-01-29 21:22:21 +02:00
Jamie Cameron
6e6c9c26c7 Logic cleanup 2025-01-27 21:55:06 -08:00
Jamie Cameron
8d0367e6e6 Merge branch 'master' of github.com:webmin/webmin 2025-01-27 21:47:03 -08:00
Jamie Cameron
60bba6cb81 Modes can be a regular array 2025-01-27 21:44:53 -08:00
Ilia Ross
ee3bf19a9b Add ability to set optional preferences for repository 2025-01-27 12:44:48 +02:00
Ilia Ross
da6b548876 Fix description padding 2025-01-26 22:56:35 +02:00
Jamie Cameron
ad0b28abf7 Always update the usermin version, since we don't need to check that their os_list files are in sync 2025-01-25 17:52:54 -08:00
Jamie Cameron
401631daec Merge pull request #2284 from webmin/dev/support-deb822-style-repos
Add support for listing `deb822-style` repos
2025-01-25 12:13:02 -08:00
Ilia Ross
ee33579600 Fix to prioritize brevity over readability 2025-01-25 21:17:12 +02:00
Jamie Cameron
ff065a5647 On some systems /proc/mdstat doesn't exist until the first RAID device is created https://github.com/webmin/webmin/issues/1736 2025-01-25 10:04:35 -08:00
Jamie Cameron
e7d2dc8b67 Merge branch 'master' of github.com:webmin/webmin 2025-01-25 09:38:49 -08:00
Jamie Cameron
b95c96e501 Include zone name in deleted records log message 2025-01-25 09:38:21 -08:00
Ilia Ross
ad540808df Add support for recommended packages 2025-01-24 13:26:54 +02:00
Ilia Ross
a73f7cf6d7 Fix sub name 2025-01-24 11:54:51 +02:00
Jamie Cameron
24d39f631d If just one record is deleted, log it differently 2025-01-23 16:36:45 -08:00
Jamie Cameron
9c4e2d7653 Merge pull request #2371 from webmin/dev/bandwidth-firewalld
Add support for bandwidth monitoring with Firewalld and Journald
2025-01-23 16:03:16 -08:00
Ilia Ross
ae5c7a9db9 Revert "Fix to log each deleted DNS record individually"
This reverts commit 1ad15e0bfb.
2025-01-23 12:43:21 +02:00
Ilia Ross
1ce380f037 Fix to assume that an old process can still be running during upgrade 2025-01-23 12:01:32 +02:00
Jamie Cameron
300d34e303 Merge pull request #2373 from webmin/dev/drop-authen-oath
Fix to replace `Authen::OATH` validation with simpler `Digest::HMAC_SHA1`
2025-01-22 19:00:06 -08:00
Ilia Ross
81afd08b0d Fix to replace Authen::OATH validation with simpler Digest::HMAC_SHA1 2025-01-23 02:52:09 +02:00
Ilia Ross
87a2871013 Fix to drop no longer needed Authen::OATH and its deps 2025-01-23 02:45:40 +02:00
Ilia Ross
e2dd91febc Update vendor_perl libs 2025-01-23 01:54:02 +02:00
Jamie Cameron
2008ad63fb Merge branch 'master' of github.com:webmin/webmin 2025-01-21 20:05:23 -08:00
Jamie Cameron
fcdebf6891 Some systems use the event MPM instead of prefork https://github.com/webmin/webmin/issues/2365 2025-01-21 20:05:15 -08:00
Ilia Ross
d0e7a4efde Fix to correct port validation in Fail2Ban
https://forum.virtualmin.com/t/possible-bug-on-fail2ban-jail-edit/130165?u=ilia
2025-01-22 01:53:54 +02:00
Ilia Ross
1ad15e0bfb Fix to log each deleted DNS record individually
https://github.com/webmin/webmin/pull/2369#issuecomment-2605135007
2025-01-21 21:17:25 +02:00
Ilia Ross
5427420d3c Add Fail2Ban placeholders support for backend
https://forum.virtualmin.com/t/fail2ban-will-not-start/128934/7
2025-01-21 14:03:35 +02:00
Ilia Ross
dd4ae09642 Add endlessly better graphs filling and positioning 2025-01-21 01:31:43 +02:00
Ilia Ross
5d31698099 Fix to always prioritize Journald 2025-01-21 00:17:25 +02:00
Ilia Ross
72fef64c4d Fix variable being in the wrong scope 2025-01-21 00:00:02 +02:00
Ilia Ross
3258e1cbac Revert "Merge pull request #2369 from cstrotm/delete-record-extra-log"
This reverts commit fe1043a6aa, reversing
changes made to 42beaf915a.
2025-01-20 23:55:24 +02:00
Jamie Cameron
fe1043a6aa Merge pull request #2369 from cstrotm/delete-record-extra-log
Delete record extra log
2025-01-20 10:58:20 -08:00
Ilia Ross
cf79c33e28 Fix to use var directory for storing data 2025-01-20 18:39:21 +02:00
Ilia Ross
c0e09b4fa6 Add support for collecting bandwidth stats using Journald 2025-01-20 18:26:08 +02:00
Ilia Ross
785eb8646b Fix exit statuses and use lexical file handler 2025-01-20 18:15:08 +02:00
Ilia Ross
50be76165b Fix to handle output nicely 2025-01-20 18:03:31 +02:00
Carsten Strotmann
c4a0b18a49 Whitespace adjust 2025-01-20 16:02:14 +01:00
Ilia Ross
aae7bb5ac8 Fix code readability and scoping 2025-01-20 16:19:38 +02:00
Ilia Ross
67391244e4 Fix to lock module config 2025-01-20 15:29:33 +02:00
Ilia Ross
1cf778b627 Fix to remove comments, as no work required here really 2025-01-20 15:11:36 +02:00
Ilia Ross
39af4f2328 Fix to let *tables decide which log level (defaults to 4) 2025-01-20 14:22:26 +02:00
Ilia Ross
42beaf915a Merge pull request #2368 from MacSteini/master
Update de
2025-01-20 13:59:38 +02:00
MacSteini
fbdbedd3bc Update de 2025-01-20 11:26:10 +00:00
Carsten Strotmann
98f7a86f71 Add additional information when deleting records 2025-01-20 09:47:50 +01:00
Ilia Ross
1506238c7b Add FirewallD with Journald labels and generalize language for all supported systems 2025-01-20 02:42:01 +02:00
Ilia Ross
9e3918e813 Fix language for consistency 2025-01-20 02:13:38 +02:00
Ilia Ross
9160dc5735 Add missing syslog function 2025-01-20 01:55:25 +02:00
Ilia Ross
8e4bfff29e Add check for FirewallD 2025-01-20 01:54:48 +02:00
Ilia Ross
40b61a6c22 Add FirewallD to config info 2025-01-20 01:42:14 +02:00
Ilia Ross
a014d5b59f Add API to support FirewallD 2025-01-20 01:40:49 +02:00
Ilia Ross
d1e4c5d577 Add API to handle direct rules in FirewallD 2025-01-20 01:16:05 +02:00
Ilia Ross
da52526931 Fix to support log action when listing 2025-01-19 22:58:12 +02:00
Ilia Ross
0363812172 Add rich rule helper function 2025-01-19 21:24:36 +02:00
Ilia Ross
8acf9980f8 Fix variable scope 2025-01-19 19:56:06 +02:00
Ilia Ross
af3ee1034f Add check for which IP families are enabled on the system 2025-01-19 19:32:55 +02:00
Ilia Ross
186e578802 Add validation for CIDR too 2025-01-19 19:30:22 +02:00
Ilia Ross
a2520b4396 Fix special case for unspecified address when checking IPv6 2025-01-19 19:21:46 +02:00
Ilia Ross
38f0ccc155 Add API to check if rich rule exists 2025-01-19 01:26:57 +02:00
Ilia Ross
73132e7f86 Fix to separate the logic for constructing and setting rich rule 2025-01-19 01:22:16 +02:00
Ilia Ross
d4d963910d Fix messy rich-rule API 2025-01-18 23:33:35 +02:00
Ilia Ross
80ce9a7ef4 Merge pull request #2366 from MacSteini/master
Update de
2025-01-18 15:53:37 +02:00
Ilia Ross
314d6c5efc Add ability to resolve compatibility-level conditionals
https://sourceforge.net/p/webadmin/bugs/5653/
2025-01-18 15:17:39 +02:00
MacSteini
260eca09ae Update de 2025-01-18 04:02:04 +00:00
Ilia Ross
0928edaa08 Add further fixes (final) to support latest contemporary OpenSSH 2025-01-17 23:00:08 +02:00
Ilia Ross
5df04a50bd Fix factored out function to correctly sort one file by another 2025-01-17 22:28:18 +02:00
Ilia Ross
0dab0c08ed Update translations 2025-01-17 22:21:26 +02:00
Ilia Ross
0b80083a9c Add improvements to display allowed login modes 2025-01-17 21:56:04 +02:00
Ilia Ross
bb8421c411 Fix support for SSH deprecated option on 'Authentication' page 2025-01-17 14:56:22 +02:00
Ilia Ross
6b3457e9fd Fix to drop removed SSH options from 'Miscellaneous Options' page 2025-01-17 14:26:36 +02:00
Ilia Ross
f5e15dbe08 Fix to re-use method for getting SSH socket unit 2025-01-17 04:41:41 +02:00
Ilia Ross
78d5332499 Add support to configure SSH socket #2356 2025-01-17 04:35:57 +02:00
Ilia Ross
761a879919 Add ability to return filtered systemd unit options 2025-01-16 21:45:47 +02:00
Ilia Ross
1c8c259eae Add API to edit systemd units 2025-01-16 15:02:54 +02:00
Ilia Ross
98a8fa9e22 Fix to rename the workflow file
https://github.com/webmin/webmin/issues/2362
2025-01-16 01:08:15 +02:00
Ilia Ross
d10bd3a601 Revert "Add config option to allow auto-refresh of Running Processes module"
This reverts commit a379c1f3ed.
2025-01-16 00:07:05 +02:00
Ilia Ross
a379c1f3ed Add config option to allow auto-refresh of Running Processes module
https://github.com/webmin/webmin/issues/2251#issuecomment-2283057260
2025-01-15 23:58:54 +02:00
Ilia Ross
99a59ed554 Fix to factor out a function with different logic 2025-01-15 13:19:22 +02:00
Ilia Ross
f15ebca9af Fix indents 2025-01-15 12:20:38 +02:00
Jamie Cameron
cc25fa2b32 Use formal params 2025-01-14 21:05:54 -08:00
Jamie Cameron
9ccb944291 Merge branch 'master' of github.com:webmin/webmin 2025-01-14 19:19:49 -08:00
Jamie Cameron
6114028aea Set old user environment variables https://github.com/virtualmin/virtualmin-gpl/issues/995 2025-01-14 19:14:45 -08:00
Ilia Ross
41887071c0 Merge branch 'master' of github.com:webmin/webmin 2025-01-15 02:28:00 +02:00
Ilia Ross
468a570adf Add cat_systemd sub to parse systemd unit config 2025-01-15 02:27:50 +02:00
Jamie Cameron
1a45048d89 Temp filename should include a counter to ensure uniqueness 2025-01-14 15:51:02 -08:00
Jamie Cameron
846b611455 Merge branch 'master' of github.com:webmin/webmin 2025-01-14 15:40:34 -08:00
Jamie Cameron
27ac760466 Using _ seems risky 2025-01-14 15:40:10 -08:00
Ilia Ross
dedfc90e71 Fix comment 2025-01-15 01:34:08 +02:00
Ilia Ross
89ae8632e0 Add is_active_systemd sub 2025-01-15 01:23:03 +02:00
Ilia Ross
a508a10f54 Merge pull request #2360 from MacSteini/master
Update de
2025-01-15 01:19:13 +02:00
MacSteini
4ea1303a40 Update de 2025-01-14 23:17:00 +00:00
Ilia Ross
9d48afe562 Fix to disable explicitly 2025-01-14 19:15:35 +02:00
Jamie Cameron
edccfc4533 Merge branch 'master' of github.com:webmin/webmin 2025-01-14 08:35:16 -08:00
Jamie Cameron
4d70ada051 Handle zero values properly 2025-01-14 08:35:11 -08:00
Ilia Ross
c0f69446b3 Fix support for idle conns in contemporary SSH 2025-01-14 15:23:22 +02:00
Ilia Ross
aab912dccf Fix setting Protocol directive in contemporary SSH 2025-01-14 03:14:21 +02:00
Jamie Cameron
66a792292a Run cron commands in the user's home dir https://github.com/webmin/webmin/issues/2355: 2025-01-12 09:25:26 -08:00
Jamie Cameron
a291502d24 Merge branch 'master' of github.com:webmin/webmin 2025-01-11 15:52:40 -08:00
Jamie Cameron
cfb7f9b560 hash in port needs to be quoted https://github.com/webmin/webmin/issues/2357 2025-01-11 15:52:31 -08:00
Ilia Ross
7eb8e4d336 Fix to improve new params names 2025-01-11 05:31:14 +02:00
Ilia Ross
ec4b331709 Fix repo name consistency 2025-01-11 04:52:01 +02:00
Ilia Ross
ed31389087 Add ability to exclude packages if defined 2025-01-11 04:46:40 +02:00
Ilia Ross
23aa974014 Fix typo 2025-01-10 16:36:53 +02:00
Ilia Ross
1ceabeb841 Fix workflow to correctly trigger workflow on release 2025-01-10 03:05:46 +02:00
Ilia Ross
5478a4fc87 Dev: Revert to build on tag as all works fine now [no-build] 2025-01-09 04:30:09 +02:00
Ilia Ross
16df7857a4 Dev: Force tagged release for testing 2025-01-09 04:15:33 +02:00
Ilia Ross
8223f24b2b Fix to test new master template with tagged releases support 2025-01-09 04:14:24 +02:00
Jamie Cameron
30b2791669 Merge pull request #2354 from mckaygerhard/master-fix-init-openrc-gentoo-alpine
update openrc based outdated script in sync with current gentoo and alpine
2025-01-08 09:33:42 -08:00
Jamie Cameron
09418cec2e Merge branch 'master' of github.com:webmin/webmin 2025-01-08 08:39:18 -08:00
Jamie Cameron
f9e2f1a0be Better default if apache isn't installed 2025-01-08 08:37:00 -08:00
mckaygerhard
de140fa55c update openrc gentoo based outdated script in sync with current gentoo
* This script its from ancient webmin era.. we need up to date to
  be able to use for alpine and modern gentoo linux distributions,
  gentoo still uses Openrc for many things no matter if you choose
  other init systems
* Fix status command not available to, by the detection of the pid,
  this is using the config pid variable from webmin config miniserv
  is need for future support on issue #2353 and related to #835 that
  just assume init sysv systems or the other s*** only.
  Still is pending future support for openrc init system but with
  this path next changes are more easy to do
2025-01-08 10:16:26 -04:00
Ilia Ross
f6f0dee117 Add support for configuring protected repos requiring authentication 2025-01-07 23:58:57 +02:00
Ilia Ross
9636b82f55 Update repo meta for RPM-based distros too 2025-01-07 23:08:15 +02:00
Ilia Ross
08ace21d34 Add better error handling 2025-01-07 23:07:39 +02:00
Ilia Ross
795040a0a5 Fix to update how message is shown in force mode 2025-01-07 22:21:03 +02:00
Ilia Ross
77df6875c2 Fix to improve release naming 2025-01-07 05:29:30 +02:00
Ilia Ross
c1989caae1 Fix to use simpler default host for edge releases 2025-01-07 04:51:50 +02:00
Ilia Ross
8517809ae0 Add further improvements to repo setup script
* This change enables configuration of any RC or cutting-edge repo across the project using the same signing key (Webmin Developers )
2025-01-07 03:43:21 +02:00
Jamie Cameron
6a9f7a7f7e Merge branch 'master' of github.com:webmin/webmin 2025-01-05 09:45:41 -08:00
Jamie Cameron
80bfbf30dc Only read one XML file https://github.com/webmin/webmin/issues/2351 2025-01-05 09:45:34 -08:00
Ilia Ross
1ce2c9f1c2 Add known hosts to be set up 2025-01-04 01:40:54 +02:00
Ilia Ross
f73f8cfb55 Update secret 2025-01-02 19:56:10 +02:00
Ilia Ross
9133a10b5d Fix to pass secrets 2025-01-02 18:53:54 +02:00
Ilia Ross
3c75e74b8b Fix the branch name for reusable workflow 2025-01-02 16:05:49 +02:00
Ilia Ross
9749106ccf Fix to update master workflow path (corrected) 2025-01-02 16:03:40 +02:00
Ilia Ross
1297ad22c8 Fix to update master workflow path 2025-01-02 15:59:33 +02:00
Ilia Ross
04eaedb299 Fix to use webmin/webmin-ci-cd reusable template 2025-01-02 15:54:15 +02:00
Ilia Ross
bdf6e37de8 Fix support for setting up SUSE distros 2025-01-02 14:30:19 +02:00
Ilia Ross
1555dfe168 Merge pull request #2349 from rhabacker/master
Generation of repo files for (open)suse distributions added
2025-01-02 14:28:38 +02:00
Ralf Habacker
8f8ea12e98 Generation of repo files for (open)suse distributions added 2025-01-02 11:54:55 +01:00
Jamie Cameron
cd69218e1b Merge branch 'master' of github.com:webmin/webmin 2025-01-01 16:15:05 -08:00
Jamie Cameron
a5085ccb23 There may be multiple additional parameters https://github.com/webmin/webmin/issues/2348 2025-01-01 16:14:55 -08:00
Ilia Ross
79e248cf98 Add support for updated environment
[build]
2025-01-01 17:36:56 +02:00
Ilia Ross
11aacce9f6 Fix help 2024-12-31 19:14:47 +02:00
Ilia Ross
8de2dbb795 Add ability to set prefix 2024-12-31 19:10:19 +02:00
Ilia Ross
5113f6d076 Add support for Obsoletes: in RPM 2024-12-31 18:54:56 +02:00
Ilia Ross
65b36d6c07 Fix to set maintainer correctly 2024-12-31 17:30:45 +02:00
Ilia Ross
d737c638aa Fix to remove debug info 2024-12-31 17:30:19 +02:00
Ilia Ross
6d90370b0b Add debug info about env variables 2024-12-31 17:22:05 +02:00
Ilia Ross
b58ba1cb3b Fix to allow maintainer to be configurable
[build]
2024-12-31 16:42:03 +02:00
Ilia Ross
a6005361b5 Fix to move CI/CD to dedicated repo 2024-12-31 03:31:20 +02:00
Ilia Ross
2a81aabf96 Fix to correctly handle builds for multiple types 2024-12-31 03:18:44 +02:00
Ilia Ross
ee994bef2f Fix not to fail on rebuilds 2024-12-31 03:10:33 +02:00
Ilia Ross
871152f723 Fix to optimize package repo pulling and scoping 2024-12-31 03:03:02 +02:00
Ilia Ross
7ed1497f8d Fix to spin slower 2024-12-31 01:45:23 +02:00
Ilia Ross
1a4f461ae5 Fix spinner to be simple to work in non-interactive CI/CD 2024-12-31 01:36:19 +02:00
Ilia Ross
b945282489 Fix to simplify workflow name 2024-12-31 00:40:42 +02:00
Ilia Ross
e9ef704787 Fix to try to use single depth when cloning 2024-12-31 00:36:22 +02:00
Ilia Ross
c122d13747 Fix to rename workflow filename 2024-12-31 00:33:44 +02:00
Ilia Ross
742dcdc022 Add proper bootstrapping for other repos in CI/CD 2024-12-31 00:07:17 +02:00
Ilia Ross
5d01d93f67 Fix to drop verbose as we successfully reworked CI/CD scripts primarily 2/3 2024-12-30 23:34:05 +02:00
Ilia Ross
5d981550af Fix to avoid trailing spaces when dealing with ssh and scp commands in CI/CD
[build]
2024-12-30 23:29:17 +02:00
Ilia Ross
a5302c109a Add more debug when uploading (CI/CD)
[build]
2024-12-30 23:16:42 +02:00
Ilia Ross
d755168d12 Fix setup SSH error print logic in CI/CD 2024-12-30 23:16:07 +02:00
Ilia Ross
d8f669b7df Add more details when uploading (CI/CD)
[build]
2024-12-30 23:00:28 +02:00
Ilia Ross
5a44632bd1 Fix to abstract key path in repo setup CI/CD 2024-12-30 22:44:29 +02:00
Ilia Ross
9ce7706ff2 Fix setup SSH logic in CI/CD 2024-12-30 22:41:47 +02:00
Ilia Ross
160895f5e2 Add reworked CI/CD 1/2
[build]
2024-12-30 22:25:17 +02:00
Ilia Ross
7249984dee Fix to make old repo setup script work #2347 2/2 2024-12-30 20:06:41 +02:00
Ilia Ross
c6b216ee32 Fix to make old repo setup script work #2347 2024-12-30 18:36:38 +02:00
Ilia Ross
357392eb84 Merge pull request #2346 from MacSteini/master
Updated de & fr
2024-12-30 13:14:27 +02:00
MacSteini
2f46acff31 Updated de 2024-12-30 01:27:56 +00:00
MacSteini
9511fc342f Updated de & fr
Updated de

Made a fundamental mistake the last time I ran an automated script and messed up quota/lang/fr
2024-12-30 01:24:20 +00:00
Jamie Cameron
d590ed3f54 Merge pull request #2344 from webmin/dev/setup-repos-consolidate
Add improvement to repos setup script
2024-12-29 17:03:25 -06:00
Ilia Ross
416c614d6c Fix to update moved home for webmin.dev testing builds 2024-12-29 14:47:09 +02:00
Ilia Ross
21bf12a897 Fix to drop deleting files upon upload as it deletes all files unconditionally 2024-12-29 05:26:40 +02:00
Ilia Ross
ad7f7e84b1 Fix for path not to be treated as literal 2024-12-29 05:19:15 +02:00
Ilia Ross
132a223d5c Fix to enter correct directory before deleting 2024-12-29 04:44:19 +02:00
Ilia Ross
66ee14b2a6 Fix to avoid immediate expansion 2024-12-29 04:33:48 +02:00
Ilia Ross
acc820debf Fix to clear files before upload 2024-12-29 04:26:04 +02:00
Ilia Ross
9d4db5bc42 Fix to skip moving file completely as the name already what we want 2024-12-29 04:19:27 +02:00
Ilia Ross
b39486de66 Fix not to move into itself 2024-12-29 04:14:25 +02:00
Ilia Ross
5bc24cff74 Fix clean up 2024-12-29 04:08:36 +02:00
Ilia Ross
d083cffd50 Fix typo when print tar package version 2024-12-29 03:57:10 +02:00
Ilia Ross
af150c9210 Fix to add proper packages names 2024-12-29 03:53:18 +02:00
Ilia Ross
64084c3b90 Dev: Disable debug 2024-12-29 03:37:34 +02:00
Ilia Ross
d24e3bf3aa Dev: Fix to enable debug 2024-12-29 03:35:27 +02:00
Ilia Ross
9ac2a45822 Fix to use a consistent flag name 2024-12-29 03:28:54 +02:00
Ilia Ross
09a00bd839 Add support for building Webmin modules in CI/CD 1/2 2024-12-29 03:15:00 +02:00
Ilia Ross
b755ce9daf Fix to use dedicated function for directory delete 2024-12-29 02:01:33 +02:00
Ilia Ross
ebab02c15b Fix not to depend on mod_def_list.txt file 2024-12-28 22:43:22 +02:00
Ilia Ross
38d6309e57 Update translations 2024-12-28 12:48:17 +02:00
Ilia Ross
75d91469ed Fix message to be less confusing
Ref.: https://github.com/webmin/webmin/pull/2345
2024-12-28 12:41:07 +02:00
Ilia Ross
980a0f37fc Merge pull request #2345 from swelljoe/server-was-confusing
A user was confused by 'The Webmin server'
2024-12-28 12:35:20 +02:00
Ilia Ross
899c385032 Fix to simplify repo name 2024-12-28 12:27:30 +02:00
Joe Cooper
444b437ba3 A user was confused by 'The Webmin server' 2024-12-28 00:36:55 -06:00
Ilia Ross
cefdce5911 Add improvement to repos setup script 2024-12-28 01:28:59 +02:00
Ilia Ross
07da92a2e7 Add support for sortable dates in tables 1/2 2024-12-25 13:47:03 +02:00
Ilia Ross
4ad3f1e2b6 Add ability to adjust font size in terminal module 2024-12-25 01:03:42 +02:00
Ilia Ross
2b0abd778e Fix line height for the text inside details 2024-12-23 22:46:44 +02:00
Ilia Ross
53b84887cd Fix cursor for the text inside details 2024-12-23 22:32:08 +02:00
Ilia Ross
e6e65a5d32 Fix embedded font size into inline details 2024-12-23 22:08:21 +02:00
Ilia Ross
554f0b57a2 Fix to nicely support details inside second print 2024-12-23 21:50:22 +02:00
Jamie Cameron
2aad92ea53 Merge branch 'master' of github.com:webmin/webmin 2024-12-21 15:41:41 -08:00
Jamie Cameron
506f7a1819 If not binding to an IP, add a Listen directive for a custom port if needed https://github.com/webmin/webmin/issues/2341 2024-12-21 15:41:33 -08:00
Ilia Ross
56c0f5ea32 Fix to prefer JSON::XS over JSON::PP 2024-12-21 22:50:52 +02:00
Ilia Ross
94bb4921d2 Merge pull request #2340 from MacSteini/master
DE update & whitespace trimming of language files
2024-12-20 18:51:37 +02:00
MacSteini
357bed0506 Update de 2024-12-20 16:19:15 +00:00
MacSteini
901e324bae DE update & whitespace trimming of language files 2024-12-20 16:04:32 +00:00
Jamie Cameron
19eb916cc1 Merge branch 'master' of github.com:webmin/webmin 2024-12-19 18:21:51 -08:00
Jamie Cameron
46403a77b1 Add docs on trust remote proxy features 2024-12-19 18:18:44 -08:00
Jamie Cameron
b174973984 Merge pull request #2339 from MacSteini/master
Leading Space Removal
2024-12-19 11:26:59 -08:00
MacSteini
6e9cb986ad Leading Space Removal
Removed leading spaces from language files
2024-12-19 16:10:31 +00:00
Ilia Ross
95501e1c29 Merge pull request #2338 from MacSteini/master
Update de
2024-12-19 12:28:32 +02:00
MacSteini
ff36b2ce22 Update de 2024-12-19 10:07:50 +00:00
Jamie Cameron
b1a98f9b6c The default is any 2024-12-18 14:49:30 -08:00
Jamie Cameron
9329829732 If virtualmin is installed, just assume that it's in charge of spam delivery 2024-12-18 09:53:52 -08:00
Jamie Cameron
b82c01c4ff Move check for procmail into a separate function to avoid bloating index.cgi 2024-12-18 09:50:45 -08:00
Jamie Cameron
59e97be96c Clean up indentatiuon 2024-12-18 09:43:53 -08:00
Jamie Cameron
5363e461e4 Merge branch 'master' of github.com:webmin/webmin 2024-12-17 21:45:45 -08:00
Jamie Cameron
efae1cf754 Add UI option to control if SSL client cert is trusted 2024-12-17 21:45:00 -08:00
Ilia Ross
2732142969 Fix to preserve to comments #2333 2024-12-16 21:54:28 +02:00
Ilia Ross
5498afecb4 Merge pull request #2337 from MacSteini/master
Update de
2024-12-16 19:45:28 +02:00
MacSteini
20a6a7d5e7 Update de 2024-12-16 17:45:15 +00:00
MacSteini
9d4b281069 Update de 2024-12-16 17:43:06 +00:00
Ilia Ross
cdb18f32e0 Merge pull request #2336 from MacSteini/master
Removed trailing spaces
2024-12-16 19:12:12 +02:00
MacSteini
162206949f Consecutive Spaces Replacement
Replaced multiple consecutive spaces with a single space
2024-12-16 16:57:09 +00:00
MacSteini
8fd971c970 Delete Space Scanner.zsh 2024-12-16 15:17:33 +00:00
MacSteini
5ea0cc6b42 Trailing Spaces Removal
Removed trailing spaces
2024-12-16 15:16:55 +00:00
Ilia Ross
5fde929295 Merge pull request #2335 from MacSteini/master
Blanks Removal
2024-12-16 15:06:02 +02:00
MacSteini
64598e5f39 Blanks Removal
Removed blanks before or after the equal sign
2024-12-16 12:59:19 +00:00
Jamie Cameron
6980e08f87 get_mysql_config must return an array ref 2024-12-14 13:30:41 -08:00
Jamie Cameron
3f09aeed14 Merge branch 'master' of github.com:webmin/webmin 2024-12-13 14:23:50 -08:00
Jamie Cameron
bdea86afa2 Set the temp dir after we've checked return status from cat 2024-12-13 14:23:40 -08:00
Jamie Cameron
46af488994 Merge pull request #2330 from MacSteini/master
Update de
2024-12-02 19:24:44 -08:00
MacSteini
53197ca536 Update de 2024-12-03 02:55:10 +00:00
MacSteini
a1066eb002 Update de 2024-12-03 02:51:07 +00:00
Jamie Cameron
b488e28550 Improve messages when installing packages, and association between PHP versions and package names 2024-12-01 16:59:26 -08:00
Jamie Cameron
226da2c60d Merge branch 'master' of github.com:webmin/webmin 2024-12-01 10:24:50 -08:00
Jamie Cameron
7de796620c Log and restart Apache/FPM after installing a PHP module 2024-12-01 10:24:40 -08:00
Jamie Cameron
0d8e877f85 Merge pull request #2328 from MacSteini/master
Update de
2024-11-30 17:42:48 -08:00
MacSteini
2f12268e4b Update de 2024-12-01 01:37:43 +00:00
Jamie Cameron
1db2df6bdf Merge branch 'master' of github.com:webmin/webmin 2024-11-30 08:30:57 -08:00
Jamie Cameron
85dd40d710 Add missing cgi script 2024-11-30 08:30:24 -08:00
Ilia Ross
f0fdb4cd89 Merge pull request #2327 from MacSteini/master
Updated de
2024-11-30 14:02:19 +02:00
MacSteini
df928c5487 Update de 2024-11-30 11:26:47 +00:00
MacSteini
6c573f0251 Updated de
Corrections (UTF-8, new lines at file end), amendments, updates
2024-11-30 11:24:13 +00:00
Jamie Cameron
51817a25bd Check-in missing file 2024-11-29 18:23:19 -08:00
Jamie Cameron
797ba9f45e Various fixes to support module install for the default version 2024-11-29 17:07:02 -08:00
Jamie Cameron
08b1ee3be6 Improve messages when installing a PHP module 2024-11-29 16:53:42 -08:00
Jamie Cameron
f9c9ff77b6 Merge branch 'master' of github.com:webmin/webmin 2024-11-29 16:05:52 -08:00
Jamie Cameron
dd42835d12 Work on support for installing PHP modules 2024-11-29 16:05:43 -08:00
Ilia Ross
c9b77043d8 Fix email message shown in iframe to match overall UI https://github.com/webmin/usermin/issues/122 2024-11-30 00:32:29 +02:00
Ilia Ross
4f78baf0b2 Fix line height in HTML mail message https://github.com/webmin/usermin/issues/121 2024-11-29 23:25:13 +02:00
Ilia Ross
c24d9dcdef Fix smaller and simpler html2text over lynx for converting HTML to text in mail 2024-11-29 23:20:08 +02:00
Ilia Ross
d82d31f92a Update translations (proftpd,filemin) 2024-11-29 15:12:53 +02:00
Jamie Cameron
310664de76 Merge pull request #2326 from swelljoe/less-inetd
Remove one mention of inetd
2024-11-28 17:15:38 -08:00
Joe Cooper
26e37add44 Russian and Ukrainian 2024-11-28 15:22:21 -06:00
Joe Cooper
465803f73f Remove one mention of inetd 2024-11-28 15:11:10 -06:00
Ilia Ross
d2db00a5d1 Add ability to control strict user ownership check #2300 2024-11-28 21:14:58 +02:00
Ilia Ross
83457fe4c0 Fix to test if delete, rename, paste and save is allowed #2300 2024-11-28 00:48:54 +02:00
Jamie Cameron
3c45598140 Merge branch 'master' of github.com:webmin/webmin 2024-11-27 09:04:15 -08:00
Ilia Ross
36de5bfc30 Merge pull request #2325 from MacSteini/master
Updated de
2024-11-27 13:42:08 +02:00
MacSteini
c461dfe965 Merge branch 'master' of https://github.com/MacSteini/webmin 2024-11-27 10:05:08 +00:00
MacSteini
d913d6c6a3 Updated de 2024-11-27 10:05:06 +00:00
Jamie Cameron
a539f46189 Ignore packages after the 'Obsoleting Packages' line https://forum.virtualmin.com/t/detection-of-available-package-updates-packages-available-from-multiple-repos/130651 2024-11-26 21:43:59 -08:00
Ilia Ross
4bd0c8a67f Merge pull request #2324 from MacSteini/master
Update de
2024-11-26 19:35:08 +02:00
MacSteini
4070f632de Merge branch 'webmin:master' into master 2024-11-26 14:01:02 +00:00
MacSteini
b6729f437e Update de
Corrected typo
2024-11-26 14:00:01 +00:00
Ilia Ross
26ab2110cb Merge pull request #2323 from MacSteini/master
Updated de
2024-11-26 12:25:54 +02:00
MacSteini
61cf8dcc73 Updated de
Corrections (UTF-8, new lines at file end), amendments, updates
2024-11-26 09:02:52 +00:00
Jamie Cameron
749f740bbb Merge pull request #2322 from MacSteini/master
Updated de
2024-11-25 21:12:52 -08:00
MacSteini
7cd1f70142 Merge branch 'webmin:master' into master 2024-11-26 01:44:22 +00:00
MacSteini
477982776c Updated de
Corrections (UTF-8, new lines at file end), amendments, updates
2024-11-26 01:43:34 +00:00
Jamie Cameron
96548df5f2 Merge branch 'master' of github.com:webmin/webmin 2024-11-25 15:48:21 -08:00
Jamie Cameron
1a0eed3943 Actually the hash map type is sometimes missing 2024-11-25 15:48:05 -08:00
Ilia Ross
94d366551a Merge pull request #2318 from MacSteini/master
Update de
2024-11-25 19:30:38 +02:00
MacSteini
dfd0924869 Revert "Files updated by Language Manager"
This reverts commit 9d25a07c12.
2024-11-25 17:19:01 +00:00
Ilia Ross
a2d5d68dcf Update translations 2024-11-25 16:06:36 +02:00
Ilia Ross
e7441b05ed Fix to display nicer 2024-11-25 16:00:16 +02:00
Ilia Ross
4b87ccb3c1 Fix to put editable options on the top of the list #2319 2024-11-25 15:44:16 +02:00
MacSteini
9d25a07c12 Files updated by Language Manager 2024-11-25 11:51:01 +00:00
MacSteini
37d5120977 Update de 2024-11-25 11:27:53 +00:00
Jamie Cameron
0178d7ae99 Merge branch 'master' of github.com:webmin/webmin 2024-11-24 22:34:13 -08:00
Jamie Cameron
c39e5ffb01 Allow modules to be enabled or disabled 2024-11-24 22:34:06 -08:00
Ilia Ross
4e5ba94818 Fix internal version to be integer #2313
[build]
2024-11-24 21:12:34 +02:00
Ilia Ross
599d096783 Add support for openEuler in repo setup script 2024-11-24 21:09:48 +02:00
Ilia Ross
55ae93e447 Add support for openEuler LTS and Innovation #2313
[build]
2024-11-24 20:49:27 +02:00
Jamie Cameron
e412d1a1e6 Start of work on being able to select PHP modules 2024-11-23 22:34:59 -08:00
Jamie Cameron
b69067e38f Cleanup UI code 2024-11-23 22:05:43 -08:00
Jamie Cameron
80e99b7b25 Don't use error handler that doesn't exist 2024-11-21 20:37:56 -08:00
Ilia Ross
4f945b0a4e Fix mail buttons text
https://github.com/webmin/usermin/issues/120
2024-11-19 21:03:58 +02:00
Ilia Ross
93a298a7d1 Fix to call post change theme 2024-11-19 13:21:34 +02:00
Ilia Ross
23871ff3a9 Fix to properly handle matching comma-separated named ports 2024-11-17 17:41:35 +02:00
Ilia Ross
5931243e4d Fix to instruct the browser not to save password fields
https://github.com/webmin/webmin/issues/847#issuecomment-2480540430

[build]
2024-11-17 14:00:56 +02:00
Jamie Cameron
5a8e7c5dee Merge branch 'master' of github.com:webmin/webmin 2024-11-16 13:15:05 -08:00
Jamie Cameron
4dd309829c Properly support un-set and all modes 2024-11-16 12:18:15 -08:00
Jamie Cameron
ab75637b7a Add proper logging of commands run 2024-11-16 12:17:45 -08:00
Ilia Ross
a6e0b3cee5 Update translations and include the new Polish translation 2024-11-16 14:03:39 +02:00
Ilia Ross
4a9ed9e8ab Update translations 2024-11-16 13:07:43 +02:00
Ilia Ross
a955ccc55c Update Polish translations (Package Updates) 2024-11-16 13:07:05 +02:00
Ilia Ross
ad43838cb6 Update Polish translations (ACL) 2024-11-16 13:05:44 +02:00
Ilia Ross
fbf85c6e76 Update Polish translations (Read User Mail) 2024-11-16 13:03:22 +02:00
Ilia Ross
c7eb185639 Update Polish translations (Disk and Network Filesystems) 2024-11-16 12:57:25 +02:00
Ilia Ross
eab8fae651 Update Polish translations (System Logs) 2024-11-16 12:49:26 +02:00
Ilia Ross
a5be6dc02a Update Polish translations (File Manager) 2024-11-16 12:41:01 +02:00
Jamie Cameron
0d72f56620 Merge pull request #2314 from MacSteini/master
Updated de
2024-11-13 17:14:45 -08:00
MacSteini
9a797f0a0e Updated de 2024-11-14 01:10:28 +00:00
Jamie Cameron
8fc26680dc Code cleanups 2024-11-13 16:56:11 -08:00
Jamie Cameron
7828756ed2 Merge branch 'master' of github.com:webmin/webmin 2024-11-13 09:26:17 -08:00
Jamie Cameron
4d8cc424f4 Fix inet_protocols field 2024-11-12 21:29:12 -08:00
Ilia Ross
591dda7199 Fix to remove deprecated call
[build]
2024-11-12 04:05:37 +02:00
Ilia Ross
54a72c5025 Fix comment 2024-11-12 03:56:19 +02:00
Ilia Ross
816328b643 Add an attempt to get disk IOs
https://github.com/webmin/webmin/issues/2311#issuecomment-2469338370

[build]
2024-11-12 03:51:47 +02:00
Ilia Ross
1fb332ff05 Fix to support network I/O on macOS 2024-11-12 01:48:26 +02:00
Ilia Ross
1c991f9635 Add check if some IOs related functions supported 2024-11-12 01:05:19 +02:00
Ilia Ross
c7a709c837 Add support for displaying CPU and disk data on the latest macOS #2311 2024-11-11 23:48:18 +02:00
Ilia Ross
950122068d Fix to support new brand_string in macOS #2311 2024-11-11 16:09:43 +02:00
Ilia Ross
e7d8f7271a Fix to use the same terminology and colors we use in dashboard 2024-11-10 22:19:00 +02:00
Ilia Ross
5dbefb1d42 Fix to clarify language 2024-11-10 21:35:07 +02:00
Ilia Ross
f152dafc3f Fix to consider filter form only of hours been generated 2024-11-10 21:33:29 +02:00
Ilia Ross
78eb57f55c Fix to print nicer alerts 2024-11-10 21:07:33 +02:00
Jamie Cameron
c91b322c60 Turn off autorenew for all webmin-generated certs, because we handle renewal internally https://github.com/virtualmin/virtualmin-gpl/issues/956 2024-11-09 21:17:45 -08:00
Jamie Cameron
be52cadfbe Add field for sql_mode https://github.com/webmin/webmin/issues/2306 2024-11-08 16:29:35 -08:00
Jamie Cameron
699c0820ea Debian has multiple CA paths 2024-11-08 15:18:51 -08:00
Jamie Cameron
444307c58a There could be multiple CA paths 2024-11-08 15:16:40 -08:00
Jamie Cameron
8dd0d03018 Remove ancient config that's specific to the long-gone MSC linux 2024-11-07 21:38:11 -08:00
Jamie Cameron
e2bc898b57 Add button to restart mysql https://github.com/webmin/webmin/issues/2309 2024-11-07 21:31:47 -08:00
Jamie Cameron
d826b3423f Add 'all' option for protocols 2024-11-03 13:06:30 -08:00
Jamie Cameron
70344dea10 Add more SMTP client options https://github.com/webmin/webmin/issues/2302 2024-11-01 21:14:24 -07:00
Jamie Cameron
33b2ebecfa Add field for inet_protocols https://github.com/webmin/webmin/issues/2302 2024-11-01 21:07:14 -07:00
Jamie Cameron
c26d653f5b QR code URL is different in Usermin https://github.com/webmin/usermin/issues/116 2024-10-30 21:19:41 -07:00
Jamie Cameron
db7c8b8770 Move QR code generation into library that is shared with Usermin https://github.com/webmin/usermin/issues/116 2024-10-30 21:15:04 -07:00
Jamie Cameron
6d6dd87d38 No need to show anything when flushing queue https://github.com/webmin/webmin/issues/2303 2024-10-30 21:11:07 -07:00
Jamie Cameron
580149f8bd Merge branch 'master' of github.com:webmin/webmin 2024-10-30 16:19:36 -07:00
Jamie Cameron
ee8d72b2e4 Fix wording so that users don't expect to see results https://github.com/webmin/webmin/issues/2303 2024-10-30 16:19:06 -07:00
Ilia Ross
a8a382ecc3 An attempt to address TOTP naming confusion 2024-10-24 01:43:33 +03:00
Ilia Ross
33afba1686 Fix to set default last to 1000
https://forum.virtualmin.com/t/is-this-process-normal-or-should-i-worry/128835/32?u=ilia
2024-10-23 01:29:23 +03:00
Ilia Ross
e43df47e41 Fix to set default last to 10000
https://forum.virtualmin.com/t/is-this-process-normal-or-should-i-worry/128835/32?u=ilia
2024-10-23 01:21:46 +03:00
Ilia Ross
1d57955672 Fix to call last command for the given user if no lastlog available 2024-10-22 19:19:47 +03:00
Jamie Cameron
42c4a39510 Allow input type to be specified in ui_opt_textbox 2024-10-21 16:35:48 -07:00
Jamie Cameron
adb047dd11 Clean up PID-based lock dir 2024-10-21 16:29:49 -07:00
Jamie Cameron
19edf0efd9 SPF record parts aren't space separate https://github.com/virtualmin/virtualmin-gpl/issues/935 2024-10-21 16:06:28 -07:00
Jamie Cameron
8f7a2f818f Merge branch 'master' of github.com:webmin/webmin 2024-10-20 20:12:39 -07:00
Jamie Cameron
ce70d4caab Fix inconsistency in locked_file_link 2024-10-20 18:05:11 -07:00
Ilia Ross
65d185bfdf Update translations 2024-10-20 16:17:42 +03:00
Ilia Ross
eb2cd4e142 Fix to display more accurate heading 2024-10-20 16:16:38 +03:00
Ilia Ross
21e110cc8a Fix to bring back support for limit in last command
https://forum.virtualmin.com/t/is-this-process-normal-or-should-i-worry/128835/10?u=ilia
2024-10-20 15:59:41 +03:00
Jamie Cameron
c1196f744a Clean up lock link on unlock https://forum.virtualmin.com/t/lock-files-building-up-in-var-webmin-locks/129859 2024-10-19 19:41:33 -07:00
Jamie Cameron
f9c355d127 Merge branch 'master' of github.com:webmin/webmin 2024-10-18 15:34:15 -07:00
Jamie Cameron
4ef76b2ed9 Make sure temporary lock link files are deleted https://forum.virtualmin.com/t/lock-files-building-up-in-var-webmin-locks/129859 2024-10-18 15:33:54 -07:00
Ilia Ross
072771f524 Add missing comment 2024-10-18 11:50:39 +03:00
Jamie Cameron
05382d840d fs has to be outside the command 2024-10-17 16:47:06 -07:00
Jamie Cameron
22beff5e92 Add missing . 2024-10-17 16:31:24 -07:00
Jamie Cameron
5ff7190f06 Do proper quoting for XFS commands 2024-10-17 15:18:30 -07:00
Jamie Cameron
66bf7c9e28 Merge branch 'master' of github.com:webmin/webmin 2024-10-16 19:47:36 -07:00
Jamie Cameron
06fe239c3f Add debug mode 2024-10-16 19:47:28 -07:00
Ilia Ross
00f11fc81d Fix to quote usernames in xfs_quota command
https://forum.virtualmin.com/t/issue-regarding-with-restore/129843/4?u=ilia
2024-10-16 12:28:39 +03:00
Ilia Ross
643270f3d9 Add old actual file names for backward compatibility #2296 2024-10-16 00:28:46 +03:00
Ilia Ross
262a1cb531 Update repos setup script name #2296 2024-10-16 00:22:11 +03:00
Ilia Ross
cef6f833fb Add missing my [build] 2024-10-16 00:15:43 +03:00
Jamie Cameron
084ed0b835 Default to using the default 2024-10-14 20:58:28 -07:00
Jamie Cameron
5182e4a428 Default to global notification address 2024-10-14 20:44:28 -07:00
Jamie Cameron
086f366954 Add UI field to use the global notify address, and respect it 2024-10-14 20:32:07 -07:00
Jamie Cameron
7476d48ab7 Use global to address as the default 2024-10-14 20:16:00 -07:00
Jamie Cameron
5992c7ba51 Respect global to address if set 2024-10-13 19:36:37 -07:00
Jamie Cameron
cc0ab1bc8a Respect global default destination address if set 2024-10-13 19:20:39 -07:00
Jamie Cameron
d1cc0c4790 Default to address should be in global config 2024-10-13 19:01:27 -07:00
Jamie Cameron
720b01e690 Remove old formatting HTML 2024-10-13 18:54:30 -07:00
Jamie Cameron
552d909078 Add field for default notification address 2024-10-13 18:51:29 -07:00
Jamie Cameron
1633f275db Make text boxes bigger 2024-10-13 11:40:39 -07:00
Jamie Cameron
c3bb0b09c2 Use commas to separate dissable functions https://github.com/virtualmin/virtualmin-gpl/issues/753 2024-10-13 10:11:30 -07:00
Jamie Cameron
38136888b3 Add a page for select functions to disable https://github.com/virtualmin/virtualmin-gpl/issues/753 2024-10-12 22:06:09 -07:00
Jamie Cameron
216ae24206 Merge branch 'master' of github.com:webmin/webmin 2024-10-12 12:57:29 -07:00
Jamie Cameron
f5b76f5b77 Show current hashed password if there is one 2024-10-12 12:01:39 -07:00
Ilia Ross
2ad935f672 Merge pull request #2294 from MacSteini/master
Updated de
2024-10-08 03:44:08 +03:00
MacSteini
b5ef94d12c Updated de 2024-10-08 00:57:49 +01:00
Ilia Ross
0844abc63d Merge pull request #2293 from MacSteini/master
Corrected typo
2024-10-07 19:56:21 +03:00
Ilia Ross
63a81ef70f Fix to use the correct key name in other language files 2024-10-07 19:55:31 +03:00
MacSteini
76c41b8508 Corrected typo 2024-10-07 16:48:47 +01:00
Ilia Ross
5077349364 Merge pull request #2292 from MacSteini/master
Updated de and possible typo
2024-10-07 18:35:46 +03:00
MacSteini
47e26c4fde Updated de 2024-10-07 16:02:41 +01:00
MacSteini
a0da37ca08 Updated de 2024-10-07 15:08:23 +01:00
MacSteini
21dbdcc983 Merge branch 'master' of https://github.com/MacSteini/webmin 2024-10-07 13:20:19 +01:00
MacSteini
b66aab704d Updated de 2024-10-07 13:20:01 +01:00
MacSteini
84b559646c Merge branch 'webmin:master' into master 2024-10-07 13:01:32 +01:00
MacSteini
f3f232b7f5 Updated de 2024-10-07 12:59:12 +01:00
MacSteini
c5543500b4 Typo?
Is this supposed to be mfwizard_pgroup_name_error or smfwizard_pgroup_name_error?
2024-10-07 12:59:02 +01:00
Jamie Cameron
687225075d Merge pull request #2291 from MacSteini/master
Updated de
2024-10-02 20:42:52 -07:00
MacSteini
7c2a993629 Merge branch 'webmin:master' into master 2024-10-03 04:14:39 +01:00
MacSteini
4775d07c8f Updated de 2024-10-03 04:11:15 +01:00
Jamie Cameron
1bee0a007d Fix indefinite article https://github.com/webmin/webmin/issues/2289 2024-09-30 10:25:11 -07:00
Jamie Cameron
11ad8d48e6 Use formal params 2024-09-29 13:43:56 -07:00
Jamie Cameron
c61b52afc9 support clones of modules that have their own monitoes 2024-09-29 13:43:32 -07:00
Jamie Cameron
3ea7b57ca2 Use formal params 2024-09-28 21:40:52 -07:00
Jamie Cameron
c75f29d011 Don't show clones because they are handled inside the monitor 2024-09-28 21:34:20 -07:00
Jamie Cameron
8b726abdad Use proper API to get clones 2024-09-28 21:27:40 -07:00
Jamie Cameron
bc820a5148 Instead of passing a param to check_reboot_required that causes it to return 0, just don't call it 2024-09-28 15:13:24 -07:00
Jamie Cameron
65e70835d2 Add a status monitor to check if a reboot is required 2024-09-28 15:10:01 -07:00
Jamie Cameron
37075fc1ec Code cleanups 2024-09-28 10:16:47 -07:00
Jamie Cameron
cda9b9553f Merge branch 'master' of github.com:webmin/webmin 2024-09-28 10:09:11 -07:00
Jamie Cameron
ce27473110 VirtIO disks aren't IDE 2024-09-28 10:08:43 -07:00
Ilia Ross
ef09c6cef0 Update translations 2024-09-27 22:34:48 +03:00
Ilia Ross
d97bbfff0f Fix language strings to be consistent 2024-09-27 22:34:28 +03:00
Ilia Ross
5419079e8b Fix to print message when refreshing packages https://github.com/virtualmin/virtualmin-gpl/issues/909 2024-09-27 22:28:23 +03:00
Jamie Cameron
6cbbeebb56 Properly select folder, and make sure it exists 2024-09-19 20:24:00 -07:00
Ilia Ross
b7981f9024 Fix query string #2285 2024-09-19 14:41:06 +03:00
Ilia Ross
c199cffb3d Fix to account for paragraphs that don't end with a new line
https://github.com/webmin/webmin/pull/2284#discussion_r1764346284
2024-09-18 13:03:20 +03:00
Ilia Ross
a1ab757d66 Fix to remove commented out line 2024-09-18 12:50:22 +03:00
Jamie Cameron
cf876900cf Merge branch 'master' of github.com:webmin/webmin 2024-09-17 22:32:12 -07:00
Jamie Cameron
289b61f91e ui-lib conversion 2024-09-17 22:31:58 -07:00
Ilia Ross
89300de664 Add support for listing deb822-style repos
https://forum.virtualmin.com/t/package-repositories-empty-ubuntu-24-04/129152/12?u=ilia
2024-09-16 20:55:43 +03:00
Ilia Ross
19009cd155 Update translations 2024-09-16 15:40:38 +03:00
Jamie Cameron
d1ec3910d2 Rename Google Authenticator to just TOTP 2024-09-15 20:46:55 -07:00
Jamie Cameron
7cd747d82f Stop trusting remote client IP address for logging unless it's enabled 2024-09-15 19:24:32 -07:00
Jamie Cameron
ccd7b4b7d5 TTL and generator records don't have a value https://forum.virtualmin.com/t/migration-to-new-server/129151/2 2024-09-15 17:07:20 -07:00
Jamie Cameron
8dff80e2cb Merge branch 'master' of github.com:webmin/webmin 2024-09-14 20:10:04 -07:00
Jamie Cameron
14d5182b9e Support multi-line mappings https://github.com/webmin/webmin/issues/2279 2024-09-14 20:08:23 -07:00
Ilia Ross
b44ca28634 Merge pull request #2283 from leangjia/master
Updated Chinese translations
2024-09-12 12:10:43 +03:00
leangjia
564f4a9b47 Updated Chinese translations 2024-09-12 15:50:58 +08:00
liAnGjiA
4d739ea832 Merge branch 'webmin:master' into master 2024-09-12 15:13:13 +08:00
leangjia
8df7958dfb Updated Chinese translations 2024-09-12 15:12:18 +08:00
Jamie Cameron
5463547e7a Update version collected in the module lib, rather than from the UI 2024-09-11 22:08:42 -07:00
Jamie Cameron
7cfa552ff4 Merge branch 'master' of github.com:webmin/webmin 2024-09-11 21:55:29 -07:00
Jamie Cameron
944f1a020d Use formal param 2024-09-11 21:55:23 -07:00
Ilia Ross
f6fa766746 Merge pull request #2281 from leangjia/master
Updated Chinese translations
2024-09-11 18:22:38 +03:00
leangjia
68fc90d2db Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 15:47:22 +08:00
leangjia
0c408cf7e7 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 14:27:37 +08:00
leangjia
9409051046 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 13:57:09 +08:00
leangjia
54e559452f Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 13:48:42 +08:00
leangjia
d905f72cd7 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 13:32:34 +08:00
leangjia
44521d8d60 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 13:16:21 +08:00
leangjia
8dd6b6c44d Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 12:52:58 +08:00
leangjia
6257679e44 Updated Chinese translations.
Happy Mid-autumn Festival.
2024-09-11 12:41:05 +08:00
leangjia
6a9849ba2d Updated Chinese translations 2024-09-11 09:52:17 +08:00
leangjia
e1f398d3aa Updated Chinese translations 2024-09-11 09:32:55 +08:00
Ilia Ross
e3acac1ebf Merge pull request #2280 from leangjia/master
Updated Chinese translations
2024-09-10 11:56:15 +03:00
leangjia
a2a1dc12e9 Updated Chinese translations 2024-09-10 16:34:23 +08:00
leangjia
ac967a1fc5 Updated Chinese translations 2024-09-10 16:27:09 +08:00
leangjia
4b14aee655 Merge branch 'master' of https://github.com/leangjia/webmin 2024-09-10 16:14:36 +08:00
leangjia
e4672703e8 Updated Chinese translations 2024-09-10 16:14:25 +08:00
Ilia Ross
147afb9d41 Merge pull request #2278 from MacSteini/master
Update de
2024-09-09 19:27:45 +03:00
MacSteini
c14b3a8e08 Merge branch 'webmin:master' into master 2024-09-09 14:43:01 +01:00
MacSteini
e3112ac41f Update de 2024-09-09 14:41:28 +01:00
Jamie Cameron
cb2be8b8d8 Merge branch 'master' of github.com:webmin/webmin 2024-09-08 15:42:19 -07:00
Jamie Cameron
11b4a8ca54 Just lock the zone file instead of the whole domain, to prevent deadlocks when called from Virtualmin 2024-09-08 15:39:06 -07:00
Ilia Ross
e7f7487930 Merge pull request #2276 from MacSteini/master
Updated de
2024-09-07 19:31:16 +03:00
Ilia Ross
36e2359312 Disable mail counting by default, as the index page won't load at all with a large number of emails in the mailboxes 2024-09-07 19:24:10 +03:00
MacSteini
54793b4596 Update de 2024-09-07 16:32:17 +01:00
Ilia Ross
65f349c1ce Fix to increase the number of default cron jobs to display 2024-09-07 18:28:11 +03:00
MacSteini
992a961590 Update de 2024-09-07 15:59:59 +01:00
MacSteini
f87cc4a121 Update de 2024-09-07 15:43:38 +01:00
MacSteini
261ff535e0 Updated de 2024-09-07 12:46:38 +01:00
MacSteini
e8c1b3dedb Merge branch 'webmin:master' into master 2024-09-07 03:13:32 +01:00
Jamie Cameron
1f6697e05f NSEC3PARAM salt can be - https://github.com/virtualmin/virtualmin-gpl/issues/895 2024-09-06 19:00:42 -07:00
MacSteini
03147121c6 Update de
Minor fix to replace an English phrase with the German equivalent
2024-09-07 02:23:52 +01:00
Jamie Cameron
4b3acba3f8 Merge branch 'master' of github.com:webmin/webmin 2024-09-06 16:15:35 -07:00
Jamie Cameron
38b119ac43 Fix error message for salt field https://github.com/virtualmin/virtualmin-gpl/issues/895 2024-09-06 16:15:27 -07:00
Ilia Ross
ae70f5e4bd Merge pull request #2275 from MacSteini/master
Update de
2024-09-06 18:25:32 +03:00
MacSteini
d3f8859df2 German translation files reviewed and updated 2024-09-06 15:22:42 +01:00
MacSteini
6145783116 Update de
Corrected an unusual way of writing a date
2024-09-06 14:22:09 +01:00
Ilia Ross
5ba6cbe9ab Merge pull request #2274 from MacSteini/master
Updated de and removed de.auto
2024-09-06 16:05:09 +03:00
MacSteini
d55d49e4d0 Update de
Replaced fancy with straight quotes
2024-09-06 12:31:38 +01:00
MacSteini
7bad42f217 Updated de
Reviewed and corrected where applicable. Adapted translation based on the newer changes in EN file
2024-09-06 12:10:17 +01:00
MacSteini
d7b2a41040 Update de 2024-09-06 11:31:38 +01:00
MacSteini
5c723544fe Delete at/lang/de.auto 2024-09-06 11:31:13 +01:00
Ilia Ross
b0e3787461 Merge pull request #2272 from MacSteini/master
Updated German language files
2024-09-06 13:27:16 +03:00
MacSteini
a415a743f6 Merge remote-tracking branch 'upstream/master' 2024-09-06 11:19:03 +01:00
Ilia Ross
4e351b32fb Fix to stress out command name 2024-09-06 12:49:33 +03:00
MacSteini
a326c0939d Update en
Reverted back to its original state.
2024-09-06 10:38:49 +01:00
MacSteini
295318f67f Update en
Reverted back to its original state
2024-09-06 10:26:11 +01:00
MacSteini
3c86a1a158 Update en
Reverted back to its original state
2024-09-06 10:25:02 +01:00
Ilia Ross
33192cc0d9 Merge pull request #2273 from leangjia/master
Updated Chinese translations
2024-09-06 11:56:35 +03:00
Ilia Ross
da20f7c88f Update at module language 2024-09-06 11:48:05 +03:00
Jamie Cameron
d81bf3f569 Stop offering to allow editing of PHP FPM config files, as PHP options cannot be set at the global level https://forum.virtualmin.com/t/urgent-php-fpm-crashes/129009 2024-09-05 22:25:28 -07:00
leangjia
01663dfe25 Updated Chinese translations 2024-09-06 10:11:25 +08:00
MacSteini
bc10564706 Update de 2024-09-06 00:18:26 +01:00
MacSteini
f10998e2b7 Update en
Prefixed double dots with a space as you explained in another PR.
2024-09-06 00:11:32 +01:00
MacSteini
639d558a47 Delete bandwidth/lang/de.auto 2024-09-06 00:00:15 +01:00
MacSteini
edc41bf338 Update de 2024-09-05 23:58:52 +01:00
MacSteini
b9f3152827 Delete passwd/lang/de.auto 2024-09-05 23:53:04 +01:00
MacSteini
04bcccdc43 Update de 2024-09-05 23:50:09 +01:00
MacSteini
f1f4d9b719 Delete webmincron/lang/de.auto 2024-09-05 23:47:27 +01:00
MacSteini
a45964f55e Delete webminlog/lang/de.auto 2024-09-05 23:45:08 +01:00
MacSteini
23def8deb5 Update de 2024-09-05 23:44:30 +01:00
MacSteini
2ba7e4b071 Delete apache/lang/de.auto 2024-09-05 23:20:06 +01:00
MacSteini
33b4223183 Update de 2024-09-05 23:19:56 +01:00
MacSteini
9607c3cae7 Update de 2024-09-05 23:18:27 +01:00
MacSteini
782f0fbedd Update en 2024-09-05 23:07:51 +01:00
MacSteini
7f659978ac Update de 2024-09-05 22:51:25 +01:00
MacSteini
768b586144 Update en
Corrected line 56 - it was the only place where “At” was mentioned.
2024-09-05 22:48:29 +01:00
MacSteini
167d73090e Delete at/lang/de.auto 2024-09-05 22:47:43 +01:00
MacSteini
951dffc3a3 Update de 2024-09-05 22:47:14 +01:00
Jamie Cameron
a5a97eaedb Merge branch 'master' of github.com:webmin/webmin 2024-09-05 11:32:59 -07:00
Jamie Cameron
6b2a9d34bf Use correct state flag during initial rule setup https://github.com/webmin/webmin/issues/2264 2024-09-05 11:31:52 -07:00
MacSteini
b5f79d31a6 Update de 2024-09-05 15:49:09 +01:00
MacSteini
1d272f0490 Delete lang/de.auto 2024-09-05 15:27:47 +01:00
Ilia Ross
b5f2e8f47f Merge pull request #2266 from MacSteini/master
Reviewed and amended German translations
2024-09-05 17:24:56 +03:00
MacSteini
d650d65163 Update de 2024-09-05 15:03:58 +01:00
MacSteini
0389c537be Update de 2024-09-05 12:34:17 +01:00
Ilia Ross
530db71e3f Merge pull request #2271 from leangjia/master
Updated Chinese translations
2024-09-05 12:39:03 +03:00
leangjia
2ad13ccd74 Updated Chinese translations 2024-09-05 17:36:55 +08:00
Ilia Ross
3a90c0e4fe Merge pull request #2270 from leangjia/master
Updated Chinese translations
2024-09-05 12:21:57 +03:00
leangjia
75095eab06 Updated Chinese translations 2024-09-05 17:16:57 +08:00
Ilia Ross
8f2338e1a7 Merge pull request #2269 from leangjia/master
Updated Chinese translations
2024-09-05 11:28:47 +03:00
leangjia
60345c4d8e Updated Chinese translations 2024-09-05 11:17:18 +08:00
Jamie Cameron
b648a21323 Merge pull request #2268 from leangjia/master
Updated Chinese translations
2024-09-03 21:24:34 -07:00
leangjia
d59837dbad Updated Chinese translations 2024-09-04 12:06:27 +08:00
MacSteini
e60e24f1ee Update de 2024-09-03 23:30:35 +01:00
MacSteini
c861bf971e Update de 2024-09-03 14:25:36 +01:00
MacSteini
8bc8c017e6 Update de 2024-09-03 14:20:58 +01:00
Ilia Ross
87bacd1489 Merge pull request #2265 from leangjia/master
Updated Chinese translations
2024-09-03 14:05:53 +03:00
MacSteini
5fae4a69ee Update de 2024-09-03 11:40:07 +01:00
leangjia
1764671ac7 Delete the zh.auto 2024-09-03 18:18:44 +08:00
MacSteini
7f1faaac4d Merged with de 2024-09-03 11:07:34 +01:00
MacSteini
91111d5e82 Update de 2024-09-03 11:06:48 +01:00
leangjia
39a3ebac3b Updated Chinese translations gray-theme zh. 2024-09-03 17:59:12 +08:00
MacSteini
60b87f3b34 Update de 2024-09-03 10:40:29 +01:00
leangjia
758e277328 Updated Chinese translations system-status/lang/zh 2024-09-03 17:35:48 +08:00
leangjia
d02615c0ab Updated Chinese translations filemin lang zh. 2024-09-03 14:14:05 +08:00
liAnGjiA
6051231e73 Merge branch 'webmin:master' into master 2024-09-03 13:18:27 +08:00
leangjia
d80a394d77 Updated Chinese translations acl lang zh. 2024-09-03 13:16:01 +08:00
Ilia Ross
9f64dbd134 Update Swedish translations 2024-09-02 23:58:22 +03:00
Ilia Ross
85e3dc418a Update translations 2024-09-02 23:50:58 +03:00
Jamie Cameron
c607990c48 HTML escape description in services list 2024-09-02 10:14:04 -07:00
Jamie Cameron
c76e257961 Merge branch 'master' of github.com:webmin/webmin 2024-09-02 10:13:27 -07:00
Jamie Cameron
0009335636 HTML escape description in actions list 2024-09-02 10:13:19 -07:00
Ilia Ross
964bc33ed0 Merge pull request #2263 from leangjia/master
Updated Chinese translations change-user lang zh.
2024-09-02 14:19:08 +03:00
leangjia
75087357b0 perfect change-user lang zh. 2024-09-02 16:23:53 +08:00
Jamie Cameron
c0a45fe6ca Merge branch 'master' of github.com:webmin/webmin 2024-08-30 22:12:40 -07:00
Jamie Cameron
da5c68a04f Add ACL option to set the allowed user based on the directory being accessed 2024-08-30 22:10:52 -07:00
Ilia Ross
9966a2ab47 Fix to support source repos
https://forum.virtualmin.com/t/software-package-repos-displaying-duplicates/128831?u=ilia
2024-08-29 15:51:08 +03:00
Jamie Cameron
cffabd972b Fix version selector 2024-08-28 18:00:36 -07:00
Ilia Ross
b2e0db9db9 Add support to apply the patch from the raw link
https://forum.virtualmin.com/t/re-moving-sites-from-directadmin-to-virtualmin/128503/33?u=ilia
2024-08-28 15:20:20 +03:00
Jamie Cameron
d2d070b721 Merge branch 'master' of github.com:webmin/webmin 2024-08-27 21:11:41 -07:00
Jamie Cameron
0939e55b01 Include version of package to get from debian https://github.com/webmin/webmin/issues/2261 2024-08-27 21:11:35 -07:00
Ilia Ross
2259c1a72a Fix language 2024-08-26 15:41:22 +03:00
Ilia Ross
26fc396421 Fix to print in dashboard only allowed fields
https://forum.virtualmin.com/t/obscuring-account-information/128735?u=ilia
2024-08-26 14:46:47 +03:00
Ilia Ross
69823048d2 Fix matching Debian repos
https://forum.virtualmin.com/t/repos-in-virtualmin/128745/3?u=ilia
2024-08-25 21:44:40 +03:00
Ilia Ross
5e57e571b3 Fix the default notification email is set as non-replyable 2024-08-24 19:35:33 +03:00
Jamie Cameron
6e3fb4d806 Merge branch 'master' of github.com:webmin/webmin 2024-08-23 21:36:42 -07:00
Jamie Cameron
f8ce246b37 If there is a password change CGI setup, rate limit how often it can be called to prevent brute-force guessing attacks 2024-08-23 21:36:34 -07:00
Ilia Ross
d45e317303 Merge pull request #2258 from MacSteini/master
Updated German translations
2024-08-23 14:59:51 +03:00
MacSteini
90c0ec556f Update de
Reviewed and merged with de.auto
2024-08-23 11:40:03 +01:00
MacSteini
d65460d50e Update de.auto
Reviewed and merged with de
2024-08-23 10:35:06 +01:00
MacSteini
c757f90f7c Update en
Corrected typos
2024-08-23 10:21:40 +01:00
MacSteini
c34c1b5b6e Update de
Reviewed and merged with de.auto
2024-08-23 10:20:51 +01:00
MacSteini
d553327a11 Update de.auto
Reviewed and moved translations into de
2024-08-23 09:46:35 +01:00
Ilia Ross
6db78a06b8 Fix to implement a fix that allows the root user to lock itself out
125cc7b418 (r145623195)
2024-08-22 01:11:04 +03:00
Ilia Ross
b54f1780c6 Fix not to allow locking only for local root account 2024-08-21 23:16:32 +03:00
Jamie Cameron
d2b2727039 Also update serial in SOA object https://forum.virtualmin.com/t/issue-with-dns-zone-serial-not-updating-in-virtualmin-cloudmin-setup/128622 2024-08-20 22:08:25 -07:00
Jamie Cameron
464a553534 Simplify ppermission mappings 2024-08-20 21:32:33 -07:00
Jamie Cameron
ddbd770dda Add field for setting plugin 2024-08-20 21:28:39 -07:00
Jamie Cameron
6bf6553ff0 Formatting cleanup 2024-08-20 20:39:02 -07:00
Jamie Cameron
01299c0c38 Merge branch 'master' of github.com:webmin/webmin 2024-08-20 10:56:40 -07:00
Jamie Cameron
b71ac3b9a0 Slave zones can now be called secondary https://github.com/webmin/webmin/issues/2257 2024-08-20 10:55:47 -07:00
Ilia Ross
3c347dc92f Merge pull request #2256 from MacSteini/master
Updated German Translation
2024-08-20 17:35:24 +03:00
MacSteini
0860344fd1 Updated de 2024-08-20 14:41:19 +01:00
MacSteini
801fa703bf Moved translations into de 2024-08-20 14:40:36 +01:00
MacSteini
049a8072b8 Update de.auto 2024-08-20 14:26:40 +01:00
Ilia Ross
9e410f45ca Fix lines to fit 80 chars 2024-08-19 15:50:48 +03:00
Ilia Ross
d541abc7f4 Fix to optimize previous code reducing redundancy (no logical changes) 2024-08-19 15:47:59 +03:00
Ilia Ross
e9eda1ddc4 Add ability to write file directly to disk #2254 2024-08-19 05:12:55 +03:00
Ilia Ross
b5b2c3cd6e Fix to correctly test if account lock is supported 2024-08-15 14:23:22 +03:00
Ilia Ross
86e12bd485 Fix to simplify if no password set 2024-08-15 14:22:34 +03:00
Ilia Ross
cbe75574d0 Fix to use the same format when comparing versions 2024-08-15 13:49:24 +03:00
Ilia Ross
cf838e5d9a Fix to test if reuse flags are supported
https://github.com/webmin/webmin/issues/2135#issuecomment-2290975157
2024-08-15 13:48:42 +03:00
Ilia Ross
6cdb1df135 Fix to simplify account lock check
f61c7bd773 (r145408919)
2024-08-15 13:30:32 +03:00
Jamie Cameron
ffc7dac5f1 Plugin needs a with prefix when used in SQL 2024-08-15 03:25:06 -07:00
Jamie Cameron
66ad3fe075 Merge branch 'master' of github.com:webmin/webmin 2024-08-14 03:09:30 -07:00
Jamie Cameron
0b83f310e6 Work on being able to specify plugin 2024-08-14 03:09:21 -07:00
Jamie Cameron
efccfc4db6 Use the same message for wrong user and password 2024-08-14 03:08:26 -07:00
Ilia Ross
c642286a5a Fix to optimize code 2024-08-13 22:57:43 +03:00
Ilia Ross
e8ed462b8c Fix to support replication perms 2024-08-13 22:31:32 +03:00
Ilia Ross
9cecabf781 Add ability to display permissions intelligently 2024-08-13 22:25:17 +03:00
Jamie Cameron
7198370f9b Recommend the perl mysql driver modules 2024-08-12 18:52:39 -07:00
Jamie Cameron
930652699b Merge branch 'master' of github.com:webmin/webmin 2024-08-12 17:38:30 -07:00
Jamie Cameron
c3c7e3ea9e recommend the MySQL DBD and DBI modules https://github.com/webmin/webmin/issues/2253 2024-08-12 17:35:14 -07:00
Jamie Cameron
53f44413f8 remove obsolete comment 2024-08-12 17:49:50 +08:00
Ilia Ross
25321b467b Update changelog 2024-08-11 21:10:43 +03:00
Ilia Ross
dc17b3cbe5 Fix changelog 2024-08-11 21:06:19 +03:00
Ilia Ross
a4621a800b Fix changelog 2024-08-11 21:01:33 +03:00
Jamie Cameron
97308e69aa changelog update 2024-08-11 07:42:09 -07:00
Jamie Cameron
86144e16f7 New version bump 2024-08-11 07:41:05 -07:00
Jamie Cameron
b18b9decd4 Fix schema page description 2024-08-11 03:48:02 -07:00
Jamie Cameron
90cd81893e Fix bugs in LDAP import 2024-08-11 03:42:06 -07:00
Jamie Cameron
9d7c3fdd9a Work on schema import support 2024-08-11 03:27:04 -07:00
Jamie Cameron
c0e36426bd Remove useless fixed spacing 2024-08-11 02:50:23 -07:00
Jamie Cameron
9dd678946d Use proper function to check status 2024-08-08 19:25:14 -07:00
Jamie Cameron
d440ba7f58 Let the user know why no rules are down 2024-08-08 19:24:10 -07:00
Jamie Cameron
090a769145 Use proper function 2024-08-08 19:21:34 -07:00
Jamie Cameron
bcec22b385 Merge branch 'master' of github.com:webmin/webmin 2024-08-08 19:20:43 -07:00
Jamie Cameron
dbfc621482 Add a monitor for firewalld https://github.com/virtualmin/virtualmin-gpl/issues/870 2024-08-08 19:16:00 -07:00
Ilia Ross
6bc70a7738 Add support for disk I/O in FreeBSD 2024-08-07 15:28:58 +03:00
Ilia Ross
f5b3f9cc1d Fix to use os_type for OS check
0ac51a83e9 (r145024453)
2024-08-06 12:21:19 +03:00
Ilia Ross
24055330d3 Fix build system 2024-08-04 17:03:41 +03:00
Ilia Ross
0ac51a83e9 Add an API to count processes 2024-08-03 17:05:56 +03:00
Ilia Ross
e517300fe0 Fix to display wildcard char next to dbs https://github.com/virtualmin/virtualmin-gpl/issues/723#issuecomment-2263713657 2024-08-02 15:22:21 +03:00
Ilia Ross
ae34d0ef86 Fix to unquote database name in view
https://github.com/virtualmin/virtualmin-gpl/issues/723#issuecomment-2262824643
2024-08-01 20:29:40 +03:00
Ilia Ross
8236fb2fd8 Add support to display tag, algo and digests in table #2245 2024-08-01 13:01:30 +03:00
Ilia Ross
f499c62da4 Update CHANGELOG.md 2024-08-01 00:52:57 +03:00
Ilia Ross
a51e3d0a22 Fix BIND service name is now named.service in Debian 12 and Ubuntu 24.04
[build]
2024-08-01 00:34:02 +03:00
Ilia Ross
e1398bf75b Version bump 2.202 2024-07-30 22:13:20 +03:00
Ilia Ross
ba26d2aac0 Merge pull request #2241 from bim-g/update_ui_print_header_documentation
[FIX] Add missing `title` parameter to `ui_print_header` method on the documentation
2024-07-30 05:12:35 +03:00
bim-g
7225ccab73 [FIX] Add missing title parameter to ui_print_header documentation 2024-07-30 01:02:54 +02:00
Ilia Ross
d224d0aafc Fix backup file naming to be consistent with Virtualmin 2024-07-28 23:46:38 +03:00
Ilia Ross
8220fef7e0 Fix to name downloaded backup file nicely #2239
E.g. webmin-backup-config-host.ubuntu24-pro.virtualmin.dev-2024-07-28-20-08.tgz
2024-07-28 20:11:55 +03:00
Jamie Cameron
1a658b1010 If given names are enabled, always add the needed class 2024-07-27 14:53:23 -07:00
Jamie Cameron
4c3b792adc LDAP config file param has moved to the ldap-client module 2024-07-27 14:40:18 -07:00
Jamie Cameron
19940bae86 Base may have a sub-entry for users and groups 2024-07-27 14:26:25 -07:00
Jamie Cameron
256178c6c3 sometimes LDAP connect fails with sigpipe 2024-07-26 21:04:55 -07:00
Jamie Cameron
2a43a870c2 Fix init script name 2024-07-26 19:09:02 -07:00
Jamie Cameron
615765b995 Check status from init script if possible 2024-07-26 19:06:16 -07:00
Jamie Cameron
6f7003965e Merge branch 'master' of github.com:webmin/webmin 2024-07-26 14:56:52 -07:00
Jamie Cameron
d8a7a583a3 Prevent duplication of systemd actions and init scripts https://github.com/webmin/webmin/issues/2227 2024-07-26 14:56:46 -07:00
Jamie Cameron
c51cc8f38a Merge pull request #2234 from webmin/dev/mysql-improve-operations-with-large-dbs
Fix to optimize getting table index structure for large databases
2024-07-26 14:22:58 -07:00
Ilia Ross
5210f623f3 Fix to use prepared statements 2024-07-26 21:11:05 +03:00
Jamie Cameron
ba4b65774e Merge branch 'master' of github.com:webmin/webmin 2024-07-26 10:20:51 -07:00
Jamie Cameron
b1d273c555 BIND 4 is ancient and shouldn't be shown by default https://github.com/webmin/webmin/issues/2232 2024-07-26 10:20:42 -07:00
Ilia Ross
b03f1b766f Fix to optimize getting table index stats for large tables 2024-07-26 19:56:45 +03:00
Ilia Ross
a9ed10401d Update changelog (progress) 2024-07-26 00:55:11 +03:00
Ilia Ross
253d85b6ee Fix setting webprefix for WebSocket URL
https://forum.virtualmin.com/t/after-update-webmin-2-200-cant-view-stat-history/128119/6?u=ilia
2024-07-26 00:41:40 +03:00
Jamie Cameron
0247b71fb7 Show full BIND version https://github.com/webmin/webmin/issues/2226 2024-07-24 14:02:00 -07:00
Jamie Cameron
fd819d83e8 New version bump 2024-07-23 21:58:01 -07:00
Jamie Cameron
8c5fcef916 Fix string for update logging 2024-07-23 21:57:32 -07:00
Jamie Cameron
c15bbca109 Separate comment column https://github.com/webmin/webmin/issues/2221 2024-07-23 21:52:24 -07:00
Jamie Cameron
c47c4b7ffd Merge branch 'master' of github.com:webmin/webmin 2024-07-23 20:12:17 -07:00
Jamie Cameron
8efa25eabf Add missing function 2024-07-23 20:12:06 -07:00
Ilia Ross
190bd58b1b Fix to clarify option name 2024-07-24 03:50:01 +03:00
Ilia Ross
d645dc9345 Update changelog for Webmin 2.201 2024-07-24 03:25:43 +03:00
Ilia Ross
963bb60c02 Fix to go directly to viewing logs on module load 2024-07-24 03:18:31 +03:00
Jamie Cameron
fa4e39ec9a Merge branch 'master' of github.com:webmin/webmin 2024-07-23 17:00:41 -07:00
Jamie Cameron
c1b45ff210 Add option to include compressed rotated logs in searches, and enable it by default, to maintain parity with the old sylog module 2024-07-23 17:00:34 -07:00
Ilia Ross
5cb103bde3 Revert "Fix to call exit after redirect"
This reverts commit e3a1fd849b.
2024-07-24 02:02:14 +03:00
Ilia Ross
7282348b7d Fix to use consistent download page 2024-07-24 00:20:58 +03:00
Ilia Ross
e3a1fd849b Fix to call exit after redirect 2024-07-24 00:20:47 +03:00
Jamie Cameron
1fb01aa46e Fix permissions 2024-07-23 13:50:19 -07:00
Jamie Cameron
779ebb4a63 Fix redirection to first log 2024-07-23 13:50:02 -07:00
Jamie Cameron
c391830670 Fix more cases where switch_to_unix_user isn't being passed the username 2024-07-22 16:48:28 -07:00
Jamie Cameron
c8c6c3e40f Merge branch 'master' of github.com:webmin/webmin 2024-07-22 16:11:41 -07:00
Jamie Cameron
c1f45d6d61 When running a command as a different user, the username needs to be passed to switch_to_unix_user so that all the secondary groups can be populated https://github.com/webmin/webmin/issues/2223 2024-07-22 16:11:37 -07:00
Ilia Ross
8804ba6529 Update CHANGELOG.md 2024-07-22 16:00:56 +03:00
Ilia Ross
11ae39081c Fix to try more simple patch command at first 2024-07-22 14:18:51 +03:00
Jamie Cameron
2751224d4d Really update version 2024-07-21 10:21:20 -07:00
Jamie Cameron
6fce9fa491 New version bump 2024-07-21 10:20:43 -07:00
Jamie Cameron
41fdb5dac2 Fix renumbering when adding a domain 2024-07-20 21:53:49 -07:00
Jamie Cameron
4ffca4597c Clean up group_to_dn function 2024-07-20 21:30:46 -07:00
Jamie Cameron
ecfc06d9c6 Preserve firstname and surname 2024-07-20 21:28:45 -07:00
Jamie Cameron
db55dde7ce Merge branch 'master' of github.com:webmin/webmin 2024-07-20 21:23:16 -07:00
Jamie Cameron
c6edd4b97d Code cleanups 2024-07-20 21:19:01 -07:00
Ilia Ross
8cd2dbae96 Fix to redirect to tabs only inside same module
https://forum.virtualmin.com/t/small-upgrade-error-maybe-wrong-url-on-button/127999?u=ilia
2024-07-21 02:37:32 +03:00
Jamie Cameron
8676a3fb21 Merge branch 'master' of github.com:webmin/webmin 2024-07-20 16:18:25 -07:00
Jamie Cameron
27339eb1bf Use my instead of local 2024-07-20 16:18:16 -07:00
Ilia Ross
e014926854 Update CHANGELOG.md for 2.200 2024-07-21 02:00:01 +03:00
Ilia Ross
a721f60f9c Fix to allow service-worker.js in unauth [build] 2024-07-20 15:57:40 +03:00
Jamie Cameron
46c76e13f9 Merge branch 'master' of github.com:webmin/webmin 2024-07-19 16:52:29 -07:00
Jamie Cameron
f72058306b COnfig option to show hostname and comment https://github.com/webmin/webmin.com/issues/18 2024-07-19 16:52:23 -07:00
Ilia Ross
a15446d3b1 Fix to simplify the code and use no globals [build] 2024-07-19 13:40:14 +03:00
Ilia Ross
fc9ce7f3dd Fix comment 2024-07-19 13:30:01 +03:00
Ilia Ross
72cd50a054 Fix to consider "F" as new theme name "Framed" not "Gray" 2024-07-19 13:13:53 +03:00
Ilia Ross
e307fb4dcd Fix to drop unnecessary option 2024-07-19 12:36:52 +03:00
Jamie Cameron
d631929194 Merge branch 'master' of github.com:webmin/webmin 2024-07-16 16:08:06 -07:00
Jamie Cameron
db9628e7eb Update MIME types for javascript and gzipped files 2024-07-16 16:08:01 -07:00
Jamie Cameron
2c04c04ce7 Merge pull request #2217 from webmin/dev/package-updates-always-show-sec
Fix to always show security updates button
2024-07-16 11:51:16 -07:00
Ilia Ross
a5301245d3 Fix to always show security updates button 2024-07-16 17:38:14 +03:00
Jamie Cameron
165af690c7 Log automatic package updates 2024-07-13 17:07:07 -07:00
Jamie Cameron
29da8ea3d0 Clarify what kind of update it is https://forum.virtualmin.com/t/security-updates-being-auto-installed-regardles-of-software-scheduled-upgrades-set-to-just-notify/127852 2024-07-12 17:22:19 -07:00
Jamie Cameron
73b7e62f13 Merge branch 'master' of github.com:webmin/webmin 2024-07-09 08:30:51 -07:00
Ilia Ross
76141ce22f Fix to use larger QR code [build] 2024-07-09 15:53:18 +03:00
Jamie Cameron
4b575b8168 Clarify comment 2024-07-08 22:55:44 -07:00
Ilia Ross
2b28521297 Fix to display correct return button 2024-07-08 21:03:40 +03:00
Ilia Ross
be767951ca Fix to have no block elements in header 2024-07-08 19:33:52 +03:00
Jamie Cameron
9960d6011f Update comment to match reality 2024-07-07 11:12:47 -07:00
Jamie Cameron
461bd30e2a Save last size and subset mode 2024-07-06 15:26:57 -07:00
Jamie Cameron
2f88a4eefb Follow default reuse option 2024-07-06 15:23:17 -07:00
Jamie Cameron
c9f368d264 Properly check all ServerAlias directives and ports 2024-07-06 15:12:08 -07:00
Jamie Cameron
0e24e8ac61 Merge branch 'master' of github.com:webmin/webmin 2024-07-05 10:32:21 -07:00
Jamie Cameron
1d0d25efac Don't add tab param twice https://sourceforge.net/p/webadmin/bugs/5648/ 2024-07-05 10:01:55 -07:00
Jamie Cameron
1c5d2d2bd7 Merge pull request #2211 from webmin/dev/preserve-file-acls
Add ability to preserve original file ACLs
2024-07-03 15:43:43 -07:00
Ilia Ross
77e809166c Fix to use backquote_command instead 2024-07-03 10:40:20 +03:00
Jamie Cameron
927a2c32d8 Show queue state in list 2024-07-02 21:36:05 -07:00
Jamie Cameron
4a3c6c4854 Merge branch 'master' of github.com:webmin/webmin 2024-07-02 21:21:27 -07:00
Jamie Cameron
37beab77ba Show mail queue directory 2024-07-02 21:21:21 -07:00
Ilia Ross
82f5284ffc Fix to use pipe handling data directly in memory
https://github.com/webmin/webmin/pull/2211#discussion_r1663042881
2024-07-02 22:48:40 +03:00
Ilia Ross
5f579e8ded Fix to invalidate OS EOL data on upgrade 2024-07-02 22:24:09 +03:00
Ilia Ross
4b66ac0be5 Add ability to preserve original file ACLs
https://github.com/webmin/authentic-theme/discussions/1511#discussioncomment-9913902
2024-07-02 20:50:19 +03:00
Jamie Cameron
e69fb75c8e Show the mail queue path 2024-07-01 21:33:22 -07:00
Jamie Cameron
ff8781c112 Merge branch 'master' of github.com:webmin/webmin 2024-07-01 21:15:04 -07:00
Jamie Cameron
0dd75db8d8 Don't wrap header lines 2024-07-01 21:09:17 -07:00
Jamie Cameron
05d01aeef3 Merge pull request #2207 from webmin/dev/patch-api
Add apply patch CLI API
2024-06-30 11:05:00 -07:00
Jamie Cameron
11f2bc20eb Merge branch 'master' of github.com:webmin/webmin 2024-06-30 10:07:08 -07:00
Jamie Cameron
52c3178b92 Add API to delete sections 2024-06-30 10:07:01 -07:00
Jamie Cameron
e3dec2222d Merge pull request #2209 from webmin/dev/separate-temps-collection-2208
Fix to separate drive and CPU temperatures collection #2208
2024-06-30 08:24:26 -07:00
Ilia Ross
05752faec0 Fix to separate drive and CPU temperatures collection #2208 2024-06-30 15:54:47 +03:00
Jamie Cameron
1cf3813fb6 Merge branch 'master' of github.com:webmin/webmin 2024-06-27 19:45:29 -07:00
Jamie Cameron
1216ae709b Stop showing and editing dnssec-lookaside https://github.com/webmin/webmin/issues/617 2024-06-27 19:45:21 -07:00
12478 changed files with 89408 additions and 256491 deletions

221
.github/build/deb.sh vendored
View File

@@ -1,221 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# Automatically builds and updates a repo metadata.
# Pulls latest changes from GitHub, detects release
# version based on what's available in the repo
#
# (Debian)
#
# Usage:
#
# # Pull and build production versions
# # of both Webmin and Usermin
# ./deb.sh
#
# # Pull and build devel versions
# # of both Webmin and Usermin
# ./deb.sh --devel
#
# # Pull and build production Webmin version 2.101, forcing
# # release version 3, displaying detailed output
# ./deb.sh webmin 2.101 3 --debug
#
# # Pull and build production Usermin version 2.000,
# # automatically setting release version to minimal
# ./deb.sh usermin 2.000
#
# shellcheck disable=SC1091
# Source build variables
source ./vars.sh || exit 1
# Source build init
source ./init.sh || exit 1
# Source general build functions
source ./funcs.sh || exit 1
# Build product func
build_prod() {
# Pack with English only in devel builds
local english_only=0
if [[ "'$*'" == *"--devel"* ]]; then
english_only=1
fi
# Always return back to root directory
cd "$root" || exit 1
# Define root
local ver=""
local prod=$1
root_prod="$root/$prod"
root_apt="$root_prod/deb"
# Print build actual date
date=$(get_current_date)
# Print opening header
echo "************************************************************************"
echo " build start date: $date "
echo " package format: DEB "
echo " product: $prod "
(make_prod_repos "$root_prod") &
spinner " package output version:"
# Pull main project first to get the latest tag
cd "$root_prod" || exit 1
cmd="git pull $verbosity_level"
eval "$cmd"
rs1=$?
# Clean and try again
if [ "$rs1" != "0" ]; then
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
rs1=$?
fi
# Descend to theme dir
cd "authentic-theme" || exit 1
cmd="git pull $verbosity_level"
eval "$cmd"
rs2=$?
# Clean and try again
if [ "$rs2" != "0" ]; then
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
rs2=$?
fi
if [ "$rs1" != "0" ] || [ "$rs2" != "0" ]; then
rs=1
else
rs=0
fi
# Build number
date_version=$(get_latest_commit_date_version)
# Handle other params
cd "$root_prod" || exit 1
if [[ "'$2'" != *"--"* ]]; then
ver=$2
fi
if [[ "'$3'" != *"--"* ]] && [[ -n "$3" ]]; then
rel=$3
relval="-$3"
else
rel=1
relval=""
fi
if [ -z "$ver" ]; then
ver=$(get_current_repo_tag)
fi
if [[ "'$*'" == *"--devel"* ]]; then
ver="$ver.$date_version"
# Set actual product version
echo "${ver}" >"version"
fi
printf "$ver-$rel\n"
echo "************************************************************************"
echo "Pulling latest changes.."
# We need to pull first to get the latest tag,
# so here we only report an error if any
postcmd $rs
echo
echo "Pre-clean up .."
# Make sure directories exist
make_dir "$root_repos/"
make_dir "$root_apt/"
make_dir "$root_prod/newkey/deb/"
make_dir "$root_prod/umodules/"
make_dir "$root_prod/minimal/"
make_dir "$root_prod/tarballs/"
# Re-create legacy link
rm -rf "$root/webadmin"
ln -s "$root/webmin" "$root/webadmin"
# Purge old files
purge_dir "$root_prod/newkey/deb"
purge_dir "$root_prod/umodules"
purge_dir "$root_prod/minimal"
purge_dir "$root_prod/tarballs"
if [ "$prod" != "" ]; then
# XXXX Need to check for
# product name exactly
rm -f "$root_repos/$prod-latest"*
fi
postcmd $?
echo
# Descend to project dir
cd "$root_prod" || exit 1
if [ "$english_only" = "1" ]; then
echo "Cleaning languages .."
cmd="./bin/language-manager --mode=clean --yes $verbosity_level_with_input"
eval "$cmd"
postcmd $?
echo
else
# Force restore build directory
if [ ! -f "lang/ja" ]; then
echo "Restoring languages .."
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
postcmd $?
echo
fi
fi
echo "Pre-building package .."
eval "$cmd"
cmd="./makedist.pl \"${ver}${relval}\" $verbosity_level"
eval "$cmd"
postcmd $?
echo
echo "Building package .."
if [ "$relval" == "" ]; then
cmd="./makedebian.pl \"$ver\" $verbosity_level"
else
cmd="./makedebian.pl \"$ver\" \"$rel\" $verbosity_level"
fi
eval "$cmd"
postcmd $?
echo
cd "$root" || exit 1
echo "Preparing built files for upload .."
cmd="cp -f $root_prod/tarballs/${prod}-${ver}*\.tar.gz $root_repos/${prod}-latest.tar.gz $verbosity_level"
eval "$cmd"
cmd="echo $ver-$rel \($date\) > $root_repos/${prod}-latest.version $verbosity_level_to_file"
eval "$cmd"
cmd="find $root_apt -name ${prod}_${ver}${relval}*\.deb -exec mv '{}' $root_repos \; $verbosity_level"
eval "$cmd"
cmd="mv -f $root_repos/${prod}_${ver}${relval}*\.deb $root_repos/${prod}-latest.deb $verbosity_level"
eval "$cmd"
postcmd $?
}
if [ -n "$1" ] && [[ "'$1'" != *"--"* ]]; then
build_prod $@
cloud_upload_list_upload=("$root_repos/$1*")
cloud_upload cloud_upload_list_upload
cloud_repo_sign_and_update
else
build_prod webmin $@
build_prod usermin $@
cloud_upload_list_upload=("$root_repos/*")
cloud_upload cloud_upload_list_upload
cloud_repo_sign_and_update
fi

163
.github/build/funcs.sh vendored
View File

@@ -1,163 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# General build functions
#
#
# Upload to cloud
# Usage:
# cloud_upload_list_delete=("$cloud_upload_ssh_dir/repodata")
# cloud_upload_list_upload=("$root_repos/*" "$root_repos/repodata")
# cloud_upload cloud_upload_list_upload cloud_upload_list_delete
cloud_upload() {
# Print new block only if definded
local ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
if [ -n "$1" ]; then
echo
fi
# Delete files on remote if needed
if [ -n "$2" ]; then
echo "Deleting given files in $cloud_upload_ssh_host .."
local -n arr_del=$2
local err=0
for d in "${arr_del[@]}"; do
if [ -n "$d" ]; then
local cmd1="ssh $ssh_args $cloud_upload_ssh_user@$cloud_upload_ssh_host \"rm -rf $d\" $verbosity_level"
eval "$cmd1"
if [ "$?" != "0" ]; then
err=1
fi
fi
done
postcmd $err
echo
fi
# Upload files to remote
if [ -n "$1" ]; then
echo "Uploading built files to $cloud_upload_ssh_host .."
local -n arr_upl=$1
local err=0
for u in "${arr_upl[@]}"; do
if [ -n "$u" ]; then
local cmd2="scp $ssh_args -r $u $cloud_upload_ssh_user@$cloud_upload_ssh_host:$cloud_upload_ssh_dir/ $verbosity_level"
eval "$cmd2"
if [ "$?" != "0" ]; then
err=1
fi
fi
done
postcmd $err
echo
fi
}
# Sign and update repos metadata in remote
cloud_repo_sign_and_update() {
echo "Signing and updating repos metadata in $cloud_upload_ssh_host .."
local ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
local remote_cmd="cd ~/.scripts && ./update-repo-packages-signature.bash $cloud_upload_gpg_passphrase"
local cmd1="ssh $ssh_args $cloud_upload_ssh_user@$cloud_upload_ssh_host \"$remote_cmd\" $verbosity_level"
eval "$cmd1"
postcmd $?
echo
}
# Post command func
postcmd() {
if [ "$1" != "0" ]; then
echo ".. failed"
exit 1
else
echo ".. done"
fi
}
# Get max number from array
max() {
local -n arr_nums=$1
IFS=$'\n'
echo "${arr_nums[*]}" | sort -nr | head -n1
}
# Mkdir and children dirs
make_dir() {
if [ ! -d "$1" ]; then
mkdir -p "$1"
fi
}
# Remove all content in dir
purge_dir() {
for file in "$1"/*; do
rm -rf "$file"
done
}
# Get latest tag version
get_current_repo_tag() {
cd "$root_prod" || exit 1
tg=$(git rev-list --tags --max-count=1)
ds=$(git describe --tags "$tg")
echo "$ds" | sed 's/v//'
}
# Get latest commit date
get_current_date() {
echo $(date +'%Y-%m-%d %H:%M:%S %z')
}
# Get latest commit date version
get_latest_commit_date_version() {
local theme_version
local prod_version
local max_prod
local highest_version
theme_version=$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%d%H%M')
cd "$root_prod" || exit 1
prod_version=$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%d%H%M')
max_prod=("$theme_version" "$prod_version")
highest_version=$(max max_prod)
echo "$highest_version"
}
# Pull project repo and theme
make_prod_repos() {
# Webmin or Usermin
if [ ! -d "$1" ]; then
local repo="webmin/$prod.git"
cmd="git clone https://github.com/$repo $verbosity_level"
eval "$cmd"
if [ ! -d "webmin" ]; then
cmd="git clone --depth 1 https://github.com/webmin/webmin $verbosity_level"
eval "$cmd"
fi
fi
# Theme
theme="authentic-theme"
if [ ! -d "$1/$theme" ]; then
cd "$1" || exit 1
local repo="webmin/$theme.git"
cmd="git clone --depth 1 https://github.com/$repo $verbosity_level"
eval "$cmd"
fi
}
spinner() {
local msg=$1
local pid=$!
local spin='-\|/'
local i=0
printf "$msg "
while kill -0 $pid 2>/dev/null; do
(( i = (i + 1) % 4 ))
# No spinner if not an interactive shell
if [ -n "$PS1" ]; then
printf '%c\b' "${spin:i:1}"
fi
sleep .1
done
}

29
.github/build/init.sh vendored
View File

@@ -1,29 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# Build init
#
#
# Set up SSH dev keys
if [ -n "$WEBMIN_DEV__SSH_PRV_KEY" ] && [ -n "$WEBMIN_DEV__SSH_PUB_KEY" ]; then
# Generate new pair with right permissions
cmd="ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"$verbosity_level"
eval "$cmd"
# Import SSH keys from secrets to be able to connect to the remote host
echo "$WEBMIN_DEV__SSH_PRV_KEY" > "$HOME/.ssh/id_rsa"
echo "$WEBMIN_DEV__SSH_PUB_KEY" > "$HOME/.ssh/id_rsa.pub"
# Set up SSH production keys
elif [ -n "$WEBMIN_PROD__SSH_PRV_KEY" ] && [ -n "$WEBMIN_PROD__SSH_PUB_KEY" ]; then
# Generate new pair with right permissions
cmd="ssh-keygen -t rsa -q -f \"$HOME/.ssh/id_rsa\" -N \"\"$verbosity_level"
eval "$cmd"
# Import SSH keys from secrets to be able to connect to the remote host
echo "$WEBMIN_PROD__SSH_PRV_KEY" > "$HOME/.ssh/id_rsa"
echo "$WEBMIN_PROD__SSH_PUB_KEY" > "$HOME/.ssh/id_rsa.pub"
fi
# Create symlink to Perl
ln -fs /usr/bin/perl /usr/local/bin/perl

243
.github/build/rpm.sh vendored
View File

@@ -1,243 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# Automatically builds and updates a repo metadata.
# Pulls latest changes from GitHub, detects release
# version based on what's available in the repo
#
# (RHEL)
#
# Usage:
#
# # Pull and build production versions
# # of both Webmin and Usermin
# ./rpm.sh
#
# # Pull and build devel versions
# # of both Webmin and Usermin
# ./rpm.sh --devel
#
# # Pull and build production Webmin version 2.101, forcing
# # release version 3, displaying detailed output
# ./rpm.sh webmin 2.101 3 --debug
#
# # Pull and build production Usermin version 2.000,
# # automatically setting release version to minimal
# ./rpm.sh usermin 2.000
#
# shellcheck disable=SC1091
# Source build variables
source ./vars.sh || exit 1
# Source build init
source ./init.sh || exit 1
# Source general build functions
source ./funcs.sh || exit 1
# Build product func
build_prod() {
# Pack with English only in devel builds
local english_only=0
if [[ "'$*'" == *"--devel"* ]]; then
english_only=1
fi
# Always return back to root directory
cd "$root" || exit 1
# Define root
local ver=""
local prod=$1
root_prod="$root/$prod"
# Print build actual date
date=$(get_current_date)
# Print opening header
echo "************************************************************************"
echo " build start date: $date "
echo " package format: RPM "
echo " product: $prod "
(make_prod_repos "$root_prod") &
spinner " package output version:"
# Pull main project first to get the latest tag
cd "$root_prod" || exit 1
cmd="git pull $verbosity_level"
eval "$cmd"
rs1=$?
# Clean and try again
if [ "$rs1" != "0" ]; then
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
rs1=$?
fi
# Pull theme to theme dir
cd "authentic-theme" || exit 1
cmd="git pull $verbosity_level"
eval "$cmd"
rs2=$?
# Clean and try again
if [ "$rs2" != "0" ]; then
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
rs2=$?
fi
if [ "$rs1" != "0" ] || [ "$rs2" != "0" ]; then
rs=1
else
rs=0
fi
# Build number
date_version=$(get_latest_commit_date_version)
# Handle other params
cd "$root_prod" || exit 1
if [[ "'$2'" != *"--"* ]]; then
ver=$2
fi
if [[ "'$3'" != *"--"* ]] && [[ -n "$3" ]]; then
rel=$3
else
rel=1
fi
if [ -z "$ver" ]; then
ver=$(get_current_repo_tag)
fi
if [[ "'$*'" == *"--devel"* ]]; then
ver="$ver.$date_version"
# Set actual product version
echo "${ver}" >"version"
fi
printf "$ver-$rel\n"
echo "************************************************************************"
echo "Pulling latest changes.."
# We need to pull first to get the latest tag,
# so here we only report an error if any
postcmd $rs
echo
echo "Pre-clean up .."
# Make sure directories exist
make_dir "$root_prod/newkey/rpm/"
make_dir "$root_prod/umodules/"
make_dir "$root_prod/minimal/"
make_dir "$root_prod/tarballs/"
make_dir "$root_build/BUILD/"
make_dir "$root_build/BUILDROOT/"
make_dir "$root_build/RPMS/"
make_dir "$root_build/SOURCES/"
make_dir "$root_build/SPECS/"
make_dir "$root_build/SRPMS/"
make_dir "$root_repos/"
# Re-create legacy link
rm -rf "$root/webadmin"
ln -s "$root/webmin" "$root/webadmin"
# Purge old files
purge_dir "$root_prod/newkey/rpm"
purge_dir "$root_prod/umodules"
purge_dir "$root_prod/minimal"
purge_dir "$root_prod/tarballs"
purge_dir "$root_build/BUILD"
purge_dir "$root_build/BUILDROOT"
purge_dir "$root_build/RPMS"
purge_dir "$root_build/SOURCES"
purge_dir "$root_build/SPECS"
purge_dir "$root_build/SRPMS"
rm -rf "$root_repos/repodata"
if [ "$prod" != "" ]; then
# XXXX Need to check for
# product name exactly
rm -f "$root_repos/$prod-latest"*
fi
postcmd $?
make_dir "$root_build/RPMS/noarch"
echo
# Descend to project dir
cd "$root_prod" || exit 1
if [ "$english_only" = "1" ]; then
echo "Cleaning languages .."
cmd="./bin/language-manager --mode=clean --yes $verbosity_level_with_input"
eval "$cmd"
postcmd $?
echo
else
# Force restore build directory
if [ ! -f "lang/ja" ]; then
echo "Restoring languages .."
cmd="git checkout \"*\" $verbosity_level && git clean -f -d $verbosity_level && git pull $verbosity_level"
eval "$cmd"
postcmd $?
echo
fi
fi
echo "Pre-building package .."
eval "$cmd"
if [ "$rel" = "1" ]; then
args="$ver"
else
args="$ver-$rel"
fi
cmd="./makedist.pl \"$args\" $verbosity_level"
eval "$cmd"
postcmd $?
echo
echo "Building package .."
cmd="./makerpm.pl \"$ver\" \"$rel\" $verbosity_level"
eval "$cmd"
postcmd $?
echo
cd "$root" || exit 1
echo "Preparing built files for upload .."
cmd="cp -f $root_prod/tarballs/$prod-$ver*\.tar.gz $root_repos/${prod}-latest.tar.gz $verbosity_level"
eval "$cmd"
cmd="echo $ver-$rel \($date\) > $root_repos/$prod-latest.version"
eval "$cmd"
cmd="find $root_rpms -name $prod-$ver-$rel*\.rpm -exec mv '{}' $root_repos \; $verbosity_level"
eval "$cmd"
cmd="mv -f $root_repos/$prod-$ver-$rel*\.rpm $root_repos/${prod}-latest.rpm $verbosity_level"
eval "$cmd"
postcmd $?
echo
echo "Post-clean up .."
cd "$root_build" || exit 1
for dir in *; do
cmd="rm -rf \"$dir/*\" $verbosity_level"
eval "$cmd"
done
postcmd $?
}
if [ -n "$1" ] && [[ "'$1'" != *"--"* ]]; then
build_prod $@
cloud_upload_list_upload=("$root_repos/$1*")
cloud_upload cloud_upload_list_upload
cloud_repo_sign_and_update
else
build_prod webmin $@
build_prod usermin $@
cloud_upload_list_upload=("$root_repos/*")
cloud_upload cloud_upload_list_upload
cloud_repo_sign_and_update
fi

27
.github/build/vars.sh vendored
View File

@@ -1,27 +0,0 @@
#!/usr/bin/env bash
#
# Copyright @iliajie <ilia@webmin.dev>
#
# Build variables
#
#
# Set defaults
root="${ENV_BUILD__ROOT:-$HOME}"
root_repos="${ENV_BUILD__ROOT_REPOS:-$root/repo}"
root_build="${ENV_BUILD__ROOT_BUILD:-$root/rpmbuild}"
root_rpms="${ENV_BUILD__ROOT_RPMS:-$root_build/RPMS/noarch}"
# Cloud upload config
cloud_upload_ssh_user="${ENV_BUILD__CLOUD_UPLOAD_SSH_USER:-webmin.dev}"
cloud_upload_ssh_host="${ENV_BUILD__CLOUD_UPLOAD_SSH_HOST:-webmin.dev}"
cloud_upload_ssh_dir="${ENV_BUILD__CLOUD_UPLOAD_SSH_DIR:-~/domains/builds.webmin.dev/public_html}"
cloud_upload_gpg_passphrase="${WEBMIN_DEV__GPG_PH}"
# Define verbosity level
verbosity_level=' >/dev/null 2>&1 </dev/null'
verbosity_level_to_file='2> /dev/null'
verbosity_level_with_input=' >/dev/null 2>&1'
if [[ "'$*'" == *"--debug"* ]]; then
unset verbosity_level verbosity_level_to_file verbosity_level_with_input
fi

27
.github/workflows/webmin.dev+webmin.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
name: "webmin.dev: webmin/webmin"
on:
push:
branches:
- master
release:
types:
- published
- edited
jobs:
build:
uses: webmin/webmin-ci-cd/.github/workflows/master-workflow.yml@main
with:
build-type: package
project-name: webmin
is-release: ${{ github.event_name == 'release' }}
secrets:
DEV_GPG_PH: ${{ secrets.DEV_GPG_PH }}
DEV_IP_ADDR: ${{ secrets.DEV_IP_ADDR }}
DEV_IP_KNOWN_HOSTS: ${{ secrets.DEV_IP_KNOWN_HOSTS }}
DEV_UPLOAD_SSH_USER: ${{ secrets.DEV_UPLOAD_SSH_USER }}
DEV_UPLOAD_SSH_DIR: ${{ secrets.DEV_UPLOAD_SSH_DIR }}
PRERELEASE_UPLOAD_SSH_DIR: ${{ secrets.PRERELEASE_UPLOAD_SSH_DIR }}
DEV_SSH_PRV_KEY: ${{ secrets.DEV_SSH_PRV_KEY }}
DEV_SIGN_BUILD_REPOS_CMD: ${{ secrets.DEV_SIGN_BUILD_REPOS_CMD }}

View File

@@ -1,30 +0,0 @@
name: "webmin.dev: Deploy Webmin package"
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-22.04
if: contains(github.event.head_commit.message, '[build]')
steps:
- uses: actions/checkout@v3
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: git tar gzip openssl curl openssh-client rpm perl libjson-pp-perl libdigest-sha-perl liblist-moreutils-perl libencode-detect-perl
version: 1.0
- uses: szenius/set-timezone@v1.2
with:
timezoneLinux: "Europe/Nicosia"
- name: Build and upload packages
env:
WEBMIN_DEV__SSH_PRV_KEY: ${{ secrets.WEBMIN_DEV__SSH_PRV_KEY }}
WEBMIN_DEV__SSH_PUB_KEY: ${{ secrets.WEBMIN_DEV__SSH_PUB_KEY }}
WEBMIN_DEV__GPG_PH: ${{ secrets.WEBMIN_DEV__GPG_PH }}
ENV_BUILD__CLOUD_UPLOAD_SSH_HOST: ${{ secrets.WEBMIN_DEV__IP_ADDR }}
working-directory: ./.github/build
run: |-
./deb.sh webmin --devel
./rpm.sh webmin --devel

View File

@@ -1,5 +1,43 @@
## Changelog ## Changelog
#### 2.202 (August 12, 2024)
* Add support for importing schemas to the LDAP Server module
* Add support for displaying disk and network I/Os in FreeBSD on the dashboard
* Fix to automatically set the WebSocket URL webprefix correctly
* Fix to name downloaded backup file nicely in Backup Configuration Files module [#2239](https://github.com/webmin/webmin/issues/2239)
* Fix to optimize getting table index stats for large tables in MySQL/MariaDB module [pull#2234](https://github.com/webmin/webmin/pull/2234)
* Fix duplication of _systemd_ actions and init scripts [#2227](https://github.com/webmin/webmin/issues/2227)
* Fix BIND service name for Debian 12 and Ubuntu 24.04
* Update the Authentic theme to the latest version with various fixes and improvements
#### 2.201 (July 24, 2024)
* Fix real-time monitoring not updating graphs in the Dashboard [#2222](https://github.com/webmin/webmin/issues/2222)
* Fix Terminal module to work correctly with _sudo_-capable users [#2223](https://github.com/webmin/webmin/issues/2223)
#### 2.200 (July 21, 2024)
* Add support for blocking a given IP temporarily or permanently in the FirewallD module
* Add support for parsing iCalendar event files in the Mailbox module
* Add support for tailing logs in real time in System Logs module
* Add ability to preserve original file ACLs when writing files [webmin/authentic-theme#1511](https://github.com/webmin/authentic-theme/discussions/1511#discussioncomment-9913902)
* Add a `patch` sub-command to the `webmin` command for easy application of patches
* Add a config option to display hostname and comment in the DHCP Server module [#2221](https://github.com/webmin/webmin/issues/2221)
* Add support for ED25519 and ED448 algorithms in BIND DNS module for DNSSEC
* Add support for larger ranger of authentication methods in Dovecot module
* Add improved support for displaying last logins in the Users and Groups module
* Fix to prevent duplicate `also-notify` and `allow-transfer` IPs in the BIND DNS module
* Fix issues with Terminal module to correct text display problems in editor mode
* Fix to store Terminal module logs in the `/var/webmin` directory
* Fix to display the Spam folder nicely in the Mailbox module
* Fix how modules are loaded in ProFTPd module
* Fix support for the Chrony service on Debian systems in the System Time module
* Fix to use static routes to set the default gateway in Network Configuration module
* Fix to correctly invalidate EOL cache on re-checks [#2139](https://github.com/webmin/webmin/issues/2139)
* Fix to change default monitor name based on database used MariaDB vs MySQL [#2139](https://github.com/virtualmin/virtualmin-gpl/issues/798)
* Fix to disable manual upgrades for systems installed from the repository
* Fix to preserve Webmin service state during package upgrades [#2133](https://github.com/webmin/webmin/issues/2133)
* Change to enforce _sudo_-capable logins as themselves in the Terminal module [docs/modules/terminal](https://webmin.com/docs/modules/terminal/#about)
* Rename "System Logs" module to "System Logs RS" and "System Logs Viewer" to "System Logs" for clarity
#### 2.111 (April 16, 2024) #### 2.111 (April 16, 2024)
* Fix EOL detection for unreleased Linux distributions * Fix EOL detection for unreleased Linux distributions

View File

@@ -1,127 +0,0 @@
package Webmin::API;
require 5.005_62;
require Exporter;
our @ISA = qw(Exporter);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
our @EXPORT = (
'$config_directory',
'$var_directory',
'$remote_error_handler',
'%month_to_number_map',
'%number_to_month_map',
'$config_file',
'%gconfig',
'$null_file',
'$path_separator',
'$root_directory',
'$module_name',
'@root_directories',
'$base_remote_user',
'$remote_user',
'$module_config_directory',
'$module_config_file',
'%config',
'$current_theme',
'$theme_root_directory',
'%tconfig',
'$tb',
'$cb',
'$scriptname',
'$webmin_logfile',
'$current_lang',
'$current_lang_info',
'@lang_order_list',
'%text',
'%module_info',
'$module_root_directory',
'$default_lang',
);
our $VERSION = '1.0';
# Find old symbols by Webmin import
my %oldsyms = %Webmin::API::;
# Preloaded methods go here.
$main::no_acl_check++;
$ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin";
$ENV{'WEBMIN_VAR'} ||= "/var/webmin";
open(MINISERV, $ENV{'WEBMIN_CONFIG'}."/miniserv.conf") ||
die "Could not open Webmin config file ".
$ENV{'WEBMIN_CONFIG'}."/miniserv.conf : $!";
my $webmin_root;
while(<MINISERV>) {
s/\r|\n//g;
if (/^root=(.*)/) {
$webmin_root = $1;
}
}
close(MINISERV);
$webmin_root || die "Could not find Webmin root directory";
chdir($webmin_root);
if ($0 =~ /\/([^\/]+)$/) {
$0 = $webmin_root."/".$1;
}
else {
$0 = $webmin_root."/api.pl"; # Fake name
}
require './web-lib.pl';
&init_config();
# Export core symbols
foreach my $lib ("$webmin_root/web-lib.pl",
"$webmin_root/web-lib-funcs.pl") {
open(WEBLIB, $lib);
while(<WEBLIB>) {
if (/^sub\s+([a-z0-9\_]+)/i) {
push(@EXPORT, $1);
}
}
close(WEBLIB);
}
our @EXPORT_OK = ( @EXPORT );
1;
__END__
=head1 NAME
Webmin::API - Perl module to make calling of Webmin functions from regular
command-line Perl scripts easier.
=head1 SYNOPSIS
use Webmin::API;
@pids = &find_byname("httpd");
foreign_require("cron", "cron-lib.pl");
@jobs = &cron::list_cron_jobs();
=head1 DESCRIPTION
This module just provides a convenient way to call Webmin API functions
from a script that is not run as a Webmin CGI, without having to include a
bunch of boilerplate initialization code at the top. It's main job is to export
all API functions into the namespace of the caller, and to setup the Webmin
environment.
=head2 EXPORT
All core Webmin API functions, like find_byname, foreign_config and so on.
=head1 AUTHOR
Jamie Cameron, jcameron@webmin.com
=head1 SEE ALSO
perl(1).
=cut

View File

@@ -1,6 +0,0 @@
Revision history for Perl extension Webmin::API.
1.0 Mon Dec 10 11:09:17 2007
- original version; created by h2xs 1.20 with options
-AXc -n Webmin::API

View File

@@ -1,5 +0,0 @@
API.pm
Changes
MANIFEST
Makefile.PL
test.pl

View File

@@ -1,768 +0,0 @@
# This Makefile is for the Webmin::API extension to perl.
#
# It was generated automatically by MakeMaker version
# 6.30_01 (Revision: Revision: 4535 ) from the contents of
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
#
# ANY CHANGES MADE HERE WILL BE LOST!
#
# MakeMaker ARGV: ()
#
# MakeMaker Parameters:
# NAME => q[Webmin::API]
# PREREQ_PM => { }
# VERSION_FROM => q[API.pm]
# --- MakeMaker post_initialize section:
# --- MakeMaker const_config section:
# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
# They may have been overridden via Makefile.PL or on the command line
AR = ar
CC = cc
CCCDLFLAGS = -fPIC
CCDLFLAGS = -Wl,-E
DLEXT = so
DLSRC = dl_dlopen.xs
LD = cc
LDDLFLAGS = -shared -L/usr/local/lib
LDFLAGS = -L/usr/local/lib
LIBC = /lib/libc-2.7.so
LIB_EXT = .a
OBJ_EXT = .o
OSNAME = linux
OSVERS = 2.6.24-19-server
RANLIB = :
SITELIBEXP = /usr/local/share/perl/5.8.8
SITEARCHEXP = /usr/local/lib/perl/5.8.8
SO = so
EXE_EXT =
FULL_AR = /usr/bin/ar
VENDORARCHEXP = /usr/lib/perl5
VENDORLIBEXP = /usr/share/perl5
# --- MakeMaker constants section:
AR_STATIC_ARGS = cr
DIRFILESEP = /
DFSEP = $(DIRFILESEP)
NAME = Webmin::API
NAME_SYM = Webmin_API
VERSION = 1.0
VERSION_MACRO = VERSION
VERSION_SYM = 1_0
DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
XS_VERSION = 1.0
XS_VERSION_MACRO = XS_VERSION
XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
INST_ARCHLIB = blib/arch
INST_SCRIPT = blib/script
INST_BIN = blib/bin
INST_LIB = blib/lib
INST_MAN1DIR = blib/man1
INST_MAN3DIR = blib/man3
MAN1EXT = 1p
MAN3EXT = 3pm
INSTALLDIRS = site
DESTDIR =
PREFIX = /usr
PERLPREFIX = $(PREFIX)
SITEPREFIX = $(PREFIX)/local
VENDORPREFIX = $(PREFIX)
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
INSTALLBIN = $(PERLPREFIX)/bin
DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN)
INSTALLSITEBIN = $(SITEPREFIX)/bin
DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN)
INSTALLVENDORBIN = $(VENDORPREFIX)/bin
DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN)
INSTALLSCRIPT = $(PERLPREFIX)/bin
DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT)
INSTALLSITESCRIPT = $(SITEPREFIX)/bin
DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT)
INSTALLVENDORSCRIPT = $(VENDORPREFIX)/bin
DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT)
INSTALLMAN1DIR = $(PERLPREFIX)/share/man/man1
DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR)
INSTALLSITEMAN1DIR = $(SITEPREFIX)/man/man1
DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR)
INSTALLVENDORMAN1DIR = $(VENDORPREFIX)/share/man/man1
DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR)
INSTALLMAN3DIR = $(PERLPREFIX)/share/man/man3
DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR)
INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
PERL_LIB = /usr/share/perl/5.8
PERL_ARCHLIB = /usr/lib/perl/5.8
LIBPERL_A = libperl.a
FIRST_MAKEFILE = Makefile
MAKEFILE_OLD = Makefile.old
MAKE_APERL_FILE = Makefile.aperl
PERLMAINCC = $(CC)
PERL_INC = /usr/lib/perl/5.8/CORE
PERL = /usr/bin/perl
FULLPERL = /usr/bin/perl
ABSPERL = $(PERL)
PERLRUN = $(PERL)
FULLPERLRUN = $(FULLPERL)
ABSPERLRUN = $(ABSPERL)
PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
PERL_CORE = 0
PERM_RW = 644
PERM_RWX = 755
MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
MM_VERSION = 6.30_01
MM_REVISION = Revision: 4535
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
FULLEXT = Webmin/API
BASEEXT = API
PARENT_NAME = Webmin
DLBASE = $(BASEEXT)
VERSION_FROM = API.pm
OBJECT =
LDFROM = $(OBJECT)
LINKTYPE = dynamic
BOOTDEP =
# Handy lists of source code files:
XS_FILES =
C_FILES =
O_FILES =
H_FILES =
MAN1PODS =
MAN3PODS = API.pm
# Where is the Config information that we are using/depend on
CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h
# Where to build things
INST_LIBDIR = $(INST_LIB)/Webmin
INST_ARCHLIBDIR = $(INST_ARCHLIB)/Webmin
INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT)
INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT)
INST_STATIC =
INST_DYNAMIC =
INST_BOOT =
# Extra linker info
EXPORT_LIST =
PERL_ARCHIVE =
PERL_ARCHIVE_AFTER =
TO_INST_PM = API.pm
PM_TO_BLIB = API.pm \
$(INST_LIB)/Webmin/API.pm
# --- MakeMaker platform_constants section:
MM_Unix_VERSION = 1.50_01
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
# --- MakeMaker tool_autosplit section:
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)'
# --- MakeMaker tool_xsubpp section:
# --- MakeMaker tools_other section:
SHELL = /bin/sh
CHMOD = chmod
CP = cp
MV = mv
NOOP = $(SHELL) -c true
NOECHO = @
RM_F = rm -f
RM_RF = rm -rf
TEST_F = test -f
TOUCH = touch
UMASK_NULL = umask 0
DEV_NULL = > /dev/null 2>&1
MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
ECHO = echo
ECHO_N = echo -n
UNINST = 0
VERBINST = 0
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install
UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
MACROSTART =
MACROEND =
USEMAKEFILE = -f
FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
# --- MakeMaker makemakerdflt section:
makemakerdflt: all
$(NOECHO) $(NOOP)
# --- MakeMaker dist section:
TAR = tar
TARFLAGS = cvf
ZIP = zip
ZIPFLAGS = -r
COMPRESS = gzip --best
SUFFIX = .gz
SHAR = shar
PREOP = $(NOECHO) $(NOOP)
POSTOP = $(NOECHO) $(NOOP)
TO_UNIX = $(NOECHO) $(NOOP)
CI = ci -u
RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
DIST_CP = best
DIST_DEFAULT = tardist
DISTNAME = Webmin-API
DISTVNAME = Webmin-API-1.0
# --- MakeMaker macro section:
# --- MakeMaker depend section:
# --- MakeMaker cflags section:
# --- MakeMaker const_loadlibs section:
# --- MakeMaker const_cccmd section:
# --- MakeMaker post_constants section:
# --- MakeMaker pasthru section:
PASTHRU = LIBPERL_A="$(LIBPERL_A)"\
LINKTYPE="$(LINKTYPE)"\
PREFIX="$(PREFIX)"
# --- MakeMaker special_targets section:
.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT)
.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir
# --- MakeMaker c_o section:
# --- MakeMaker xs_c section:
# --- MakeMaker xs_o section:
# --- MakeMaker top_targets section:
all :: pure_all manifypods
$(NOECHO) $(NOOP)
pure_all :: config pm_to_blib subdirs linkext
$(NOECHO) $(NOOP)
subdirs :: $(MYEXTLIB)
$(NOECHO) $(NOOP)
config :: $(FIRST_MAKEFILE) blibdirs
$(NOECHO) $(NOOP)
help :
perldoc ExtUtils::MakeMaker
# --- MakeMaker blibdirs section:
blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists
$(NOECHO) $(NOOP)
# Backwards compat with 6.18 through 6.25
blibdirs.ts : blibdirs
$(NOECHO) $(NOOP)
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
$(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
$(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
$(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
$(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_BIN)
$(NOECHO) $(CHMOD) 755 $(INST_BIN)
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
$(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
$(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
$(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
# --- MakeMaker linkext section:
linkext :: $(LINKTYPE)
$(NOECHO) $(NOOP)
# --- MakeMaker dlsyms section:
# --- MakeMaker dynamic section:
dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT)
$(NOECHO) $(NOOP)
# --- MakeMaker dynamic_bs section:
BOOTSTRAP =
# --- MakeMaker dynamic_lib section:
# --- MakeMaker static section:
## $(INST_PM) has been moved to the all: target.
## It remains here for awhile to allow for old usage: "make static"
static :: $(FIRST_MAKEFILE) $(INST_STATIC)
$(NOECHO) $(NOOP)
# --- MakeMaker static_lib section:
# --- MakeMaker manifypods section:
POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--"
POD2MAN = $(POD2MAN_EXE)
manifypods : pure_all \
API.pm \
API.pm
$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
API.pm $(INST_MAN3DIR)/Webmin::API.$(MAN3EXT)
# --- MakeMaker processPL section:
# --- MakeMaker installbin section:
# --- MakeMaker subdirs section:
# none
# --- MakeMaker clean_subdirs section:
clean_subdirs :
$(NOECHO) $(NOOP)
# --- MakeMaker clean section:
# Delete temporary files but do not touch installed files. We don't delete
# the Makefile here so a later make realclean still has a makefile to use.
clean :: clean_subdirs
- $(RM_F) \
*$(LIB_EXT) core \
core.[0-9] $(INST_ARCHAUTODIR)/extralibs.all \
core.[0-9][0-9] $(BASEEXT).bso \
pm_to_blib.ts core.[0-9][0-9][0-9][0-9] \
$(BASEEXT).x $(BOOTSTRAP) \
perl$(EXE_EXT) tmon.out \
*$(OBJ_EXT) pm_to_blib \
$(INST_ARCHAUTODIR)/extralibs.ld blibdirs.ts \
core.[0-9][0-9][0-9][0-9][0-9] *perl.core \
core.*perl.*.? $(MAKE_APERL_FILE) \
perl $(BASEEXT).def \
core.[0-9][0-9][0-9] mon.out \
lib$(BASEEXT).def perlmain.c \
perl.exe so_locations \
$(BASEEXT).exp
- $(RM_RF) \
blib
- $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL)
# --- MakeMaker realclean_subdirs section:
realclean_subdirs :
$(NOECHO) $(NOOP)
# --- MakeMaker realclean section:
# Delete temporary files (via clean) and also delete dist files
realclean purge :: clean realclean_subdirs
- $(RM_F) \
$(MAKEFILE_OLD) $(FIRST_MAKEFILE)
- $(RM_RF) \
$(DISTVNAME)
# --- MakeMaker metafile section:
metafile : create_distdir
$(NOECHO) $(ECHO) Generating META.yml
$(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
$(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META_new.yml
$(NOECHO) $(ECHO) 'name: Webmin-API' >> META_new.yml
$(NOECHO) $(ECHO) 'version: 1.0' >> META_new.yml
$(NOECHO) $(ECHO) 'version_from: API.pm' >> META_new.yml
$(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
$(NOECHO) $(ECHO) '' >> META_new.yml
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> META_new.yml
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
# --- MakeMaker signature section:
signature :
cpansign -s
# --- MakeMaker dist_basics section:
distclean :: realclean distcheck
$(NOECHO) $(NOOP)
distcheck :
$(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck
skipcheck :
$(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck
manifest :
$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest
veryclean : realclean
$(RM_F) *~ *.orig */*~ */*.orig
# --- MakeMaker dist_core section:
dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE)
$(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \
-e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';'
tardist : $(DISTVNAME).tar$(SUFFIX)
$(NOECHO) $(NOOP)
uutardist : $(DISTVNAME).tar$(SUFFIX)
uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu
$(DISTVNAME).tar$(SUFFIX) : distdir
$(PREOP)
$(TO_UNIX)
$(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME)
$(RM_RF) $(DISTVNAME)
$(COMPRESS) $(DISTVNAME).tar
$(POSTOP)
zipdist : $(DISTVNAME).zip
$(NOECHO) $(NOOP)
$(DISTVNAME).zip : distdir
$(PREOP)
$(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME)
$(RM_RF) $(DISTVNAME)
$(POSTOP)
shdist : distdir
$(PREOP)
$(SHAR) $(DISTVNAME) > $(DISTVNAME).shar
$(RM_RF) $(DISTVNAME)
$(POSTOP)
# --- MakeMaker distdir section:
create_distdir :
$(RM_RF) $(DISTVNAME)
$(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \
-e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');"
distdir : create_distdir distmeta
$(NOECHO) $(NOOP)
# --- MakeMaker dist_test section:
disttest : distdir
cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL
cd $(DISTVNAME) && $(MAKE) $(PASTHRU)
cd $(DISTVNAME) && $(MAKE) test $(PASTHRU)
# --- MakeMaker dist_ci section:
ci :
$(PERLRUN) "-MExtUtils::Manifest=maniread" \
-e "@all = keys %{ maniread() };" \
-e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \
-e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});"
# --- MakeMaker distmeta section:
distmeta : create_distdir metafile
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
-e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"'
# --- MakeMaker distsignature section:
distsignature : create_distdir
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
-e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"'
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
cd $(DISTVNAME) && cpansign -s
# --- MakeMaker install section:
install :: all pure_install doc_install
$(NOECHO) $(NOOP)
install_perl :: all pure_perl_install doc_perl_install
$(NOECHO) $(NOOP)
install_site :: all pure_site_install doc_site_install
$(NOECHO) $(NOOP)
install_vendor :: all pure_vendor_install doc_vendor_install
$(NOECHO) $(NOOP)
pure_install :: pure_$(INSTALLDIRS)_install
$(NOECHO) $(NOOP)
doc_install :: doc_$(INSTALLDIRS)_install
$(NOECHO) $(NOOP)
pure__install : pure_site_install
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
doc__install : doc_site_install
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
pure_perl_install ::
$(NOECHO) umask 022; $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLPRIVLIB) \
$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
$(INST_BIN) $(DESTINSTALLBIN) \
$(INST_SCRIPT) $(DESTINSTALLSCRIPT) \
$(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \
$(INST_MAN3DIR) $(DESTINSTALLMAN3DIR)
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
$(SITEARCHEXP)/auto/$(FULLEXT)
pure_site_install ::
$(NOECHO) umask 02; $(MOD_INSTALL) \
read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
$(INST_LIB) $(DESTINSTALLSITELIB) \
$(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \
$(INST_BIN) $(DESTINSTALLSITEBIN) \
$(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \
$(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \
$(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR)
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
$(PERL_ARCHLIB)/auto/$(FULLEXT)
pure_vendor_install ::
$(NOECHO) umask 022; $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
$(INST_BIN) $(DESTINSTALLVENDORBIN) \
$(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \
$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
doc_perl_install ::
doc_site_install ::
$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
-$(NOECHO) umask 02; $(DOC_INSTALL) \
"Module" "$(NAME)" \
"installed into" "$(INSTALLSITELIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
>> $(DESTINSTALLSITEARCH)/perllocal.pod
doc_vendor_install ::
uninstall :: uninstall_from_$(INSTALLDIRS)dirs
$(NOECHO) $(NOOP)
uninstall_from_perldirs ::
uninstall_from_sitedirs ::
$(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist
uninstall_from_vendordirs ::
# --- MakeMaker force section:
# Phony target to force checking subdirectories.
FORCE:
$(NOECHO) $(NOOP)
# --- MakeMaker perldepend section:
# --- MakeMaker makefile section:
# We take a very conservative approach here, but it's worth it.
# We move Makefile to Makefile.old here to avoid gnu make looping.
$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
$(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
$(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..."
-$(NOECHO) $(RM_F) $(MAKEFILE_OLD)
-$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD)
- $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL)
$(PERLRUN) Makefile.PL
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
false
# --- MakeMaker staticmake section:
# --- MakeMaker makeaperl section ---
MAP_TARGET = perl
FULLPERL = /usr/bin/perl
$(MAP_TARGET) :: static $(MAKE_APERL_FILE)
$(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@
$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
$(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
$(NOECHO) $(PERLRUNINST) \
Makefile.PL DIR= \
MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=
# --- MakeMaker test section:
TEST_VERBOSE=0
TEST_TYPE=test_$(LINKTYPE)
TEST_FILE = test.pl
TEST_FILES =
TESTDB_SW = -d
testdb :: testdb_$(LINKTYPE)
test :: $(TEST_TYPE)
test_dynamic :: pure_all
PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)
testdb_dynamic :: pure_all
PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)
test_ : test_dynamic
test_static :: test_dynamic
testdb_static :: testdb_dynamic
# --- MakeMaker ppd section:
# Creates a PPD (Perl Package Description) for a binary distribution.
ppd:
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1,0,0,0">' > $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' <ABSTRACT></ABSTRACT>' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' <AUTHOR></AUTHOR>' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi" />' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
# --- MakeMaker pm_to_blib section:
pm_to_blib : $(TO_INST_PM)
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
API.pm $(INST_LIB)/Webmin/API.pm
$(NOECHO) $(TOUCH) pm_to_blib
# --- MakeMaker selfdocument section:
# --- MakeMaker postamble section:
# End.

View File

@@ -1,8 +0,0 @@
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
'NAME' => 'Webmin::API',
'VERSION_FROM' => 'API.pm', # finds $VERSION
'PREREQ_PM' => {}, # e.g., Module::Name => 1.1
);

View File

@@ -1,3 +0,0 @@
#!/bin/sh
cd /usr/local/webadmin
tar --exclude blib --exclude .svn --exclude make-module.sh --exclude Makefile -cvzf ~/webmin.com/Webmin-API-1.0.tar.gz Webmin-API-1.0/

View File

@@ -1,20 +0,0 @@
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'
######################### We start with some black magic to print on failure.
# Change 1..1 below to 1..last_test_to_print .
# (It may become useful if the test is moved to ./t subdirectory.)
BEGIN { $| = 1; print "1..1\n"; }
END {print "not ok 1\n" unless $loaded;}
use Webmin::API;
$loaded = 1;
print "ok 1\n";
######################### End of black magic.
# Insert your test code below (better if it prints "ok 13"
# (correspondingly "not ok 13") depending on the success of chunk 13
# of the test code):

View File

@@ -1,500 +1,511 @@
index_title=Webminbenutzer index_title=Webmin-Benutzer
index_user=Benutzer index_user=Benutzer
index_modules=Module index_modules=Module
index_create=Einen neuen Webminbenutzer anlegen index_create=Einen neuen privilegierten Benutzer erstellen.
index_screate=Erzeuge neuen sicheren Benutzer. index_screate=Einen neuen sicheren Benutzer erstellen.
index_convert=Konvertiere Unix- zu Webminbenutzern index_convert=Unix-zu-Webmin-Benutzer konvertieren
index_cert=Fordere ein SSL-Zertifikat an index_cert=SSL-Zertifikat anfordern
index_twofactor=2-Faktor-Authentifizierung index_twofactor=Zwei-Faktor-Authentifizierung
index_certmsg=Klicken Sie auf diese Schaltfläche um ein SSL-Zertifikat anzufordern, mit dem Sie sich sicher an Webmin anmelden können, ohne einen Benutzernamen und ein Kennwort anzugeben. 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_return=Benutzerliste index_return=Benutzerliste
index_none=Keine index_none=Keine
index_edit=Bearbeite Modulzugriffskontrolle : index_edit=Modul-ACL bearbeiten:
index_global=Globale Zugriffskontrolle index_global=Globale ACL
index_users=Webminbenutzer index_users=Webmin-Benutzer
index_groups=Webmingruppen index_groups=Webmin-Gruppen
index_group=Gruppe index_group=Gruppe
index_nousers=Keine editierbaren Webminbenutzer angegeben. index_nousers=Keine bearbeitbaren Webmin-Benutzer definiert.
index_nogroups=Keine editierbaren Webmingruppen angegeben. index_nogroups=Keine Webmin-Gruppen definiert.
index_gcreate=Erzeuge eine neue Webmingruppe index_gcreate=Eine neue Webmin-Gruppe erstellen.
index_members=Mitglieder index_members=Mitglieder
index_modgroups=Module von Gruppe $1 index_modgroups=Module aus Gruppe $1
index_sync=Konfiguriere Unixbenutzer-Synchronisation index_sync=Unix-Benutzersynchronisierung konfigurieren
index_unix=Konfiguriere Unixbenutzer-Authentifizierung index_unix=Unix-Benutzerauthentifizierung konfigurieren
index_sessions=Zeige angemeldete Sitzungen index_sessions=Anmeldesitzungen anzeigen
index_rbac=Setup RBAC index_rbac=RBAC einrichten
index_delete=Lösche ausgewählte index_delete=Ausgewählte löschen
index_joingroup=Zur Gruppe hinzufügen: index_joingroup=Zur Gruppe hinzufügen:
index_eulist=Fehlgeschlagen Benutzer aufzulisten : $1 index_eulist=Fehler beim Auflisten der Benutzer: $1
index_eglist=Fehlgeschlagen Gruppen aufzulisten : $1 index_eglist=Fehler beim Auflisten der Gruppen: $1
edit_title=Webminbenutzer bearbeiten edit_title=Webmin-Benutzer bearbeiten
edit_title2=Webminbenutzer anlegen edit_title2=Webmin-Benutzer erstellen
edit_title3=Erzeuge sicheren Webmin Benutzer edit_title3=Neuen sicheren Webmin-Benutzer erstellen
edit_readonly=Dieser Webminbenutzer sollte über das $1 Modul bearbeitet werden. <a href='$2'>Klicken Sie hier</a>, um diese Warnung zu übergehen und um den Benutzer dennoch zu bearbeiten. Es kann jedoch sein, dass hier vorgenommene Änderungen durch das $1 Modul überschrieben werden! 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_rights=Webminbenutzer-Zugriffskontrolle edit_rights=Zugriffsrechte für Webmin-Benutzer
edit_user=Benutzername edit_user=Benutzername
edit_cloneof=Klone Webmin-Benutzer edit_cloneof=Webmin-Benutzer klonen
edit_real=Echter Name edit_real=Echter Name
edit_group=Mitglied der Gruppe edit_group=Mitglied der Gruppe
edit_pass=Kennwort edit_pass=Passwort
edit_same=Dasselbe wie bei Unix edit_same=Gleich wie Unix
edit_lock=Kein Passwort akzeptiert edit_lock=Kein Passwort akzeptiert
edit_pam=PAM-Authentifizierung edit_pam=PAM-Authentifizierung
edit_unix=Unix-Authentifizierung edit_unix=Unix-Authentifizierung
edit_extauth=Externes Authentifizierungsprogramm edit_extauth=Externes Authentifizierungsprogramm
edit_dont=Nicht ändern edit_dont=Nicht ändern
edit_set=Einstellen auf edit_set=Setze auf
edit_passlocked=Das Kennwort wurde seit $1 Tagen nicht geändert - Zugang gesperrt! edit_passlocked=Passwort wurde seit $1 Tagen nicht geändert Konto gesperrt!
edit_passmax=Das Kennwort wurde seit $1 Tagen nicht geändert - sie müssen dieses bei der nächsten Anmeldung ändern edit_passmax=Passwort wurde seit $1 Tagen nicht geändert muss beim nächsten Login geändert werden
edit_passold=Das Kennwort wurde vor $1 Tagen geändert edit_passold=Passwort wurde zuletzt vor $1 Tagen geändert
edit_passtoday=Das Kennwort wurde vor weniger als einem Tag geändert edit_passtoday=Passwort wurde vor weniger als einem Tag geändert
edit_modules=Module edit_modules=Module
edit_clone=Klonen edit_clone=Klonen
edit_twofactor=2-Faktor-Authentifizierungstyp edit_twofactor=Art der Zwei-Faktor-Authentifizierung
edit_twofactorprov=Benutze Provider $1 mit ID $2 edit_twofactorprov=Verwenden von Anbieter $1 mit ID $2
edit_twofactorcancel=Entferne die 2-Faktor-Authentifizierung Anforderung edit_twofactorcancel=Zwei-Faktor-Authentifizierungsanforderung entfernen
edit_twofactornone=Nichts bisher eingestellt edit_twofactornone=Keine eingerichtet
edit_twofactoradd=Aktiviere 2-Faktor für Benutzer edit_twofactoradd=Zwei-Faktor-Authentifizierung für Benutzer aktivieren
edit_lang=Sprache edit_lang=Sprache
edit_notabs=Module in Kategorien aufteilen? edit_locale=Gebietsschema
edit_logout=Zeit für Inaktivitätsabmeldung edit_notabs=Module kategorisieren?
edit_logout=Abmeldezeit bei Inaktivität
edit_mins=Minuten edit_mins=Minuten
edit_chars=Zeichen edit_chars=Buchstaben
edit_minsize=Minimale Passwortlänge edit_minsize=Minimale Passwortlänge
edit_nochange=Forciere Passwortänderungstage? edit_nochange=Änderung des Passworts erzwingen?
edit_cert=SSL-Zertifikatsname edit_cert=SSL-Zertifikatsname
edit_none=Keine edit_none=None
edit_ips=IP-Zugriffskontrolle edit_ips=IP-Zugriffssteuerung
edit_all=Gestatte Zugriff von allen Adressen edit_all=Von allen Adressen erlauben
edit_allow=Gestatte Zugriff nur von aufgelisteten Adressen edit_allow=Nur von aufgelisteten Adressen erlauben
edit_deny=Verweigere von aufgelisteten Adressen edit_deny=Von aufgelisteten Adressen verweigern
edit_ipdesc=Die Benutzer-IP-Zugriffskontrolle funktioniert auf die gleiche Weise wie die globale IP-Zugriffskontrolle im Webminkonfigurationsmodul. Nur wenn ein Benutzer die globale Kontrolle passiert, werden diese Regeln hier überprüft werden. 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=Experten-Level edit_skill=Fähigkeitsstufe
edit_risk=Risiko-Level edit_risk=Risikoebene
edit_risk_high=Erfahrener Benutzer edit_risk_high=Superbenutzer
edit_risk_medium=Administrator edit_risk_medium=Admin-Benutzer
edit_risk_low=Normaler Benutzer edit_risk_low=Normaler Benutzer
edit_groupmods=(Zusätzlich zu Modulen der Gruppe) edit_groupmods=(Zusätzlich zu Modulen aus der Gruppe)
edit_euser=Sie haben keine Berechtigung diesen Benutzer zu bearbeiten edit_euser=Sie dürfen diesen Benutzer nicht bearbeiten
edit_egone=Ausgewählter Benutzer existiert nicht länger! edit_egone=Ausgewählter Benutzer existiert nicht mehr!
edit_ecreate=Sie haben keine Berechtigung Benutzer anzulegen edit_ecreate=Sie dürfen keine Benutzer erstellen
edit_theme=Persönliches Design edit_theme=Persönliches UI-Theme
edit_themeglobal=Aus der Webminkonfiguration edit_themeglobal=Von Webmin-Konfiguration
edit_themedef=Altes Webmindesign edit_themedef=Legacy-Theme
edit_overlay=Personal theme overlay edit_overlay=Persönliches Theme-Overlay
edit_overlayglobal=Keine - nutze Design Standard edit_overlayglobal=None Standard-Theme verwenden
edit_log=Zeige Aufzeichnungen edit_log=Protokolle anzeigen
edit_selall=Alles auswählen edit_selall=Alle auswählen
edit_invert=Auswahl umkehren edit_invert=Auswahl umkehren
edit_hide=Verberge Unbenutzte edit_hide=Ungenutzte ausblenden
edit_switch=Zu Benutzer wechseln edit_switch=Zum Benutzer wechseln
edit_return=Webminbenutzer edit_return=Webmin-Benutzer
edit_return2=Webmingruppe edit_return2=Webmin-Gruppe
edit_rbacdeny=RBAC-Zugriffsmodus edit_rbacdeny=RBAC-Zugriffsmodus
edit_rbacdeny0=RBAC kontrolliert nur ausgewählte Modul-ACLs edit_rbacdeny0=RBAC steuert nur ausgewählte Modul-ACLs
edit_rbacdeny1=RBAC kontrolliert alle Module und ACLs edit_rbacdeny1=RBAC steuert alle Module und ACLs
edit_global=Rechte für alle Module edit_global=Berechtigungen für alle Module
edit_templock=Temporär gesperrt edit_templock=Vorübergehend gesperrt
edit_temppass=Erzwinge Änderungen bei der nächsten Anmeldung edit_temppass=Änderung beim nächsten Login erzwingen
edit_days=Erlaubte Tage der Woche edit_days=Erlaubte Wochentage
edit_alldays=Jeden Tag edit_alldays=Jeden Tag
edit_seldays=Nur gewählte Tage .. edit_seldays=Nur ausgewählte Tage ..
edit_hours=Erlaubte Zeit des Tages edit_hours=Erlaubte Tageszeiten
edit_allhours=Jederzeit edit_allhours=Jederzeit
edit_selhours=Von $1:$2 nach $3:$4 edit_selhours=Von $1:$2 bis $3:$4
edit_ui=Optionen des Benutzerinterfaces edit_ui=Benutzeroberflächenoptionen
edit_security=Sicherheits- und Begrenzungsoptionen edit_security=Sicherheits- und Einschränkungsoptionen
edit_mods=Verfügbare Webminmodule edit_mods=Verfügbare Webmin-Module
edit_modsg=Verfügbare Webminmodule (zusätzlich zu Modulen der Gruppe) edit_modsg=Verfügbare Webmin-Module (neben denen aus der Gruppe)
edit_proto=Speichertyp edit_proto=Speichertyp
edit_proto_mysql=MySQL Datenbank edit_proto_mysql=MySQL-Datenbank
edit_proto_postgresql=PostgreSQL Datenbank edit_proto_postgresql=PostgreSQL-Datenbank
edit_proto_ldap=LDAP Server edit_proto_ldap=LDAP-Server
edit_proto_=Lokale Dateien edit_proto_=Lokale Dateien
edit_safe=Privileg Stufe edit_safe=Privilegienstufe
edit_safe0=Unbeschränkt edit_safe0=Uneingeschränkt
edit_safe1=Nur Sichere Module edit_safe1=Nur sichere Module
edit_unsafe=Zurücksetzen auf unbeschränkt edit_unsafe=Auf uneingeschränkt zurücksetzen
save_err=Fehler beim Speichern des Benutzers save_err=Fehler beim Speichern des Benutzers
save_ename='$1' ist kein gültiger Benutzername save_ename='$1' ist kein gültiger Benutzername
save_eunixname='$1' ist kein System Benuter und kann daher nicht im sicheren Modus genutzt werden save_eunixname=Der Benutzername '$1' ist kein Unix-Benutzer und kann daher im sicheren Modus nicht verwendet werden
save_enamewebmin=Der Benutzername 'webmin' ist reserviert für interne Zwecke save_enamewebmin=Der Benutzername 'webmin' ist für interne Zwecke reserviert
save_edup=Der Benutzername '$1' wird bereits genutzt save_edup=Der Benutzername '$1' wird bereits verwendet
save_eoverlay=Das Personal theme overlay kann nicht ausgewählt werden, wenn das theme ist save_eoverlay=Ein Theme-Overlay kann nur ausgewählt werden, wenn ein Theme vorhanden ist
save_edeny=Sie können sich nicht selbst das Zugriffsrecht auf Webminbenutzer entziehen save_edeny=Sie können sich selbst keinen Zugriff auf das Webmin Users-Modul verweigern
save_eos=Die Option "Dasselbe Kennwort wie bei Unix" wird nicht von Ihrem Betriebssystem unterstützt. save_eos=Die Option "Gleich wie Unix" für Passwörter wird von Ihrem Betriebssystem nicht unterstützt.
save_emd5=Die Option "Dasselbe Kennwort wie bei Unix" kann nicht auf Systemen mit MD5-verschlüsselten Kennwörtern benutzt werden. save_emd5=Die Option "Gleich wie Unix" für Passwörter kann auf Systemen mit MD5-Verschlüsselung nicht verwendet werden
save_eunix=Der Benutzer '$1' existiert nicht save_eunix=Der Unix-Benutzer '$1' existiert nicht
save_emod=Sie haben keine Berechtigung den Zugriff auf das Modul '$1' zu gewähren save_emod=Sie können keinen Zugriff auf das Modul '$1' gewähren
save_ecreate=Sie haben keine Berechtigung einen Benutzer anzulegen save_ecreate=Sie dürfen keine Benutzer erstellen
save_euser=Sie haben keine Berechtigung diesen Benutzer zu bearbeiten save_euser=Sie dürfen diesen Benutzer nicht bearbeiten
save_ecolon=Kennwörter dürfen keinen Doppelpunkt (:) enthalten save_ecolon=Passwörter dürfen nicht das : Zeichen enthalten
save_epass=Kennwort ist nicht gültig : $1 save_epass=Passwort ist nicht gültig: $1
save_eself=Ihrer aktuellen IP-Adresse ($1) würde der Zugriff verweigert save_eself=Ihre aktuelle IP-Adresse ($1) würde abgelehnt
save_epam=PAM-Authentifizierung ist nicht verfügbar, da das <tt>Authen::PAM</tt> Perl-Modul nicht installiert ist oder nicht richtig arbeitet. 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 Webmin-Modul 'Perl-Module' benutzen um <a href='$1'>Authen::PAM herunterzuladen und zu installieren</a>. 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 haben keine Erlaubnis dieser Gruppe jemanden zuzuweisen save_egroup=Sie dürfen nicht der Gruppe zuweisen
save_enone=Keine Adressen eingegeben save_enone=Keine Adressen eingegeben
save_enet='$1' ist keine gültige Netzwerk-Adresse save_enet='$1' ist keine gültige Netzwerkadresse
save_emask='$1' ist keine gültige Netzmaske save_emask='$1' ist keine gültige Netzmaske
save_eip='$1' ist keine vollständige IP- oder Netzwerk-Adresse save_eip='$1' ist keine vollständige IP- oder Netzwerkadresse
save_ehost=Keine IP-Adresse für '$1' gefunden save_ehost=Fehler beim Finden der IP-Adresse für '$1'
save_elogouttime=Fehlende oder ungültige nicht-numerische Zeitangabe für die Inaktivitätsabmeldung. save_elogouttime=Fehlende oder nicht-numerische Abmeldezeit bei Inaktivität
save_eminsize=Vermisse minimale Kennwortlänge oder ungültiger Wert save_eminsize=Fehlende oder nicht-numerische minimale Passwortlänge
save_edays=Keinen erlaubten Tag ausgewählt save_edays=Keine Tage ausgewählt
save_ehours=Vermisse erlaubte Zeit oder ungültiger Wert save_ehours=Fehlende oder ungültige Zeiten
save_ehours2=Erlaubte Start Zeit muss vor dem Ende sein save_ehours2=Startzeit muss vor Endzeit liegen
save_etemp=Die Option, ein Kennwortänderung bei der nächsten Anmeldung erzwingen, kann nicht benutzt werden, es sei denn <a href='$1'>Benutzer werden aufgefordert ein neues Passwort eingeben</a> aktiviert ist 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
delete_err=Fehler beim Löschen des Benutzers delete_err=Fehler beim Löschen des Benutzers
delete_eself=Sie können sich selber nicht löschen delete_eself=Sie können sich nicht selbst löschen
delete_ecannot=Sie haben keine Berechtigung Benutzer zu löschen delete_ecannot=Sie dürfen keine Benutzer löschen
delete_euser=Sie haben keine Berechtigung diesen Benutzer zu löschen delete_euser=Sie dürfen diesen Benutzer nicht löschen
delete_eanonuser=Dieser Benutzer wird für anonymen Modul-Zugriff verwendet delete_eanonuser=Dieser Benutzer wird für den anonymen Modulzugriff verwendet
cert_title=Zertifikatsanfrage cert_title=Zertifikat anfordern
cert_issue=Zertifikat ausstellen cert_issue=Zertifikat ausstellen
cert_header=Details des neuen Zertifikats cert_header=Details des neuen Zertifikats
cert_msg=Hier können Sie ein SSL-Client-Zertifikat zu beantragen, das Ihnen in Zukunft ohne Eingabe von Benutzername und Kennwort einen sicheren Zugriff auf Webmin gestattet. Da jedoch diese Authentifizierung automatisch geschieht, ist es nicht möglich zu einem anderen Benutzer zu wechseln. 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 Client-Zertifikate für Ihren Browser ausgestellt werden sollen ( $1 ) cert_ebrowser=Webmin weiß nicht, wie man Client-Zertifikate für Ihren Browser ( $1 ) ausstellt
cert_cn=Ihr Name cert_cn=Ihr Name
cert_email=E-Mail-Adresse cert_email=E-Mail-Adresse
cert_ou=Abteilung cert_ou=Abteilung
cert_o=Organisation cert_o=Organisation
cert_sp=Bundesland cert_sp=Bundesland
cert_c=Ländercode cert_c=Ländercode
cert_key=Schlüsselgröße cert_key=Schlüssellänge
cert_done=Ihr Zertifikat für $1 wurde erfolgreich generiert. cert_done=Ihr Zertifikat für $1 wurde erfolgreich erstellt.
cert_pickup=<a href='$1'>Klicken Sie hier, um Ihr Zertifikat aufzunehmen und es in Ihrem Browser zu installieren.</a> cert_pickup=<a href='$1'>Klicken Sie hier, um Ihr Zertifikat abzuholen und in Ihrem Browser zu installieren</a>
cert_install=Installiere Ihr Zertifikat in den Browser cert_install=Installieren Sie Ihr Zertifikat im Browser
cert_ekey=Ein neuer SSL-Schlüssel wurde nicht von Ihrem Browser übertragen - vielleicht unterstützt Ihr Browser keine Client-Zertifikate. cert_ekey=Ein neuer SSL-Schlüssel wurde von Ihrem Browser nicht übermittelt - möglicherweise unterstützt er keine SSL-Client-Zertifikate.
cert_eca=Das Erstellen der Zertifikatsautorität schlug fehl : $1 cert_eca=Fehler beim Einrichten der Zertifizierungsstelle: $1
cert_already=Warnung - Sie benutzen bereits das Zertifikat $1. cert_already=Warnung - Sie verwenden bereits das Zertifikat $1.
cert_etempdir=Ungültige Zertifikatdatei cert_etempdir=Ungültige Zertifikatsdatei
acl_title=Modulzugriffskontrolle acl_title=Modul-Zugriffskontrolle
acl_title2=Für $1 in $2 acl_title2=Für $1 in $2
acl_title3=Für Gruppe $1 in $2 acl_title3=Für Gruppe $1 in $2
acl_options=$1 Zugriffskontrolleinstellungen acl_options=Zugriffskontrolloptionen für $1
acl_config=Darf Modulkonfiguration bearbeiten? acl_config=Kann die Modulkonfiguration bearbeiten?
acl_reset=Zurücksetzen auf Vollzugriff acl_reset=Auf Vollzugriff zurücksetzen
acl_rbac=Beziehe ACL-Einstellungen von RBAC? acl_rbac=Zugriffskontrolleinstellungen von RBAC übernehmen?
acl_rbacyes=Ja (übergehe Einstellungen unten) acl_rbacyes=Ja (überschreibt die untenstehenden Einstellungen)
acl_uall=Alle Benutzer acl_uall=Alle Benutzer
acl_uthis=Diesen Benutzer acl_uthis=Dieser Benutzer
acl_usel=Ausgewählte Benutzer .. acl_usel=Ausgewählte Benutzer ..
acl_gr=Mitglieder von $1 acl_gr=Mitglieder von $1
acl_users=Benutzer die bearbeitet werden dürfen acl_users=Benutzer, die bearbeitet werden können
acl_mods=Darf Zugriff gewähren auf acl_mods=Kann Zugriff gewähren auf
acl_all=Alle Module acl_all=Alle Module
acl_own=Nur seine eigenen Module acl_own=Nur eigene Module
acl_sel=Ausgewählte Module .. acl_sel=Ausgewählte Module ..
acl_create=Darf neue Benutzer erstellen? acl_create=Kann neue Benutzer erstellen?
acl_delete=Darf Benutzer löschen? acl_delete=Kann Benutzer löschen?
acl_rename=Darf Benutzer umbenennen? acl_rename=Kann Benutzer umbenennen?
acl_acl=Darf Modulzugriffskontrolle bearbeiten? acl_acl=Kann Modul-Zugriffskontrolle bearbeiten?
acl_lang=Darf Sprache ändern? acl_lang=Kann Sprache ändern?
acl_chcert=Darf den SSL-Zertifikatsnamen ändern? acl_locale=Kann Regionaleinstellungen ändern?
acl_euser=Sie haben keine Berechtigung die Modulzugriffskontrollen für diesen Benutzer zu bearbeiten acl_chcert=Kann SSL-Zertifikatsnamen ändern?
acl_egroup=Sie haben keine Berechtigung die Modulzugriffskontrollen der Gruppen zu bearbeiten acl_euser=Sie dürfen die ACL für diesen Benutzer nicht bearbeiten
acl_emod=Sie haben keine Berechtigung die Modulzugriffskontrollen für dieses Modul zu bearbeiten acl_egroup=Sie dürfen die Gruppen-ACLs nicht bearbeiten
acl_others=Darf Module sehen auf die er keinen Zugriff hat? acl_emod=Sie dürfen die ACL für dieses Modul nicht bearbeiten
acl_cert=Darf Zertifikat beantragen? acl_others=Kann nicht zugängliche Module sehen?
acl_err=Fehler beim Speichern der Modulzugriffskontrollen acl_cert=Kann Zertifikate anfordern?
acl_groups=Darf Gruppen bearbeiten? acl_err=Fehler beim Speichern der Zugriffskontrolle
acl_gassign=Darf Benutzer zu Gruppen hinzufügen acl_groups=Kann Gruppen bearbeiten?
acl_gassign=Kann Benutzer Gruppen zuweisen
acl_gall=Alle Gruppen acl_gall=Alle Gruppen
acl_gsel=Ausgewählte .. acl_gsel=Ausgewählt ..
acl_gnone=Keine acl_gnone=Keine
acl_perms=Neu erzeugte Benutzer erhalten acl_perms=Neu erstellte Benutzer erhalten
acl_perms_1=Gleiche Modulzugriffskontrolle wie Ersteller acl_perms_1=Gleiche Modul-Zugriffskontrolle wie Ersteller
acl_perms_0=Standard (unbeschränkte) Modulzugriffskontrolle acl_perms_0=Standard (uneingeschränkte) Modul-Zugriffskontrolle
acl_sync=Darf Benutzer-Synchronisation verändern? acl_sync=Kann Benutzersynchronisierung konfigurieren?
acl_unix=Darf Unix-Authentifizierung verändern? acl_unix=Kann Unix-Authentifizierung konfigurieren?
acl_sessions=Darf angemeldete Sitzungen anzeigen und abbrechen? acl_sessions=Kann Anmeldesitzungen anzeigen und abbrechen?
acl_cats=Darf Kategorisierung verändern? acl_cats=Kann Kategorisierung ändern?
acl_theme=Darf persönliches Design ändern? acl_theme=Kann persönliches Theme ändern?
acl_ips=Darf IP-Zugriffskontrolle ändern? acl_ips=Kann IP-Zugriffskontrolle ändern?
acl_switch=Darf den Benutzer wechseln? acl_switch=Kann zu anderen Benutzern wechseln?
acl_times=Kann erlaubte Anmeldezeit ändern? acl_times=Kann erlaubte Anmeldezeiten ändern?
acl_pass=Kann Kennwort Einschränkungen ändern? acl_pass=Kann Passwortbeschränkungen ändern?
acl_sql=Kann Benutzer- und Gruppendatenbank zu konfigurieren? acl_sql=Kann Benutzer- und Gruppendatenbank konfigurieren?
log_modify=Webminbenutzer $1 modifiziert log_modify=Webmin-Benutzer $1 geändert
log_rename=Webminbenutzer $1 zu $2 umbenannt log_rename=Webmin-Benutzer $1 in $2 umbenannt
log_create=Webminbenutzer $1 erzeugt log_create=Webmin-Benutzer $1 erstellt
log_clone=Webminbenutzer $1 zu $2 dupliziert log_clone=Webmin-Benutzer $1 nach $2 kopiert
log_delete=Webminbenutzer $1 gelöscht log_delete=Webmin-Benutzer $1 gelöscht
log_acl=Zugriff für $1 in $2 aktualisiert log_acl=Zugriff für $1 in $2 aktualisiert
log_reset=Setze Zugriff zurück für $1 in $2 log_reset=Zugriff für $1 in $2 zurückgesetzt
log_cert=Ausgegebenes Zertifikat für Benutzer $1 log_cert=Zertifikat für Benutzer $1 ausgestellt
log_modify_g=Webmingruppe $1 modifiziert log_modify_g=Webmin-Gruppe $1 geändert
log_rename_g=Webmingruppe $1 to $2 umbenannt log_rename_g=Webmin-Gruppe $1 in $2 umbenannt
log_create_g=Webmingruppe $1 erzeugt log_create_g=Webmin-Gruppe $1 erstellt
log_delete_g=Webmingruppe $1 gelöscht log_delete_g=Webmin-Gruppe $1 gelöscht
log_switch=Gewechselt zu Benutzer $1 log_switch=Zu Webmin-Benutzer $1 gewechselt
log_delete_users=$1 Webminbenutzer gelöscht log_delete_users=$1 Webmin-Benutzer gelöscht
log_delete_groups=$1 Webmingruppen gelöscht log_delete_groups=$1 Webmin-Gruppen gelöscht
log_joingroup=$1 Webmin-Benutzer zur Gruppe $2 hinzugefügt log_joingroup=$1 Webmin-Benutzer zur Gruppe $2 hinzugefügt
log_pass=Geänderte Kennwortrestriktionen log_pass=Passwortbeschränkungen geändert
log_unix=Ändere Unixbenutzer-Authentifizierung log_unix=Unix-Authentifizierung geändert
log_sync=Ändere Unixbenutzer-Syncronisation log_sync=Unix-Benutzersynchronisierung geändert
log_sql=Benutzer- und Gruppendatenbank geändert log_sql=Benutzer- und Gruppendatenbank geändert
log_twofactor=Benutzer $1 mit 2-Faktor-Anbieter $2 angemeldet log_twofactor=Benutzer $1 bei Zwei-Faktor-Anbieter $2 registriert
log_onefactor=Benutzer $1 für die 2-Faktor-Authentifizierung abgemeldet log_onefactor=Benutzer $1 von Zwei-Faktor-Authentifizierung abgemeldet
gedit_ecannot=Sie sind nicht berechtigt Gruppen zu bearbeiten gedit_ecannot=Sie dürfen Gruppen nicht bearbeiten
gedit_title=Bearbeite Webmingruppe gedit_title=Webmin-Gruppe bearbeiten
gedit_title2=Erzeuge Webmingruppe gedit_title2=Webmin-Gruppe erstellen
gedit_group=Gruppenname gedit_group=Gruppenname
gedit_rights=Webmingruppen-Zugriffskontrolle gedit_rights=Webmin-Gruppen-Zugriffsrechte
gedit_modules=Erlaubte Module gedit_modules=Module der Mitglieder
gedit_members=Mitgliederbenutzer und -gruppen gedit_members=Mitgliedsbenutzer und -gruppen
gedit_desc=Gruppenbeschreibung gedit_desc=Gruppenbeschreibung
gedit_egone=Ausgewählte Gruppe existiert nicht mehr! gedit_egone=Ausgewählte Gruppe existiert nicht mehr!
gdelete_err=Fehler beim Löschen einer Gruppe gdelete_err=Fehler beim Löschen der Gruppe
gdelete_ecannot=Sie sind nicht berechtigt Gruppen zu löschen gdelete_ecannot=Sie dürfen Gruppen nicht löschen
gdelete_euser=Sie können Ihre eigene Gruppe nicht löschen gdelete_euser=Sie können Ihre eigene Gruppe nicht löschen
gdelete_esub=Gruppen, die Untergruppen enthalten, können nicht gelöscht werden gdelete_esub=Gruppen mit Untergruppen können nicht gelöscht werden
gdelete_title=Gruppe löschen gdelete_title=Gruppe löschen
gdelete_desc=Sind Sie sicher, dass Sie die Gruppe $1 und Benutzer $2 löschen wollen? gdelete_desc=Wollen Sie die Gruppe $1 und ihre Mitgliedsbenutzer $2 wirklich löschen?
gdelete_ok=Gruppe löschen gdelete_ok=Gruppe löschen
gsave_err=Fehler beim Speichern der Gruppe gsave_err=Fehler beim Speichern der Gruppe
gsave_ename=Fehlender oder ungültiger Gruppenname gsave_ename=Fehlender oder ungültiger Gruppenname
gsave_enamewebmin=Der Gruppenname 'webmin' ist für interne Zwecke reserviert gsave_enamewebmin=Der Gruppenname 'webmin' ist für die interne Nutzung reserviert
gsave_edup=Gruppenname wird bereits benutzt 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_title=Benutzer konvertieren
convert_ecannot=Sie sind nicht berechtigt Unixbenutzer zu konvertieren convert_ecannot=Sie dürfen Unix-Benutzer nicht konvertieren
convert_nogroups=Auf Ihrem System wurden keine Webmingruppen definiert. Wenigstens eine Gruppe muss vor der Konvertierung angelegt sein, um Rechte für die konvertierten Benutzer zu definieren. 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=Dieses Formular erlaubt Ihnen existierende Unixbenutzer zu Webminbenutzern zu konvertieren. Die Rechte jedes neuen Webminbenutzers werden durch die unten ausgewählte Gruppe bestimmt. 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_0=Alle Benutzer convert_0=Alle Benutzer
convert_1=Nur Benutzer convert_1=Nur Benutzer
convert_2=Alle außer Benutzer convert_2=Alle außer Benutzern
convert_3=Benutzer mit Gruppe convert_3=Benutzer mit Gruppe
convert_4=Benutzer mit UIDs im Bereich convert_4=Benutzer mit UIDs im Bereich
convert_group=Zuweisung neuer Benutzer zur Webmingruppe convert_group=Neuen Benutzern Webmin-Gruppe zuweisen
convert_sync2=Synchronisiere zukünftig Passwort mit Unix Benutzer? convert_sync2=Passwort zukünftig mit Unix-Benutzer synchronisieren?
convert_ok=Konvertiere jetzt convert_ok=Jetzt konvertieren
convert_err=Fehler beim Konvertieren der Benutzer convert_err=Fehler bei der Konvertierung der Benutzer
convert_eusers=Keine Benutzer zum Konvertieren eingegeben convert_eusers=Keine Benutzer zur Konvertierung eingegeben
convert_egroup=Unix-Gruppe existiert nicht convert_egroup=Unix-Gruppe existiert nicht
convert_emin=Ungültige kleinste UID convert_emin=Ungültige minimale UID
convert_emax=Ungültige größte UID convert_emax=Ungültige maximale UID
convert_ewgroup=Es gibt keine solche Webmingruppe convert_ewgroup=Keine solche Webmin-Gruppe
convert_ewgroup2=Sie sind nicht berechtigt neue Benutzer zu dieser Gruppe hinzuzufügen. convert_ewgroup2=Sie dürfen keine neuen Benutzer dieser Gruppe zuweisen
convert_skip=$1 wurde übersprungen convert_skip=$1 wird übersprungen
convert_exists=$1 existiert bereits convert_exists=$1 existiert bereits
convert_invalid=$1 ist kein gültiger Webminbenutzername convert_invalid=$1 ist kein gültiger Webmin-Benutzername
convert_added=$1 wurde hinzugefügt convert_added=$1 wird hinzugefügt
convert_msg=Konvertiere Unixbenutzer ... convert_msg=Konvertiere Unix-Benutzer...
convert_user=Unix Benutzer convert_user=Unix-Benutzer
convert_action=Durchgeführe Aktionen convert_action=Durchgeführte Aktion
convert_done=$1 Benutzer umgewandelt, $2 ungültig, $3 gibt es bereits, $4 ausgeschlossen. convert_done=$1 Benutzer konvertiert, $2 ungültig, $3 bereits vorhanden, $4 ausgeschlossen.
convert_users=Benutzer zum konvertieren convert_users=Zu konvertierende Benutzer
sync_title=Unixbenutzer-Synchronisation sync_title=Unix-Benutzersynchronisierung
sync_desc=Dieses Formular erlaubt Ihnen die Konfiguration der automatischen Synchronisation von Unixbenutzern die durch Webmin erzeugt wurden und Benutzern in diesem Modul. 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=Es wurden keine Webmingruppen auf Ihrem System definiert. Wenigstens eine Gruppe muss angelegt sein, um den Zugriff für erzeugte Benutzer einzustellen. 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_when=Wann synchronisieren sync_when=Wann synchronisieren
sync_create=Erzeuge einen Webminbenutzer wenn ein Unixbenutzer erzeugt wird. sync_create=Erstelle einen Webmin-Benutzer, wenn ein Unix-Benutzer erstellt wird.
sync_update=Aktualisiere den passenden Webminbenutzer wenn ein Unixbenutzer aktualisiert wird. sync_update=Aktualisiere den entsprechenden Webmin-Benutzer, wenn ein Unix-Benutzer aktualisiert wird.
sync_delete=Lösche den passenden Webminbenutzer wenn ein Unixbenutzer gelöscht wird. sync_delete=Lösche den entsprechenden Webmin-Benutzer, wenn ein Unix-Benutzer gelöscht wird.
sync_group=Zuweisung neuer Benutzer zur Webmingruppe sync_modify=Ändere den Namen des entsprechenden Webmin-Benutzers, wenn ein Unix-Benutzer umbenannt wird.
sync_unix=Setze Passwort für neue Benutzer auf das Unixpasswort sync_group=Neuen Benutzern Webmin-Gruppe zuweisen
sync_ecannot=Sie sind nicht berechtigt die Benutzer-Synchronisation zu bearbeiten. sync_unix=Passwort neuer Benutzer auf Unix-Authentifizierung setzen.
sync_ecannot=Sie dürfen die Benutzersynchronisierung nicht konfigurieren.
unix_title=Unixbenutzer Authentifizierung unix_title=Unix-Benutzerauthentifizierung
unix_err=Fehler beim Speichern der Unix Authentifizierung unix_err=Fehler beim Speichern der Unix-Authentifizierung
unix_desc=Diese Seite erlaubt Ihnen Webmin zu konfigurieren, um Anmeldeversuche gegen die System-Benutzerliste und PAM abzugleichen. Dies kann nützlich sein, wenn Sie eine große Anzahl bestehender Unixbenutzer haben, denen Sie Zugriff auf Webmin geben wollen. 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_def=Erlaube nur Webminbenutzern die Anmeldung unix_def=Nur Webmin-Benutzer dürfen sich anmelden
unix_sel=Die für die Anmeldung zu erlaubenden Unixbenutzer sind unten aufgelistet .. unix_sel=Erlaube den folgenden Unix-Benutzern die Anmeldung ..
unix_mode=Erlauben unix_mode=Erlauben
unix_mall=Alle Benutzer unix_mall=Alle Benutzer
unix_group=Mitglieder der Gruppe .. unix_group=Mitglieder der Gruppe ..
unix_user=Unixbenutzer .. unix_user=Unix-Benutzer ..
unix_who=Benutzer oder Gruppe unix_who=Benutzer oder Gruppe
unix_to=Als Webminbenutzer unix_to=Als Webmin-Benutzer
unix_ecannot=Sie sind nicht berechtigt die Unixbenutzer-Authentifizierung zu bearbeiten. unix_ecannot=Sie dürfen die Unix-Benutzerauthentifizierung nicht konfigurieren
unix_epam=Unix-Authentifizierung ist nicht verfügbar, da das <tt>Authen::PAM</tt> Perl-Modul nicht installiert ist oder nicht richtig arbeitet. unix_epam=Unix-Authentifizierung ist nicht verfügbar, da das Perl-Modul <tt>Authen::PAM</tt> nicht installiert oder nicht ordnungsgemäß funktioniert.
unix_all=Erlaube alle Unixbenutzer unix_all=Alle Unix-Benutzer erlauben
unix_allow=Erlaube nur gelistete Unixbenutzer unix_allow=Nur gelisteten Unix-Benutzern erlauben
unix_deny=Verbiete gelistete Unixbenutzer unix_deny=Gelisteten Unix-Benutzern verweigern
unix_none=Keine Benutzer eingegeben unix_none=Keine Benutzer eingegeben
unix_euser='$1' ist kein gültiger Benutzername unix_euser='$1' ist kein gültiger Benutzername
unix_egroup='$1' ist kein gültiger Gruppenname unix_egroup='$1' ist kein gültiger Gruppenname
unix_shells=Verbiete Unixbenutzer, deren Shell nicht in der Shell-Beschreibungsdatei steht unix_shells=Unix-Benutzern deren Shells nicht in der Datei enthalten sind verweigern
unix_eshells=Fehlende oder nicht-existente Shell-Beschreibungsdatei unix_eshells=Fehlende oder nicht vorhandene Shells-Datei
unix_restrict2=Zusätzliche Restriktionen unix_restrict2=Zusätzliche Einschränkungen
unix_ewhogroup=Fehlende zu erlaubende Gruppe in Reihe $1 unix_ewhogroup=Fehlende Gruppe zum Erlauben in Zeile $1
unix_ewhouser=Fehlender zu erlaubender Benutzer in Reihe $1 unix_ewhouser=Fehlender Benutzer zum Erlauben in Zeile $1
unix_enone=Es wurden keine zu erlaubenden Benutzer oder Gruppen eingegeben unix_enone=Keine Unix-Benutzer oder -Gruppen zum Erlauben eingegeben
unix_same=&lt;Gleicher Benutzer oder Gruppe&gt; unix_same=&lt;Gleicher Benutzer oder Gruppe&gt;
unix_sudo=Erlaube Benutzern welche alle Befehle via <tt>sudo</tt> aufrufen können die Anmeldung als <tt>root</tt> unix_sudo=Benutzern, die alle Befehle über <tt>sudo</tt> ausführen können, die Anmeldung als <tt>root</tt> erlauben
unix_pamany=Erlaube Anmeldungen welche nur die PAM Validierung durchlaufen als $1 unix_pamany=Behandle Anmeldungen, die nur die PAM-Überprüfung bestehen, als $1
unix_esudo=Der $1 Befehl ist nicht installiert unix_esudo=Der $1-Befehl ist nicht installiert
unix_esudomod=Das Perl-Modul $1, welches zur <tt>sudo</tt> Authentifizierung verwendet wird, ist nicht installiert unix_esudomod=Das benötigte Perl-Modul $1 für die <tt>sudo</tt>-Authentifizierung ist nicht installiert
unix_header=Unix Benutzer Authentifizierungseinstellungen unix_header=Einstellungen zur Unix-Benutzerauthentifizierung
unix_utable=Erlaubte Unix Benutzer unix_utable=Erlaubte Unix-Benutzer
sessions_title=Aktuell angemeldete Sitzungen sessions_title=Aktuelle Anmelde-Sitzungen
sessions_id=Sitzungs-ID sessions_id=Sitzungs-ID
sessions_user=Webminbenutzer sessions_user=Webmin-Benutzer
sessions_login=Zuletzt aktiv am sessions_login=Zuletzt aktiv um
sessions_host=IP-Adresse sessions_host=IP-Adresse
sessions_lview=Zeige Aufzeichnungen.. sessions_lview=Protokolle anzeigen ..
sessions_actions=Aktionen .. sessions_actions=Aktionen ..
sessions_logouts=Zeige auch abgemeldete Sitzungen .. sessions_all=Alle Sitzungen ..
sessions_state=Status sessions_logouts=Auch abgemeldete Sitzungen anzeigen ..
sessions_this=Dieser Login sessions_state=Zustand
sessions_in=Eingeloggt sessions_action=Aktionen
sessions_out=Ausgeloggt sessions_this=Diese Anmeldung
sessions_kill=Getrennt.. sessions_in=Angemeldet
sessions_out=Abgemeldet
sessions_kill=Trennen ..
logins_title=Aktuelle Webmin-Logins logins_title=Kürzliche Webmin-Anmeldungen
hide_title=Verberge nicht benutzte Module hide_title=Nicht verwendete Module ausblenden
hide_desc=Das folgende Modul wird von der Zugriffskontrollliste für $1 entfernt, da die entsprechenden Server nicht auf Ihrem System installiert sind. hide_desc=Die folgenden Module werden aus der Modulliste für $1 entfernt, da die entsprechenden Server auf Ihrem System nicht installiert sind ..
hide_ok=Verberge Module jetzt hide_ok=Module jetzt ausblenden
hide_none=Nichts zu verbergen - $1 hat keinen Zugriff zu irgendeinem Modul dessen entsprechender Server nicht auf Ihrem System installiert ist. hide_none=Nichts auszublenden - $1 hat keinen Zugriff auf Module, deren entsprechende Server auf Ihrem System nicht installiert sind.
hide_desc2=Bedenken Sie, dass dieses Modul nicht automatisch sichtbar wird, wenn der entsprechende Server nachträglich installiert wird. Sie müssen den Zugriff über dieses Modul erneut einrichten. 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=(Klone $1) hide_clone=(Klonen $1)
switch_euser=Sie dürfen nicht zu diesem Benutzer wechseln switch_euser=Sie dürfen nicht zu diesem Benutzer wechseln
switch_eold=Existierende Sitzung nicht gefunden! switch_eold=Bestehende Sitzung nicht gefunden!
rbac_title=Setup RBAC rbac_title=RBAC einrichten
rbac_desc=Die RBAC (Role Based Access Control)-Integration in die Webmin-Software unterstützt die Verlagerung von ACLs auf bestimmte oder alle Module in eine RBAC-Datenbank. Wenn RBAC einmal aktiviert wurde, dann werden für jeden Benutzer für den die <b>RBAC Steuerung aller Module und ACLs</b>-Option ausgewählt wurde alle Möglichkeiten durch RBAC und nicht mehr durch Webmin geregelt. 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 von Solaris unterstützt und kann auf diesem $1 System nicht genutzt werden. 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 wird für die RBAC-Integration benötigt, ist jedoch nicht installiert. Sie können dies über das <a href='$2'>CPAN-Modul</a> nachholen. 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-Modulseite um das für die RBAC-Integration benötigte Modul $1 zu installieren. 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=RBAC-Integration ist auf Ihrem System verfügbar und kann pro Benutzer im Benutzer- und Gruppenmodul angewandt werden. rbac_ok=Die RBAC-Integration ist auf diesem System verfügbar und kann auf der Seite "Webmin-Benutzer bearbeiten" pro Benutzer aktiviert werden.
udeletes_err=Konnte Benutzer nicht löschen udeletes_err=Fehler beim Löschen der Benutzer
udeletes_jerr=Fehler beim Nutzer zu Gruppe hinzufügen udeletes_jerr=Fehler beim Hinzufügen von Benutzern zur Gruppe
udeletes_enone=Nichts ausgewählt udeletes_enone=Keine ausgewählt
udeletes_title=Benutzer löschen udeletes_title=Benutzer löschen
udeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Benutzer löschen möchten? Sämtliche Benutzer- und zugehörige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren. udeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Benutzer löschen möchten? Alle ihre Zugriffskontrolleinstellungen und Benutzerdaten gehen verloren.
udeletes_users=Ausgewählte Benutzer: $1 udeletes_users=Ausgewählte Benutzer: $1
udeletes_ok=Benutzer löschen udeletes_ok=Benutzer löschen
udeletes_ereadonly=Einer der ausgewählten Benutzer ist als nicht bearbeitbar markiert. udeletes_ereadonly=Einer der ausgewählten Benutzer ist als nicht bearbeitbar markiert
gdeletes_err=Konnte Gruppen nicht löschen gdeletes_err=Fehler beim Löschen der Gruppen
gdeletes_title=Gruppe löschen gdeletes_title=Gruppen löschen
gdeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Gruppen, inklusive der darin enthaltenen $2 Benutzer, löschen möchten? Sämtliche Benutzer- und zugehörige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren. 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_users=Ausgewählte Gruppen: $1 gdeletes_users=Ausgewählte Gruppen: $1
gdeletes_ok=Gruppe löschen gdeletes_ok=Gruppen löschen
pass_title=Kennwort Einschränkungen pass_title=Passwortrichtlinien
pass_ecannot=Es ist Ihnen nicht erlaubt Passwortrestriktionen zu editieren pass_ecannot=Sie dürfen die Passwortrichtlinien nicht bearbeiten
pass_header=Optionen der Webmin-Kennwort-Erzwingung pass_header=Webmin Passwortdurchsetzungsoptionen
pass_minsize=Minimale Kennwortlänge pass_minsize=Minimale Passwortlänge
pass_nominsize=Kein Minimum pass_nominsize=Keine Mindestlänge
pass_regexps=Übereinstimmung von Kennwörtern mit regulären Ausdrücken pass_regexps=Reguläre Ausdrücke, mit denen Passwörter übereinstimmen müssen
pass_regdesc=Menschlich lesbare Beschreibung von regulären Ausdrücken pass_regdesc=Beschreibung des regulären Ausdrucks für Menschen
pass_maxdays=Tage bevor das Kennwort geändert werden muss pass_maxdays=Tage, bevor das Passwort geändert werden muss
pass_lockdays=Tage bevor ein nicht geändertes Kennwort den Zugang sperrt pass_lockdays=Tage, bevor das unveränderte Passwort das Konto sperrt
pass_nomaxdays=Änderung ist nie notwendig pass_nomaxdays=Änderung nie erforderlich
pass_nolockdays=Zugang wird nie gesperrt pass_nolockdays=Konto wird nie gesperrt
pass_nouser=Erlaube kein Kennwort welches den Benutzernamen enthält? pass_nouser=Passwörter mit Benutzernamen verbieten?
pass_nodict=Erlaube kein wörterbuchbasiertes Kennwort pass_nodict=Passwörter aus Wörterbüchern verbieten?
pass_oldblock=Anzahl von alten Kennwörtern zurückweisen pass_oldblock=Anzahl der alten Passwörter, die abgelehnt werden
pass_nooldblock=Keine Begrenzung zur Wiederverwendung des Kennworts pass_nooldblock=Keine Begrenzung der Passwortwiederverwendung
pass_days=Tage pass_days=Tage
pass_pass=Kennwörter pass_pass=Passwörter
pass_err=Fehler beim Speichern der Kennwortrestriktionen pass_err=Fehler beim Speichern der Passwortrichtlinien
pass_eminsize=Vermisse minimale Kennwortlänge oder der Wert ist nicht numerisch pass_eminsize=Fehlende oder nicht numerische Mindestpasswortlänge
pass_emaxdays=Vermisse Anzahl von Tagen bevor das Kennwort geändert wird oder der Wert ist nicht numerisch pass_emaxdays=Fehlende oder nicht numerische Anzahl der Tage vor der Änderung
pass_elockdays=Vermisse Anzahl von Tagen bevor der Zugang gesperrt wird oder der Wert ist nicht numerisch pass_elockdays=Fehlende oder nicht numerische Anzahl der Tage vor der Kontosperrung
pass_eoldblock=Vermisse Anzahl von Tage bevor ein Kennwort zurückgeweisen wird oder der Wert ist nicht numerisch pass_eoldblock=Fehlende oder nicht numerische Anzahl der alten Passwörter, die abgelehnt werden
cpass_minsize=Muss mindestens $1 Zeichen lang sein cpass_minsize=Muss mindestens $1 Buchstaben lang sein
cpass_notre=Entspricht einen nicht erlaubten Muster cpass_notre=Entspricht einem nicht erlaubten Muster
cpass_re=Entspricht nicht einem erforderlichen Muster cpass_re=Entspricht nicht einem erforderlichen Muster
cpass_name=Enthält den Benutzernamen cpass_name=Enthält den Benutzernamen
cpass_dict=Ist ein Wort aus dem Wörterbuch cpass_dict=Ist ein Wörterbuchwort
cpass_spellcmd=Entweder der $1 oder $2 Befehl muss installiert sein um eine Wörterbuchprüfung durchzuführen 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 Kennwörter können nicht wieder verwendet werden cpass_old=Alte Passwörter können nicht wiederverwendet werden
sql_title=Benutzer- und Gruppendatenbank sql_title=Benutzer- und Gruppendatenbank
sql_ecannot=Es ist Ihnen nicht erlaubt die Benutzer und Gruppen Datenbank zu konfigurieren sql_ecannot=Sie dürfen die Benutzer- und Gruppendatenbank nicht konfigurieren
sql_header=Optionen für Datenbank-Backend für Benutzer und Gruppen sql_header=Optionen für die Datenbank-Backend für Benutzer und Gruppen
sql_host=Hostname sql_host=Hostname
sql_user=Benutzername sql_user=Benutzername
sql_pass=Passwort sql_pass=Passwort
sql_db=Datenbankname sql_db=Datenbankname
sql_ssl=Verbindungsverschlüsselung sql_ssl=Verbindung Verschlüsselung
sql_ssl0=Keine sql_ssl0=Keine
sql_ssl1=SSL sql_ssl1=SSL
sql_ssl2=TLS sql_ssl2=TLS
sql_userclass=Object-Klasse für Anwender sql_userclass=Objektklasse für Benutzer
sql_groupclass=Objekt-Klasse für Gruppen sql_groupclass=Objektklasse für Gruppen
sql_euserclass=Fehlende oder ungültige Objekt-Klasse für Benutzer sql_euserclass=Fehlende oder ungültige Objektklasse für Benutzer
sql_egroupclass=Fehlender oder ungültige Objektklasse für Gruppen sql_egroupclass=Fehlende oder ungültige Objektklasse für Gruppen
sql_none=Verwende nur lokale Dateien zum Speichern von Benutzern und Gruppen sql_none=Nur lokale Dateien zur Speicherung von Benutzern und Gruppen verwenden
sql_mysql=Benutze MySQL Datenbank sql_mysql=MySQL-Datenbank verwenden
sql_postgresql=Benutze PostgreSQL Datenbank sql_postgresql=PostgreSQL-Datenbank verwenden
sql_ldap=Benutze LDAP-Server sql_ldap=LDAP-Server verwenden
sql_prefix=Erstelle unter DN sql_prefix=Erstellen unter DN
sql_addto0=Hinzufügen neuer Benutzer zur Datenbank, wie oben ausgewählt sql_addto0=Neue Benutzer zur oben ausgewählten Datenbank hinzufügen
sql_addto1=Füge neue Benutzer zu lokalen Dateien zu sql_addto1=Neue Benutzer zu lokalen Dateien hinzufügen
sql_emod=Fehlendes benötigtes Perl Modul <tt>$1</tt> sql_nocache0=Verbindungen zur Datenbank cachen
sql_etable=Fehlgeschlagen die erforderliche Tabelle abzufragen $1 : $2 sql_nocache1=Für jede Abfrage eine neue Verbindung öffnen
sql_eldapdn=Base LDAP DN $1 wurde nicht gefunden sql_emod=Fehlendes erforderliches Perl-Modul <tt>$1</tt>
sql_eclass=LDAP-Objekt Klasse $1 ist nicht in dem Server-Schema vorhanden sql_etable=Fehler beim Abfragen der erforderlichen Tabelle $1 : $2
sql_err=Fehlgeschlagen Benutzer- und Gruppen-Datenbank-Einstellungen zu speichern sql_eldapdn=Basis LDAP DN $1 wurde nicht gefunden
sql_ehost=Fehlender und nicht-auflösbarere Hostname sql_eclass=LDAP-Objektklasse $1 existiert nicht im Schema des Servers
sql_err=Fehler beim Speichern der Benutzer- und Gruppendatenbank-Einstellungen
sql_ehost=Fehlender oder nicht auflösbarer Hostname
sql_euser=Fehlender oder ungültiger Benutzername (keine Leerzeichen erlaubt) sql_euser=Fehlender oder ungültiger Benutzername (keine Leerzeichen erlaubt)
sql_epass=Ungültiges Passwort (keine Leerzeichen erlaubt) sql_epass=Ungültiges Passwort (keine Leerzeichen erlaubt)
sql_edb=Ungültiger Datenbankname (kein Leerzeichen erlaubt) sql_edb=Ungültiger Datenbankname (keine Leerzeichen erlaubt)
sql_eprefix=Fehlende oder ungültige Base DN (keine Leerzeichen erlaubt) sql_eprefix=Fehlender oder ungültiger Basis-DN (keine Leerzeichen erlaubt)
sql_eprefix2=Ungültig-ausschauende Base DN - sollte <tt>dc=mydomain,dc=com</tt> sein sql_eprefix2=Ungültig aussehender Basis-DN - sollte wie <tt>dc=mydomain,dc=com</tt> aussehen
sql_title2=Erstellt fehlende Tabellen sql_title2=Fehlende Tabellen erstellen
sql_tableerr=Benutzer- und Gruppen-Datenbank-Einstellungen sind gültig, aber einige Tabellen, die von Webmin benötigt werden, fehlen : $1 sql_tableerr=Benutzer- und Gruppendatenbankeinstellungen sind gültig, aber einige Tabellen, die von Webmin benötigt werden, fehlen: $1
sql_tableerr2=Klicke auf den <b>Tabellen erstellen</b> Button unten, um sie automatisch zu erstellen oder den SQL Befehl unten manuell auszuführen. 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_make=Erstelle Tabellen sql_make=Tabellen erstellen
sql_title3=Erstelle fehlende DN sql_title3=Fehlende DN erstellen
sql_dnerr=Benutzer- und Gruppen-Datenbank-Einstellungen sind gültig, aber die LDAP DN, die Webmin benötigt, fehlen noch : $1 sql_dnerr=Benutzer- und Gruppendatenbankeinstellungen sind gültig, aber der LDAP-DN, den Webmin benötigt, fehlt: $1
sql_dnerr2=Klicken auf den <b>Erstellen DN</b> Button unten, um es automatisch zu erstellen, oder füge es manuell Ihrem LDAP-Server zu. 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_makedn=Erstelle DN sql_makedn=DN erstellen
sql_schema=Download LDAP Schema 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
make_title=Erstelle Benutzer- und Gruppentabellen make_title=Benutzer- und Gruppentabellen erstellen
make_err=Fehlgeschlagen Benutzer- und Gruppentabellen zu erstellen make_err=Fehler beim Erstellen der Benutzer- und Gruppentabellen
make_exec=Ausführe SQL $1 .. make_exec=Führe SQL $1 aus ..
make_failed=.. Erstellen fehlgeschlagen : $1 make_failed=.. Erstellung fehlgeschlagen : $1
make_done=.. fertig make_done=.. abgeschlossen
make_still=Einige Probleme wurden auch nach Erstellung der Tabelle gefunden: $1 make_still=Einige Probleme wurden auch nach der Tabellenerstellung gefunden: $1
makedn_title=Erstelle LDAP DN makedn_title=LDAP DN erstellen
makedn_eoc=Keine strukturelle Objektklassen gefunden! makedn_eoc=Keine strukturellen Objektklassen gefunden!
makedn_exec=Erstelle übergeordnete DN $1 .. makedn_exec=Erstelle übergeordneten DN $1 ..
makedn_failed=.. Erstellung fehlgeschlagen : $1 makedn_failed=.. Erstellung fehlgeschlagen : $1
makedn_done=.. fertig makedn_done=.. abgeschlossen
makedn_still=Einige Probleme wurden auch nach DN Erstellung gefunden : $1 makedn_still=Einige Probleme wurden auch nach der DN-Erstellung gefunden: $1
schema_title=Download LDAP-Schema schema_title=LDAP-Schema herunterladen
schema_desc=Bevor Webmin ein LDAP-Server verwenden kann um Benutzer und Gruppen zu speichern, muss konfiguriert werden, das Schema unten zu verwenden. Dies kann in der Regel durch Speicherung der Schema-Definition in <tt>/etc/ldap/schema</tt> oder <tt>/etc/openldap/schema</tt> als <tt>webmin.schema</tt>, anschließend kann die Konfiguration des Servers erfolgen, das Schema-Datei zu laden. 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_download=Download Schema-Datei : <a href=$1>$1</a> schema_download=Schema-Datei herunterladen : <a href=$1>$1</a>
twofactor_err=Fehlgeschlagen 2-Faktor-Authentifizierung einzurichten twofactor_err=Fehler beim Einrichten der Zwei-Faktor-Authentifizierung
twofactor_euser=Ihr Webmin-Benutzer wurde nicht gefunden! twofactor_euser=Ihr Webmin-Benutzer wurde nicht gefunden!
twofactor_title=2-Faktor-Authentifizierung twofactor_title=Zwei-Faktor-Authentifizierung
twofactor_disable=Deaktiviere 2-Faktor-Authentifizierung twofactor_disable=Zwei-Faktor-Authentifizierung deaktivieren
twofactor_already=Ihr Webmin Login hat bereits die 2-Faktor-Authentifizierung mit Provider $1 und Konto-ID $2 aktiviert. twofactor_already=Ihre Webmin-Anmeldung hat bereits zwei-Faktor-Authentifizierung mit Anbieter $1 und Konten-ID $2 aktiviert.
twofactor_already2=Webmin Login $3 hat bereits schon die 2-Faktor-Authentifizierung mit Provider $1 und ID-Konto $2 aktiviert. twofactor_already2=Webmin-Anmeldung $3 hat bereits zwei-Faktor-Authentifizierung mit Anbieter $1 und Konten-ID $2 aktiviert.
twofactor_desc=Auf dieser Seite können Sie die 2-Faktor-Authentifizierung für Webmin-Logins <a href='$2' target=_blank>$1</a> ermöglichen. Einmal aktiviert, wird eine zusätzliche Authentifizierungs-Token benötigt, wenn Sie sich in Webmin einloggen. 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=Auf dieser Seite können Sie die 2-Faktor-Authentifizierung für Webmin Login $3 mit <a href='$2' target=_blank>$1</a> aktivieren. Einmal aktiv, wird ein zusätzliche Authentifizierungs-Token benötigt, wenn Sie sich in Webmin anmelden. 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=Anmelden für die 2-Faktor-Authentifizierung twofactor_enable=Für Zwei-Faktor-Authentifizierung anmelden
twofactor_header=2-Faktor-Authentifizierung Anmeldungsdetails twofactor_header=Details zur Zwei-Faktor-Authentifizierung
twofactor_enrolling=Anmeldung für die 2-Faktor-Authentifizierung mit Provider $1 .. twofactor_enrolling=Anmeldung zur Zwei-Faktor-Authentifizierung mit Anbieter $1 ..
twofactor_failed=.. Anmeldung fehlgeschlagen : $1 twofactor_failed=.. Anmeldung fehlgeschlagen : $1
twofactor_done=.. komplett. Ihre ID mit diesem Provider ist <tt>$1</tt>. twofactor_done=.. abgeschlossen. Ihre ID bei diesem Anbieter ist <tt>$1</tt>.
twofactor_setup=2-Faktor-Authentifizierung auf diesem System ist nicht noch aktiviert, kann aber über das <a href='$1'>Webmin Konfiguration</a>-Modul eingeschaltet werden. 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_ebutton=Kein Button geklickt!

View File

@@ -1,15 +0,0 @@
edit_locale=Gebietsschema
acl_locale=Kann das Gebietsschema ändern?
sync_modify=Benennen Sie den passenden Webmin-Benutzer um, wenn ein Unix-Benutzer umbenannt wird.
sessions_all=Alle Sitzungen..
sessions_action=Aktionen
sql_nocache0=Cache-Verbindungen zur Datenbank
sql_nocache1=Öffnen Sie für jede Suche eine neue Verbindung
sql_timeout_def=Standard-Verbindungszeitlimit verwenden (60 Sekunden)
sql_timeout_for=Schließen Sie die zwischengespeicherten Verbindungen nach
sql_timeout_secs=Sekunden
sql_etimeout=Das Zeitlimit für die zwischengespeicherte Verbindung muss eine Zahl sein

View File

@@ -1,414 +1,435 @@
index_title=Użytkownicy Webmina index_title=Użytkownicy Webmin
index_user=Użytkownik index_user=Użytkownik
index_modules=Moduły index_modules=Moduły
index_create=Utwórz nowego użytkownika Webmina index_create=Utwórz nowego uprzywilejowanego użytkownika.
index_convert=Przekształć użytkowników Unixa w użytkowników Webmina index_screate=Utwórz nowego bezpiecznego użytkownika.
index_cert=Poproś o certyfikat SSL index_convert=Konwertuj Użytkowników Unix na Webmin
index_twofactor=Dwustopniowe uwierzytelnianie index_cert=Zażądaj Certyfikatu SSL
index_certmsg=Naciśnij ten przycisk, aby poprosić o certyfikat SSL, który pozwoli Ci się bezpiecznie zalogować do Webmina bez konieczności podawania nazwy użytkownika i hasła. index_twofactor=Uwierzytelnianie Dwuskładnikowe
index_return=listy użytkowników index_certmsg=Kliknij ten przycisk, aby zażądać certyfikatu SSL, który pozwoli na bezpieczne logowanie do Webmin bez potrzeby wprowadzania nazwy użytkownika i hasła.
index_return=lista użytkowników
index_none=Brak index_none=Brak
index_edit=Zmień ACL dla modułu: index_edit=Edytuj ACL modułu:
index_global=Ogólne ACL-e index_global=Globalny ACL
index_users=Użytkownicy Webmina index_users=Użytkownicy Webmin
index_groups=Grupy Webmina index_groups=Grupy Webmin
index_group=Grupa index_group=Grupa
index_nousers=Nie zdefiniowano modyfikowalnych użytkowników Webmina. index_nousers=Brak zdefiniowanych edytowalnych użytkowników Webmin.
index_nogroups=Nie zdefiniowano modyfikowalnych grup Webmina. index_nogroups=Brak zdefiniowanych grup Webmin.
index_gcreate=Utwórz nową grupę Webmina index_gcreate=Utwórz nową grupę Webmin.
index_members=Członkowie index_members=Członkowie
index_modgroups=Moduły z grupy $1 index_modgroups=Moduły z grupy $1
index_sync=Konfiguruj synchronizację użytkowników Unixa index_sync=Konfiguruj Synchronizację Użytkowników Unix
index_unix=Konfiguruj autoryzację użytkowników Unixa index_unix=Konfiguruj Uwierzytelnianie Użytkowników Unix
index_sessions=Wyświetl sesje logowania index_sessions=Wyświetl Sesje Logowania
index_rbac=Ustawienia RBAC index_rbac=Skonfiguruj RBAC
index_delete=Usuń zaznaczone index_delete=Usuń Zaznaczone
index_joingroup=Dodaj do grupy: index_joingroup=Dodaj do Grupy:
index_eulist=Nie udało się pobrać listy użytkowników: $1 index_eulist=Nie udało się pobrać listy użytkowników: $1
index_eglist=Nie udało się pobrać listy grup: $1 index_eglist=Nie udało się pobrać listy grup: $1
edit_title=Modyfikuj użytkownika Webmina edit_title=Edytuj Użytkownika Webmin
edit_title2=Nowy użytkownik Webmina edit_title2=Utwórz Użytkownika Webmin
edit_readonly=Ten użytkownik Webmina nie powinien być edytowany jeśli jest zarządzany przez moduł $1. Jeśli mimo wszystko chcesz edytować użytkownika <a href='$2'>Kliknij tutaj</a> - zauważ jednak, że ręczne zmiany mogą zostać nadpisane! edit_title3=Utwórz Bezpiecznego Użytkownika Webmin
edit_rights=Prawa dostępu dla użytkownika Webmina edit_readonly=Tego użytkownika Webmin nie należy edytować, ponieważ jest zarządzany przez moduł $1. <a href='$2'>Kliknij tutaj</a>, aby pominąć to ostrzeżenie i edytować użytkownika mimo to pamiętaj jednak, że wszelkie ręczne zmiany mogą zostać nadpisane!
edit_rights=Prawa dostępu użytkownika Webmin
edit_user=Nazwa użytkownika edit_user=Nazwa użytkownika
edit_cloneof=Duplikacja użytkownika Webmina edit_cloneof=Klonowanie użytkownika Webmin
edit_real=Prawdziwa nazwa edit_real=Imię i nazwisko
edit_group=Członek grupy edit_group=Członek grupy
edit_pass=Hasło edit_pass=Hasło
edit_same=Uniksowe edit_same=Takie samo jak Unix
edit_lock=Brak akceptacji hasła edit_lock=Brak akceptowanego hasła
edit_pam=Autoryzacja przez PAM edit_pam=Uwierzytelnianie PAM
edit_unix=Uwierzytelnienie Unixowe edit_unix=Uwierzytelnianie Unix
edit_extauth=Zewnętrzny program uwierzytelniający edit_extauth=Zewnętrzny program uwierzytelniający
edit_dont=Nie zmieniaj edit_dont=Nie zmieniaj
edit_set=Ustaw edit_set=Ustaw na
edit_passlocked=Hasło nie było zmieniane przez $1 dni - konto zablokowane! edit_passlocked=Hasło nie zostało zmienione przez $1 dni konto zablokowane!
edit_passmax=Hasło nie było zmieniane przez $1 dni - trzeba je zmienić przy następnym logowaniu edit_passmax=Hasło nie zostało zmienione przez $1 dni musi zostać zmienione przy następnym logowaniu
edit_passold=Hasło było ostatnio zmieniane $1 dni temu edit_passold=Hasło zostało ostatnio zmienione $1 dni temu
edit_passtoday=Hasło było zmienione mniej niż dzień temu. edit_passtoday=Hasło zostało zmienione mniej niż dzień temu
edit_modules=Moduły edit_modules=Moduły
edit_clone=Kopiuj edit_clone=Klonuj
edit_twofactor=Typ dwustopniowego uwierzetylniania edit_twofactor=Typ uwierzytelniania dwuskładnikowego
edit_twofactorprov=Używa $1 z ID $2 edit_twofactorprov=Używanie dostawcy $1 z ID $2
edit_twofactorcancel=Usuń wymaganie dwustopniowego uwierzytelniania edit_twofactorcancel=Usuń wymóg uwierzytelniania dwuskładnikowego
edit_twofactornone=Nic nie ustawiono edit_twofactornone=Brak skonfigurowanego
edit_twofactoradd=Włącz dwustopniowe uwierzytelnianie dla użytkownika edit_twofactoradd=Włącz uwierzytelnianie dwuskładnikowe dla użytkownika
edit_lang=Język edit_lang=Język
edit_notabs=Klasyfikować moduły? edit_locale=Ustawienia regionalne
edit_logout=Okres braku aktywności edit_notabs=Kategoryzuj moduły?
edit_logout=Czas bezczynności przed wylogowaniem
edit_mins=minut edit_mins=minut
edit_chars=znaków edit_chars=znaków
edit_minsize=Minimalna długość hasła edit_minsize=Minimalna długość hasła
edit_nochange=Wymusić dni zmiany hasła? edit_nochange=Wymusić zmianę hasła po określonej liczbie dni?
edit_cert=Nazwa certyfikatu SSL edit_cert=Nazwa certyfikatu SSL
edit_none=Brak edit_none=Brak
edit_ips=Kontrola dostępu według adresu IP edit_ips=Kontrola dostępu IP
edit_all=Pozwól z dowolnego adresu edit_all=Zezwalaj z wszystkich adresów
edit_allow=Pozwól tylko z adresów znajdujących się na liście edit_allow=Zezwalaj tylko z wymienionych adresów
edit_deny=Odmów dla adresów znajdujących się na liście edit_deny=Blokuj z wymienionych adresów
edit_ipdesc=Kontrola dostępu według adresu IP na poziomie użytkownika działa w ten sam sposób, jak ogólna kontrola dostępu po IP w module <tt>Konfiguracja Webmina</tt>. Tzn. te reguły mają zastosowanie tylko jeśli użytkownik przejdzie najpierw przez kontrolę ogólną. edit_ipdesc=Kontrola dostępu IP użytkownika działa w taki sam sposób, jak globalna kontrola dostępu IP w module Konfiguracja Webmin. Tylko jeśli użytkownik przejdzie globalne kontrole, zostaną również sprawdzone te tutaj.
edit_skill=Poziom umiejętności edit_skill=Poziom umiejętności
edit_risk=Poziom ryzyka edit_risk=Poziom ryzyka
edit_risk_high=Super użytkownik edit_risk_high=Super użytkownik
edit_risk_medium=Administrator edit_risk_medium=Użytkownik administracyjny
edit_risk_low=Zwykły użytkownik edit_risk_low=Normalny użytkownik
edit_groupmods=(Dodatkowo do modułów z grupy) edit_groupmods=(Oprócz modułów z grupy)
edit_euser=Nie masz uprawnień do zmiany danych dla tego użytkownika edit_euser=Nie masz uprawnień do edycji tego użytkownika
edit_egone=Wybrany użytkownik nie istnieje! edit_egone=Wybrany użytkownik już nie istnieje!
edit_ecreate=Nie masz uprawnień do tworzenia użytkowników edit_ecreate=Nie masz uprawnień do tworzenia użytkowników
edit_theme=Osobisty temat UI edit_theme=Osobisty motyw UI
edit_themeglobal=Z konfiguracji Webmina edit_themeglobal=Z Konfiguracji Webmin
edit_themedef=Stary temat Webmina edit_themedef=Motyw Legacy
edit_overlay=Motyw osobisty edit_overlay=Osobista nakładka na motyw
edit_overlayglobal=Brak - użyj motywu domyślnego edit_overlayglobal=Brak - używaj domyślnych ustawień motywu
edit_log=Wyświetl logi edit_log=Wyświetl logi
edit_selall=Zaznacz wszystko edit_selall=Zaznacz wszystkie
edit_invert=Odwróć zaznaczenie edit_invert=Odwróć zaznaczenie
edit_hide=Ukryj nieużywane edit_hide=Ukryj nieużywane
edit_switch=Przełącz na Użytkownika edit_switch=Przełącz na użytkownika
edit_return=Użytkownik Webmina edit_return=Użytkownik Webmin
edit_return2=Grupa Webmina edit_return2=Grupa Webmin
edit_rbacdeny=Tryb dostępu RBAC edit_rbacdeny=Tryb dostępu RBAC
edit_rbacdeny0=RBAC kontroluje ACL tylko wybranych modułów edit_rbacdeny0=RBAC kontroluje tylko wybrane ACL modułów
edit_rbacdeny1=RBAC kontroluje wszystkie moduły i ACL edit_rbacdeny1=RBAC kontroluje wszystkie moduły i ACL
edit_global=Uprawnienia dla wszystkich modułów edit_global=Uprawnienia dla wszystkich modułów
edit_templock=Tymczasowo zablokowany edit_templock=Tymczasowo zablokowane
edit_temppass=Zastosuj zmiany przy następnym logowaniu edit_temppass=Wymuś zmianę przy następnym logowaniu
edit_days=Dozwolone dni tygodnia edit_days=Dozwolone dni tygodnia
edit_alldays=Codziennie edit_alldays=Każdy dzień
edit_seldays=Tylko wybrane dni... edit_seldays=Tylko wybrane dni ..
edit_hours=Dozwolone godziny w ciągu dnia edit_hours=Dozwolone godziny dnia
edit_allhours=Bez ograniczeń edit_allhours=O dowolnej porze
edit_selhours=Od $1:$2 do $3:$4 edit_selhours=Od $1:$2 do $3:$4
edit_ui=Opcje interfejsu użytkownika edit_ui=Opcje interfejsu użytkownika
edit_security=Opcje bezpieczeństwa i ograniczeń edit_security=Opcje bezpieczeństwa i ograniczeń
edit_mods=Dostępne moduły Webmina edit_mods=Dostępne moduły Webmin
edit_modsg=Dostępne moduły Webmina (dodatki do tych z grupy) edit_modsg=Dostępne moduły Webmin (oprócz tych z grupy)
edit_proto=Typ magazynu edit_proto=Typ przechowywania
edit_proto_mysql=Baza MySQL edit_proto_mysql=Baza danych MySQL
edit_proto_postgresql=Baza PostgreSQL edit_proto_postgresql=Baza danych PostgreSQL
edit_proto_ldap=Serwer LDAP edit_proto_ldap=Serwer LDAP
edit_proto_=Pliki lokalne edit_proto_=Pliki lokalne
edit_safe=Poziom uprawnień
edit_safe0=Nieograniczone
edit_safe1=Tylko bezpieczne moduły
edit_unsafe=Resetuj do nieograniczonego
save_err=Nie udało się zachować użytkownika save_err=Nie udało się zapisać użytkownika
save_ename='$1' nie jest prawidłową nazwą użytkownika save_ename='$1' nie jest poprawną nazwą użytkownika
save_eunixname=Użytkownik '$1' nie jest użytkownikiem Unix, więc nie można go użyć w trybie bezpiecznym
save_enamewebmin=Nazwa użytkownika 'webmin' jest zarezerwowana do użytku wewnętrznego save_enamewebmin=Nazwa użytkownika 'webmin' jest zarezerwowana do użytku wewnętrznego
save_edup=Użytkownik '$1' już istnieje save_edup=Nazwa użytkownika '$1' jest już w użyciu
save_eoverlay=Nie można wybrać nakładania tematu dopóki temat jest save_eoverlay=Nakładka na motyw nie może zostać wybrana, jeśli motyw nie został wybrany
save_edeny=nie możesz zablokować sobie dostępu do modułu <tt>Użytkownicy Webmina</tt> save_edeny=Nie możesz odmówić sobie dostępu do modułu Użytkownicy Webmin
save_eos=Opcja hasło "Uniksowe" nie jest wspomagana przez twój system operacyjny. save_eos=Opcja "Takie samo jak Unix" dla hasła nie jest obsługiwana w Twoim systemie operacyjnym.
save_emd5=Opcja hasło "Uniksowe" nie może być stosowana na systemach z kodowaniem haseł MD5 save_emd5=Opcja "Takie samo jak Unix" dla hasła nie może być używana w systemach z szyfrowaniem MD5
save_eunix=Użytkownik uniksowy '$1' nie istnieje save_eunix=Użytkownik Unix '$1' nie istnieje
save_emod=Nie możesz przekazać uprawnień do modułu '$1' save_emod=Nie możesz przyznać dostępu do modułu '$1'
save_ecreate=Nie masz uprawnień do tworzenia użytkowników save_ecreate=Nie masz uprawnień do tworzenia użytkowników
save_euser=Nie masz uprawnień do modyfikacji tego użytkownika save_euser=Nie masz uprawnień do edycji tego użytkownika
save_ecolon=Hasła nie mogą zawierać znaku ':' save_ecolon=Hasła nie mogą zawierać znaku :
save_epass=Niepoprawne hasło: $1 save_epass=Hasło jest nieprawidłowe: $1
save_eself=Twój obecny adres IP ($1) zostałby zablokowany save_eself=Twój obecny adres IP ($1) zostałby zablokowany
save_epam=Autoryzacja poprzez PAM nie jest dostępna, gdyż nie zainstalowano modułu Perla <tt>Authen::PAM</tt> lub nie pracuje on poprawnie. save_epam=Uwierzytelnianie PAM nie jest dostępne, ponieważ moduł Perl <tt>Authen::PAM</tt> nie jest zainstalowany lub nie działa poprawnie.
save_epam2=Możesz użyć modułu Webmina o nazwie Moduły Perla, aby <a href='$1'>pobrać i zainstalować Authen::PAM</a>. save_epam2=Możesz użyć modułu Perl Modules Webmina, aby <a href='$1'>pobrać i zainstalować Authen::PAM</a> teraz.
save_egroup=Nie masz uprawnień do przyporządkowywania do tej grupy save_egroup=Nie masz uprawnień do przypisania do tej grupy
save_enone=Nie podano adresów save_enone=Nie wprowadzono adresów
save_enet='$1' nie jest poprawnym adresem sieciowym save_enet='$1' nie jest prawidłowym adresem sieciowym
save_emask='$1' nie jest poprawną maską sieciową save_emask='$1' nie jest prawidłową maską sieci
save_eip='$1' nie jest kompletnym adresem sieci lub IP save_eip='$1' nie jest kompletnym adresem IP ani sieciowym
save_ehost=Nie znaleziono adresu IP dla '$1' save_ehost=Nie udało się znaleźć adresu IP dla '$1'
save_elogouttime=Brakujący lub nie numeryczny czas braku aktywności, po którym następuje wylogowanie save_elogouttime=Brakujący lub niepoprawny czas bezczynności do wylogowania
save_eminsize=Brakująca lub nienumeryczna minimalna długość hasła save_eminsize=Brakująca lub niepoprawna minimalna długość hasła
save_edays=Nie wybrano dni dostępu save_edays=Nie wybrano dni dozwolonych
save_ehours=Brakujący lub nieprawidłowy czas dostępu save_ehours=Brakujące lub niepoprawne godziny dostępu
save_ehours2=Czas rozpoczęcia dostępu musi być przed końcem save_ehours2=Czas rozpoczęcia musi być wcześniejszy niż czas zakończenia
save_etemp=Nie można użyć opcji wymuszenia zmiany hasła przy następnym logowaniu dopóki włączone jest <a href='$1'>pytanie użytkowników o podanie nowego hasła</a> save_etemp=Opcja wymuszenia zmiany hasła przy następnym logowaniu nie może być użyta, jeśli <a href='$1'>wyświetlanie monitu o nowe hasła</a> nie jest włączone
delete_err=Nie udało się usunąć użytkownika delete_err=Nie udało się usunąć użytkownika
delete_eself=Nie możesz usunąć samego siebie delete_eself=Nie możesz usunąć siebie
delete_ecannot=Nie masz zezwolenia na usuwanie użytkowników delete_ecannot=Nie masz uprawnień do usuwania użytkowników
delete_euser=Nie masz zezwolenia na usunięcie tego użytkownika delete_euser=Nie masz uprawnień do usunięcia tego użytkownika
delete_eanonuser=Ten użytkownik jest wykorzystywany przy anonimowym dostępie do modułu delete_eanonuser=Ten użytkownik jest ywany do anonimowego dostępu do modułów
cert_title=Poproś o certyfikat cert_title=Żądanie certyfikatu
cert_issue=Certyfikat wydany cert_issue=Wystaw certyfikat
cert_header=Dane nowego certyfikatu cert_header=Szczegóły nowego certyfikatu
cert_msg=Formularz umożliwia ci wystawienie certyfikatu SSL, który bezpiecznie zalogować do Webmina bez konieczności podawania nazwy użytkownika i hasła. Takie rozwiązanie jest bezpieczniejsze, ale uniemożliwia przełączanie się użytkownika Webmina po wlogowaniu. cert_msg=Ten formularz pozwala na zażądanie certyfikatu klienta SSL, który w przyszłości będzie używany do uzyskiwania dostępu do Webmina zamiast nazwy użytkownika i hasła. Jest to bardziej bezpieczne, ale ponieważ uwierzytelnianie odbywa się automatycznie, nie będziesz w stanie przełącz się na innego użytkownika podczas korzystania z certyfikatu.
cert_ebrowser=Webmin nie wie jak wystawiać certyfikaty klienta dla Twojej przeglądarki ($1) cert_ebrowser=Webmin nie wie, jak wystawić certyfikaty klienta dla Twojej przeglądarki ($1)
cert_cn=Twoje imię cert_cn=Twoje imię i nazwisko
cert_email=Adres e-mail cert_email=Adres e-mail
cert_ou=Dział cert_ou=Dział
cert_o=Organizacja cert_o=Organizacja
cert_sp=Stan cert_sp=Województwo
cert_c=Kod kraju cert_c=Kod kraju
cert_key=Długość klucza cert_key=Rozmiar klucza
cert_done=Twój certyfikat dla $1 został poprawnie wygenerowany. cert_done=Twój certyfikat dla $1 został pomyślnie wygenerowany.
cert_pickup=<a href='$1'>Kliknij tutaj, aby pobrać swój certyfikat i zainstalować go w przeglądarce</a> cert_pickup=<a href='$1'>Kliknij tutaj, aby pobrać swój certyfikat i zainstalować go w przeglądarce</a>
cert_install=Zainstaluj swój certyfikat w przeglądarce cert_install=Zainstaluj certyfikat w przeglądarce
cert_ekey=Twoja przeglądarka nie zaakceptowała nowego klucza SSL - być może nie obsługuje ona certyfikatów SSL po stronie klienta. cert_ekey=Nie przesłano nowego klucza SSL z przeglądarki - być może nie obsługuje ona certyfikatów klienta SSL.
cert_eca=Nie udało się ustawić centrum autoryzacji: $1 cert_eca=Nie udało się skonfigurować urzędu certyfikacji: $1
cert_already=Uwaga - już używasz certyfikatu $1. cert_already=Ostrzeżenie - już używasz certyfikatu $1.
cert_etempdir=Błędny plik certyfikatu cert_etempdir=Nieprawidłowy plik certyfikatu
acl_title=Kontrola dostępu do modułu acl_title=Dostęp do modułów
acl_title2=$2 dla użytkownika $1 acl_title2=Dla $1 w $2
acl_title3=$2 dla grupy $1 acl_title3=Dla grupy $1 w $2
acl_options=Opcje kontroli dostępu do $1 acl_options=Opcje kontroli dostępu $1
acl_config=Czy może zmieniać konfigurację modułu? acl_config=Może edytować konfigurację modułu?
acl_reset=Zresetuj do pełnego dostępu acl_reset=Zresetuj do pełnego dostępu
acl_rbac=Pobrać ustawienia kontroli dostępu z RBAC? acl_rbac=Pobierz ustawienia dostępu z RBAC?
acl_rbacyes=Tak (zastępuje poniższe ustawienia) acl_rbacyes=Tak (nadpisuje ustawienia poniżej)
acl_uall=Wszystkich użytkowników acl_uall=Wszyscy użytkownicy
acl_uthis=Ten użytkownik acl_uthis=Ten użytkownik
acl_usel=Wybranych .. acl_usel=Wybrani użytkownicy ..
acl_gr=Członków $1 acl_gr=Członkowie $1
acl_users=Użytkownicy, których można zmieniać acl_users=Użytkownicy, którzy mogą być edytowani
acl_mods=Czy może zapewnić dostęp do acl_mods=Może przyznawać dostęp do
acl_all=Wszystkich modułów acl_all=Wszystkie moduły
acl_own=Tylko do własnych modułów acl_own=Tylko jego własne moduły
acl_sel=Wybranych modułów .. acl_sel=Wybrane moduły ..
acl_create=Czy może tworzyć nowych użytkowników? acl_create=Może tworzyć nowych użytkowników?
acl_delete=Czy może usuwać użytkowników? acl_delete=Może usuwać użytkowników?
acl_rename=Czy może zmieniać nazwy użytkowników? acl_rename=Może zmieniać nazwy użytkowników?
acl_acl=Czy może zmieniać prawa dostępu do modułu? acl_acl=Może edytować kontrolę dostępu do modułów?
acl_lang=Czy może zmieniać język? acl_lang=Może zmieniać język?
acl_chcert=Czy może zmieniać nazwę certyfikatu SSL? acl_locale=Może zmieniać lokalizację?
acl_euser=Nie masz uprawnień do edycji ACLi dla tego użytkownika acl_chcert=Może zmieniać nazwę certyfikatu SSL?
acl_egroup=Nie masz uprawnień do edycji ACLi dla grupy acl_euser=Nie masz uprawnień do edytowania kontroli dostępu dla tego użytkownika
acl_emod=Nie masz uprawnień do edycji ACL dla tego modułu acl_egroup=Nie masz uprawnień do edytowania kontroli dostępu grup
acl_others=Czy może widzieć niedostępne moduły? acl_emod=Nie masz uprawnień do edytowania kontroli dostępu dla tego modułu
acl_cert=Czy może poprosić o certyfikat? acl_others=Może widzieć niedostępne moduły?
acl_err=Nie udało się zapisać opcji ACLi acl_cert=Może żądać certyfikatu?
acl_groups=Czy może zmieniać grupy? acl_err=Nie udało się zapisać kontroli dostępu
acl_gassign=Czy może przyporządkowywać użytkowników do grup acl_groups=Może edytow grupy?
acl_gall=Wszystkich grup acl_gassign=Może przypisywać użytkowników do grup
acl_gsel=Wybranych .. acl_gall=Wszystkie grupy
acl_gnone=Żadnej acl_gsel=Wybrane ..
acl_gnone=Brak
acl_perms=Nowo utworzeni użytkownicy otrzymują acl_perms=Nowo utworzeni użytkownicy otrzymują
acl_perms_1=Takie, jakie ma tworzący acl_perms_1=Taką samą kontrolę dostępu do modułów jak twórca
acl_perms_0=Domyślna (nielimitowana) kontrola dostępu do modułu acl_perms_0=Domyślną (nieograniczoną) kontrolę dostępu do modułów
acl_sync=Czy może konfigurować synchronizację użytkowników? acl_sync=Może konfigurować synchronizację użytkowników?
acl_unix=Czy może konfigurować autoryzację użytkowników? acl_unix=Może konfigurować uwierzytelnianie Unix?
acl_sessions=Czy może wyświetlać i anulować sesje logowania? acl_sessions=Może przeglądać i anulować sesje logowania?
acl_cats=Czy może zmieniać kategoryzację? acl_cats=Może zmieniać kategoryzację?
acl_theme=Czy może zmieniać osobisty motyw? acl_theme=Może zmieniać swój motyw?
acl_ips=Czy może zmieniać kontrolę dostępu IP? acl_ips=Może zmieniać kontrolę dostępu IP?
acl_switch=Czy może przełączać się na innego użytkownika? acl_switch=Może przełączać się na innych użytkowników?
acl_times=Czy może zmieniać dozwolone godziny logowania? acl_times=Może zmieniać dozwolone czasy logowania?
acl_pass=Może zmieniać ograniczenia hasła? acl_pass=Może zmieniać ograniczenia haseł?
acl_sql=Może konfigurować bazę użytkowników i grup? acl_sql=Może konfigurować bazę danych użytkowników i grup?
log_modify=Zmodyfikowano użytkownika Webmina $1 log_modify=Zmodyfikowano użytkownika Webmin $1
log_rename=Zmieniono nazwę użytkownika Webmina $1 na $2 log_rename=Zmieniono nazwę użytkownika Webmin $1 na $2
log_create=Utworzono użytkownika Webmina $1 log_create=Utworzono użytkownika Webmin $1
log_clone=Powielono użytkownika Webmina z $1 na $2 log_clone=Sklonowano użytkownika Webmin $1 na $2
log_delete=Usunięto użytkownika Webmina $1 log_delete=Usunięto użytkownika Webmin $1
log_acl=Zmodyfikowano dostęp dla $1 do $2 log_acl=Zaktualizowano dostęp dla $1 w $2
log_reset=Zresetowano dostęp dla $1 w $2 log_reset=Zresetowano dostęp dla $1 w $2
log_cert=Utworzono certyfikat dla użytkownika $1 log_cert=Wystawiono certyfikat dla użytkownika $1
log_modify_g=Zmodyfikowano grupę Webmina $1 log_modify_g=Zmodyfikowano grupę Webmin $1
log_rename_g=Zmieniono nazwę grupy Webmina $1 na $2 log_rename_g=Zmieniono nazwę grupy Webmin $1 na $2
log_create_g=Utworzono grupę Webmina $1 log_create_g=Utworzono grupę Webmin $1
log_delete_g=Usunięto grupę Webmina $1 log_delete_g=Usunięto grupę Webmin $1
log_switch=Przełączono do użytkownika $1. log_switch=Przełączono na użytkownika Webmin $1
log_delete_users=Usunięto $1 użytkowników Webmina log_delete_users=Usunięto $1 użytkowników Webmin
log_delete_groups=Usunięto $1 grup Webmina log_delete_groups=Usunięto $1 grup Webmin
log_joingroup=Dodano $1 użytkowników Webmina do grupy $2 log_joingroup=Dodano $1 użytkowników Webmin do grupy $2
log_pass=Zmieniono ustawienia dotyczące hasła log_pass=Zmieniono ograniczenia haseł
log_unix=Zmieniono uwierzytelnienie użytkownika unixa log_unix=Zmieniono uwierzytelnianie użytkowników Unix
log_sync=Zmieniono synchronizację użytkownika unixa log_sync=Zmieniono synchronizację użytkowników Unix
log_sql=Zmieniono bazę danych użytkownika i grupy log_sql=Zmieniono bazę danych użytkowników i grup
log_twofactor=Użytkownik $1 uczestniczy w dwustopniowym uwierzytelnianiu u dostawcy: $2 log_twofactor=Zarejestrowano użytkownika $1 w dostawcy uwierzytelniania dwuskładnikowego $2
log_onefactor=Użytkownik $1 już NIE uczestniczy w dwustopniowym uwierzytelnianiu u dostawcy: $2 log_onefactor=Wyrejestrowano użytkownika $1 z uwierzytelniania dwuskładnikowego
gedit_ecannot=Nie masz uprawnień do zmiany grup gedit_ecannot=Nie masz uprawnień do edytowania grup
gedit_title=Zmień grupę Webmina gedit_title=Edytuj grupę Webmin
gedit_title2=Utwórz grupę Webmina gedit_title2=Utwórz grupę Webmin
gedit_group=Nazwa grupy gedit_group=Nazwa grupy
gedit_rights=Prawa dostępu dla grupy Webmina gedit_rights=Uprawnienia dostępu grupy Webmin
gedit_modules=Moduły członków gedit_modules=Moduły członków
gedit_members=Członek użytkowników i grup gedit_members=Członkowie użytkownicy i grupy
gedit_desc=Opis grupy gedit_desc=Opis grupy
gedit_egone=Wybrana grupa nie istnieje! gedit_egone=Wybrana grupa już nie istnieje!
gdelete_err=Nie udało się usunąć grupy gdelete_err=Nie udało się usunąć grupy
gdelete_ecannot=Nie masz uprawnień do usuwania grup gdelete_ecannot=Nie masz uprawnień do usuwania grup
gdelete_euser=Nie możesz usunąć własnej grupy gdelete_euser=Nie możesz usunąć swojej grupy
gdelete_esub=Nie można usunąć grup z podgrupami gdelete_esub=Nie można usunąć grup zawierających podgrupy
gdelete_title=Usuń grupę gdelete_title=Usuń grupę
gdelete_desc=Czy na pewno chcesz usunąć grupę $1 wraz z jej członkami $2? gdelete_desc=Czy na pewno chcesz usunąć grupę $1 i jej członków $2?
gdelete_ok=Usuń grupę gdelete_ok=Usuń grupę
gsave_err=Nie udało się zachować grupy gsave_err=Nie udało się zapisać grupy
gsave_ename=Brakująca lub niepoprawna nazwa grupy gsave_ename=Brakująca lub nieprawidłowa nazwa grupy
gsave_enamewebmin=Nazwa grupy 'webmin' jest zastrzeżona do użytku wewnętrznego gsave_enamewebmin=Nazwa grupy 'webmin' jest zarezerwowana do użytku wewnętrznego
gsave_edup=Nazwa grupy jest już używana gsave_edup=Nazwa grupy jest już w użyciu
gsave_edesc=Niewłaściwy opis - znak : jest niedozwolony gsave_edesc=Nieprawidłowy opis - znak : nie jest dozwolony
convert_title=Przekształć użytkowników convert_title=Konwertuj użytkowników
convert_ecannot=Nie masz uprawnień do przekształcania użytkownika Unixa convert_ecannot=Nie masz uprawnień do konwertowania użytkowników Unix
convert_nogroups=W systemie nie zdefiniowano grup Webmina. Musisz utworzyć przynajmniej jedną grupę przed konwersją, aby określić uprawnienia dla przekształconych użytkowników. convert_nogroups=Na Twoim systemie nie zdefiniowano żadnych grup Webmin. Przynajmniej jedna grupa musi zostać utworzona przed konwersją, aby zdefiniować uprawnienia dla konwertowanych użytkowników.
convert_desc=Za pomocą tego formularza możesz przekształcić istniejących użytkowników Unixa w użytkowników Webmina. Uprawnienia każdego z nowych użytkowników Webmina będą określone przez podanie poniżej grupy. convert_desc=Ten formularz umożliwia konwersję istniejących użytkowników Unix na użytkowników Webmin. Uprawnienia każdego nowego użytkownika Webmin zostaną określone przez wybraną poniżej grupę.
convert_0=Wszystkich convert_0=Wszyscy użytkownicy
convert_1=Wybranych convert_1=Tylko użytkownicy
convert_2=Wszystkich oprócz convert_2=Wszyscy oprócz użytkowników
convert_3=Użytkowników z grupy convert_3=Użytkownicy należący do grupy
convert_4=Użytkowników z zakresu UID-ów convert_4=Użytkownicy z UID w zakresie
convert_group=Przypisuj nowych użytkowników do grupy Webmina convert_group=Przypisz nowych użytkowników do grupy Webmin
convert_sync2=Synchronizować hasło z użytkiem Unix'a w przysłości? convert_sync2=Synchronizować hasło z użytkownikiem Unix w przyszłości?
convert_ok=Przekształć teraz convert_ok=Konwertuj teraz
convert_err=Nie udało się przekształcić użytkowników convert_err=Nie udało się przekonwertować użytkowników
convert_eusers=Nie podano użytkowników do przekształcenia convert_eusers=Nie wprowadzono użytkowników do konwersji
convert_egroup=Grupa Unixa nie istnieje convert_egroup=Grupa Unix nie istnieje
convert_emin=Niepoprawny minimalny UID convert_emin=Nieprawidłowy minimalny UID
convert_emax=Niepoprawny maksymalny UID convert_emax=Nieprawidłowy maksymalny UID
convert_ewgroup=Nie ma takiej grupy Webmina convert_ewgroup=Brak takiej grupy Webmin
convert_ewgroup2=Nie masz uprawnień do przypisywania nowych użytkowników do tej grupy convert_ewgroup2=Nie masz uprawnień do przypisywania nowych użytkowników do tej grupy
convert_skip=Pomijanie $1 convert_skip=Pomijanie użytkownika $1
convert_exists=$1 już istnieje convert_exists=Użytkownik $1 już istnieje
convert_invalid=$1 nie jest poprawną nazwą użytkownika Webmina convert_invalid=Użytkownik $1 nie jest prawidłową nazwą użytkownika Webmin
convert_added=Dodawanie $1 convert_added=Dodawanie użytkownika $1
convert_msg=Przekształcanie użytkowników Unixa... convert_msg=Konwertowanie użytkowników Unix...
convert_user=Użytkownik Unixa convert_user=Użytkownik Unix
convert_action=Podjęta akcja convert_action=Podjęta akcja
convert_done=$1 skonwertowanych użytkowników, $2 nieprawidłowych, $3 już istnieje, $4 wykluczonych. convert_done=Przekonwertowano $1 użytkowników, $2 nieprawidłowych, $3 już istnieje, $4 wykluczonych.
convert_users=Konwertuj użytkownika convert_users=Użytkownicy do konwersji
sync_title=Synchronizacja użytkowników Unixa sync_title=Synchronizacja użytkowników Unix
sync_desc=Ten formularz umożliwia skonfigurowanie automatycznej synchronizacji użytkowników Unixa utworzonych za pomocą Webmina i użytkownikami z tego modułu. sync_desc=Ten formularz pozwala skonfigurować automatyczną synchronizację użytkowników Unix tworzonych za pośrednictwem Webmin z użytkownikami w tym module.
sync_nogroups=W systemie nie zdefiniowano żadnej grupy Webmina. Aby ustawić dostęp dla tworzonych użytkowników, trzeba utworzyć co najmniej jedną grupę. sync_nogroups=Na Twoim systemie nie zdefiniowano żadnych grup Webmin. Musi zostać utworzona przynajmniej jedna grupa, aby ustawić dostęp dla tworzonych użytkowników.
sync_when=Kiedy synchronizować sync_when=Kiedy synchronizować
sync_create=Twórz użytkownika Webmina, gdy tworzony jest użytkownik Unixa. sync_create=Twórz użytkownika Webmin, gdy tworzony jest użytkownik Unix.
sync_update=Aktualizuj odpowiedniego użytkownika Webmina, gdy aktualizowany jest użytkownik Unixa. sync_update=Aktualizuj dopasowanego użytkownika Webmin, gdy aktualizowany jest użytkownik Unix.
sync_delete=Usuwaj odpowiedniego użytkownika Webmina, gdy usuwany jest użytkownik Unixsa. sync_delete=Usuń dopasowanego użytkownika Webmin, gdy usuwany jest użytkownik Unix.
sync_group=Przypisuj nowych użytkowników do grupy Webmina sync_modify=Zmień nazwę dopasowanego użytkownika Webmin, gdy zmieniana jest nazwa użytkownika Unix.
sync_unix=Ustawiaj hasła dla nowych użytkowników dla uwierzytelnianie Unixowego. sync_group=Przypisz nowych użytkowników do grupy Webmin
sync_unix=Ustaw hasło dla nowych użytkowników na uwierzytelnianie Unix.
sync_ecannot=Nie masz uprawnień do konfigurowania synchronizacji użytkowników. sync_ecannot=Nie masz uprawnień do konfigurowania synchronizacji użytkowników.
unix_title=Autoryzacja użytkowników Unixa unix_title=Uwierzytelnianie użytkowników Unix
unix_err=Błąd zapisywania uwierzytelniania Unixa unix_err=Nie udało się zapisać ustawień uwierzytelniania Unix
unix_desc=Za pomocą tej strony możesz skonfigurować Webmina, aby zatwierdzał próby logowania na podstawie listy użytkowników systemu PAM. Może to być przydatne, gdy liczba użytkowników Unixa, którym chcesz dać dostęp do Webmina jest duża. unix_desc=Ta strona pozwala skonfigurować Webmin do walidacji prób logowania na podstawie listy systemowych użytkowników oraz PAM. Może to być użyteczne, jeśli masz dużą liczbę istniejących użytkowników Unix, którym chcesz dać dostęp do Webmin.
unix_def=Pozwól logować się jedynie użytkownikom Webmina unix_def=Zezwalaj na logowanie tylko użytkownikom Webmin
unix_sel=Pozwól użytkownikom Unixa z poniższej listy na zalogowanie... unix_sel=Zezwalaj na logowanie użytkownikom Unix wymienionym poniżej ..
unix_mode=Pozwól unix_mode=Zezwalaj
unix_mall=Wszyscy użytkownicy unix_mall=Wszyscy użytkownicy
unix_group=Członkowie grup... unix_group=Członkowie grupy ..
unix_user=Użytkownik Unixa .. unix_user=Użytkownik Unix ..
unix_who=Użytkownik lub Grupa unix_who=Użytkownik lub Grupa
unix_to=Jako użytkownik Webmina unix_to=Jako użytkownik Webmin
unix_ecannot=Nie masz uprawnień do konfigurowania autoryzacji użytkowników Unixa. unix_ecannot=Nie masz uprawnień do konfigurowania uwierzytelniania użytkowników Unix
unix_epam=Autoryzacja uniksowa jest niedostępna, gdyż moduł Perla <tt>Authen::PAM</tt> nie jest zainstalowany lub nie działa on poprawnie. unix_epam=Uwierzytelnianie Unix jest niedostępne, ponieważ moduł Perl <tt>Authen::PAM</tt> nie jest zainstalowany lub nie działa poprawnie.
unix_all=Pozwól wszystkim użytkownikom Unixa unix_all=Zezwól wszystkim użytkownikom Unix
unix_allow=Pozwól tylko użytkownikom Unixa z listy unix_allow=Zezwalaj tylko wymienionym użytkownikom Unix
unix_deny=Odmów użytkowników Unixa z listy unix_deny=Odmów wymienionym użytkownikom Unix
unix_none=Nie podano użytkowników unix_none=Nie wprowadzono użytkowników
unix_euser='$1' nie jest poprawną nazwą użytkownika unix_euser='$1' nie jest prawidłową nazwą użytkownika
unix_egroup='$1' nie jest poprawną nazwą grupy unix_egroup='$1' nie jest prawidłową nazwą grupy
unix_shells=Odmów użytkownikom Unixa, których shelle nie znajdują są w pliku unix_shells=Odmów dostępu użytkownikom Unix, których powłoki nie są w pliku
unix_eshells=Brakujący lub nie istniejący plik shelli unix_eshells=Brakujący lub nieistniejący plik powłok
unix_restrict2=Dodatkowe ograniczenia unix_restrict2=Dodatkowe ograniczenia
unix_ewhogroup=Brakująca dozwolona grupa w wierszu $1 unix_ewhogroup=Brakująca grupa dozwolona w wierszu $1
unix_ewhouser=Brakujący dozwolony użytkownik w wierszu $1 unix_ewhouser=Brakujący użytkownik dozwolony w wierszu $1
unix_enone=Nie podano użytkowników lub grup Unixa unix_enone=Nie wprowadzono użytkowników ani grup Unix dozwolonych
unix_same=&lt;Ten sam użytkownik lub grupa&gt; unix_same=&lt;Ten sam użytkownik lub grupa&gt;
unix_sudo=Pozwól użytkownikom, którzy mogą uruchamiać wszystkie komendy za pomocą <tt>sudo</tt> na zalogowanie się jako <tt>root</tt> unix_sudo=Zezwól użytkownikom, którzy mogą uruchamiać wszystkie polecenia przez <tt>sudo</tt>, na logowanie jako <tt>root</tt>
unix_pamany=Śledź logowania, które pasują do walidacji PAM jako $1 unix_pamany=Traktuj loginy, które przechodzą tylko walidację PAM, jako $1
unix_esudo=Komenda $1 nie została zainstalowana unix_esudo=Komenda $1 nie jest zainstalowana
unix_esudomod=Moduł Perla $1 wymagany dla uwierzytelnienia <tt>sudo</tt> nie został zainstalowany unix_esudomod=Moduł Perl $1 potrzebny do uwierzytelniania <tt>sudo</tt> nie jest zainstalowany
unix_header=Ustawienia uwierzytelniania użytkownika Unix'a unix_header=Ustawienia uwierzytelniania użytkowników Unix
unix_utable=Dozwoleni użytkownicy Unix'a unix_utable=Dozwoleni użytkownicy Unix
sessions_title=Bieżące sesje logowania sessions_title=Obecne sesje logowania
sessions_id=ID sesji sessions_id=ID sesji
sessions_user=Użytkownik Webmina sessions_user=Użytkownik Webmin
sessions_login=Zalogowany sessions_login=Ostatnia aktywność
sessions_host=Adres IP sessions_host=Adres IP
sessions_lview=Wyświetl logi... sessions_lview=Wyświetl logi..
sessions_actions=Akcje..
sessions_all=Wszystkie sesje..
sessions_logouts=Pokaż również wylogowane sesje..
sessions_state=Stan
sessions_action=Akcje
sessions_this=To logowanie
sessions_in=Zalogowany
sessions_out=Wylogowany
sessions_kill=Rozłącz..
logins_title=Ostatnie logowania do Webmin
hide_title=Ukryj nieużywane moduły hide_title=Ukryj nieużywane moduły
hide_desc=Następujące moduły zostaną usunięte z listy dostępu modułu dla $1 jeśli korespondujące serwery nie są zainstalowane w systemie... hide_desc=Następujące moduły zostaną usunięte z listy dostępnych modułów dla $1, ponieważ odpowiadające im serwery nie są zainstalowane w Twoim systemie ..
hide_ok=Ukryj moduły hide_ok=Ukryj moduły teraz
hide_none=Nie ma nic do ukrycia - $1 nie ma dostępu do żadnego z modułów, dla których korespondujące serwery nie są zainstalowane. hide_none=Nie ma nic do ukrycia - $1 nie ma dostępu do żadnych modułów, których odpowiadające serwery nie są zainstalowane w Twoim systemie.
hide_desc2=Zauważ, że te moduły nie pojawią się automatycznie, gdy korespondujące serwery zostaną zainstalowane. Będziesz musiał ręcznie dodać uprawnienia dostępu za pomocą tego modułu. hide_desc2=Pamiętaj, że te moduły nie pojawią się automatycznie, jeśli odpowiadające im serwery zostaną zainstalowane. Musisz przyznać dostęp ręcznie, używając tego modułu.
hide_clone=(Klonuj $1) hide_clone=(Klonuj $1)
switch_euser=Nie masz uprawnień do przełączania do tego użytkownika switch_euser=Nie masz uprawnień, aby przełączyć się na tego użytkownika
switch_eold=Nie znaleziono istniejącej sesji! switch_eold=Istniejąca sesja nie została znaleziona!
rbac_title=Ustawienia RBAC rbac_title=Konfiguracja RBAC
rbac_desc=Integracja RBAC z Webminem dostarcza sposobu na określanie dostępu do modułu dla użytkownika i jego uprawnień ACL za pomocą bazy danych RBAC (Kontroli dostępu bazującej na rolach) zamiast za pomocą plików konfiguracyjnych Webmina. Gdy obsługa RBAC jest wlączona, każdy użytkownik, dla którego opcja <b>$edit_rbacdeny1</b> jest zaznaczona, będzie posiadał uprawnienia określane przez RBAC, a nie ustawienia kontroli dostępu Webmina. rbac_desc=Integracja Webmin z RBAC (Role Based Access Control) pozwala na określenie uprawnień użytkownika do modułów i ustawień ACL na podstawie bazy danych RBAC, zamiast korzystania z własnych plików konfiguracyjnych Webmin. Po włączeniu wsparcia dla RBAC, uprawnienia każdego użytkownika, dla którego wybrano opcję <b>RBAC kontroluje wszystkie moduły i ACL</b>, będą określane przez RBAC zamiast standardowych ustawień kontroli dostępu Webmin.
rbac_esolaris=RBAC jest obsługiwany na razie tylko przez Solarisa i nie można go używać w tym systemie $1. rbac_esolaris=RBAC jest obecnie obsługiwany tylko na Solaris, więc nie można go użyć w tym systemie $1.
rbac_eperl=Moduł $1 Perla wymagany przez integracje RBAC nie jest zainstalowany. Aby go zainstalować <a href='$2'>kliknij tutaj</a>. rbac_eperl=Moduł Perl $1 potrzebny do integracji RBAC nie jest zainstalowany. <a href='$2'>Kliknij tutaj</a>, aby go teraz zainstalować.
rbac_ecpan=Nie posiadasz dostępu do strony Moduły Perla, aby zainstalować wymagany moduł $1 do integracji RBAC. rbac_ecpan=Nie masz dostępu do strony Moduły Perl Webmin, aby zainstalować wymagany moduł $1 dla integracji RBAC.
rbac_ok=Integracja RBAC jest dostępna w tym systemie i można ją włączyć dla poszczególnych użytkowników na stronie Edycja użytkownika Webmina. rbac_ok=Integracja RBAC jest dostępna w tym systemie i może być włączona indywidualnie dla użytkowników na stronie Edytuj użytkownika Webmin.
udeletes_err=Błąd usuwanie użytkowników udeletes_err=Nie udało się usunąć użytkowników
udeletes_jerr=Dodanie użytkowników do grupy nie powiodło się udeletes_jerr=Nie udało się dodać użytkowników do grupy
udeletes_enone=Nie wybrane udeletes_enone=Nic nie wybrano
udeletes_title=Usuń użytkowników udeletes_title=Usuń użytkowników
udeletes_rusure=Czy jesteś pewny, że chcesz usunąć $1 wybranych użytkowników? Wszystkie ustawienia kontroli dostępu i szczegóły użytkowników zostaną utracone. udeletes_rusure=Czy na pewno chcesz usunąć $1 wybranych użytkowników? Wszystkie ich ustawienia kontroli dostępu i dane użytkownika zostaną utracone.
udeletes_users=Wybrano użytkowników: $1 udeletes_users=Wybrani użytkownicy: $1
udeletes_ok=Usuń użytkowników udeletes_ok=Usuń użytkowników
udeletes_ereadonly=Jeden z wybranych użytkowników jest oznaczony jako nie-edytowalny udeletes_ereadonly=Jeden z wybranych użytkowników jest oznaczony jako tylko do odczytu
gdeletes_err=Błąd usuwania grup gdeletes_err=Nie udało się usunąć grup
gdeletes_title=Usuń grupy gdeletes_title=Usuń grupy
gdeletes_rusure=Czy jesteś pewien, że chcesz usunąć $1 wybranych grup, i $2 użytków, których zawierają? Wszystkie ustawienia kontroli dostępu i szczegóły użytkowników zostaną utracone. gdeletes_rusure=Czy na pewno chcesz usunąć $1 wybranych grup i $2 użytkowników, którzy do nich należą? Wszystkie ich ustawienia kontroli dostępu i dane użytkownika zostaną utracone.
gdeletes_users=Wybrane grupy: $1 gdeletes_users=Wybrane grupy: $1
gdeletes_ok=Usuń grupy gdeletes_ok=Usuń grupy
pass_title=Ograniczenia hasła pass_title=Ograniczenia hasła
pass_ecannot=Nie masz uprawnień do edycji ograniczeń hasła pass_ecannot=Nie masz uprawnień do edytowania ograniczeń haseł
pass_header=Opcje ograniczeń hasła Webmina pass_header=Opcje wymuszania haseł w Webmin
pass_minsize=Minimalna długość hasła pass_minsize=Minimalna długość hasła
pass_nominsize=Bez minimum pass_nominsize=Brak minimum
pass_regexps=Wyrażenia regularne haseł muszą być zgodne z pass_regexps=Wyrażenia regularne, które muszą spełniać hasła
pass_regdesc=Prosty opis dla wyrażenia regularnego pass_regdesc=Opis wyrażenia regularnego w języku naturalnym
pass_maxdays=Liczba dni, po upływie których hasło musi zostać zmienione pass_maxdays=Liczba dni przed koniecznością zmiany hasła
pass_lockdays=Liczba dni, po upływie których niezmienione hasło zablokuje konto pass_lockdays=Liczba dni przed zablokowaniem konta za niezmienione hasło
pass_nomaxdays=Zmiana nie jest nigdy wymagana pass_nomaxdays=Zmiana nigdy nie wymagana
pass_nolockdays=Konto nie jest nigdy blokowane pass_nolockdays=Konto nigdy nie jest blokowane
pass_nouser=Zabronić haseł zawierających nazwę użytkownika? pass_nouser=Zakazać haseł zawierających nazwę użytkownika?
pass_nodict=Zabronić haseł pochodzących ze słownika? pass_nodict=Zakazać haseł będących słowami ze słownika?
pass_oldblock=Liczba starych haseł do odrzucenia pass_oldblock=Liczba odrzuconych starych haseł
pass_nooldblock=Brak ograniczeń w ponownym użyciu hasła pass_nooldblock=Brak ograniczeń dotyczących ponownego użycia hasła
pass_days=dni pass_days=dni
pass_pass=haseł pass_pass=hasła
pass_err=Błąd zapisywania ustawień dotyczących hasła pass_err=Nie udało się zapisać ograniczeń haseł
pass_eminsize=Brakująca lub nienumeryczna minimalna długość hasła pass_eminsize=Brakująca lub nieprawidłowa minimalna długość hasła
pass_emaxdays=Brakująca lub nienumeryczna liczba dni przed zmianą pass_emaxdays=Brakująca lub nieprawidłowa liczba dni przed koniecznością zmiany hasła
pass_elockdays=Brakująca lub nienumeryczna liczba dni przed zablokowaniem konta pass_elockdays=Brakująca lub nieprawidłowa liczba dni przed zablokowaniem konta
pass_eoldblock=Brakująca lub nienumeryczna liczba starych haseł do odrzucenia pass_eoldblock=Brakująca lub nieprawidłowa liczba odrzuconych starych haseł
cpass_minsize=Musi zawierać przynajmniej $1 znaków cpass_minsize=Musi mieć co najmniej $1 znaków
cpass_notre=Pasuje do niedozwolonego wzorca cpass_notre=Pasuje do niedozwolonego wzorca
cpass_re=Nie pasuje do wymaganego wzorca cpass_re=Nie pasuje do wymaganego wzorca
cpass_name=Zawiera nazwę użytkownika cpass_name=Zawiera nazwę użytkownika
cpass_dict=Jest słowem ze słownika cpass_dict=Jest słowem w słowniku
cpass_spellcmd=Nie zainstalowano komend $1 lub $2 wymaganych do sprawdzania słów ze słownika cpass_spellcmd=Brakujące polecenia $1 lub $2 potrzebne do sprawdzenia słów w słowniku
cpass_old=Nie można używać starych haseł cpass_old=Stare hasła nie mogą być ponownie użyte
sql_title=Baza danych użytkowników i grup sql_title=Baza danych użytkowników i grup
sql_ecannot=Nie masz uprawnień do konfigurowania bazy użytkowników i grup sql_ecannot=Nie masz uprawnień do konfiguracji bazy danych użytkowników i grup
sql_header=Opcje zaplecza bazy danych dla użytkowników i grup sql_header=Opcje dla zaplecza bazy danych użytkowników i grup
sql_host=Nazwa hosta sql_host=Nazwa hosta
sql_user=Nazwa użytkownika sql_user=Nazwa użytkownika
sql_pass=Hasło sql_pass=Hasło
@@ -417,68 +438,74 @@ sql_ssl=Szyfrowanie połączenia
sql_ssl0=Brak sql_ssl0=Brak
sql_ssl1=SSL sql_ssl1=SSL
sql_ssl2=TLS sql_ssl2=TLS
sql_userclass=Klasa obiektu dla użytkowników sql_userclass=Klasa obiektów dla użytkowników
sql_groupclass=Klasa obiektu dla grup sql_groupclass=Klasa obiektów dla grup
sql_euserclass=Brakująca lub niewłaściwa klasa obiektu dla użytkowników sql_euserclass=Brakująca lub nieprawidłowa klasa obiektów dla użytkowników
sql_egroupclass=Brakująca lub niewłaściwa klasa obiektu dla grup sql_egroupclass=Brakująca lub nieprawidłowa klasa obiektów dla grup
sql_none=Używaj tylko plików lokalnych do przechowywania użytkowników i grup sql_none=Użyj tylko lokalnych plików do przechowywania użytkowników i grup
sql_mysql=Używaj bazy MySQL sql_mysql=Użyj bazy danych MySQL
sql_postgresql=Używaj bazy PostgreSQL sql_postgresql=Użyj bazy danych PostgreSQL
sql_ldap=Używaj serwera LDAP sql_ldap=Użyj serwera LDAP
sql_prefix=Twórz pod DN sql_prefix=Utwórz pod DN
sql_addto0=Dodaj nowych użytkowników do bazy wybranej powyżej sql_addto0=Dodaj nowych użytkowników do wybranej powyżej bazy danych
sql_addto1=Dodaj nowych użytkowników do plików lokalnych sql_addto1=Dodaj nowych użytkowników do lokalnych plików
sql_emod=Brakuje wymaganego modułu Perla <tt>$1</tt> sql_nocache0=Buforuj połączenia z bazą danych
sql_etable=Nie można pobrać danych z wymaganej tabeli $1 : $2 sql_nocache1=Otwieraj nowe połączenie dla każdego wyszukiwania
sql_eldapdn=Nie znaleziono podstawowego DN LDAP $1 sql_emod=Brakujący wymagany moduł Perl <tt>$1</tt>
sql_eclass=Klasa obiektu : $1 LDAP nie istnieje w schemacie serwera sql_etable=Nie udało się zapytać wymaganą tabelę $1 : $2
sql_err=Nie udało się zapisać ustawień bazy użytkowników i grup sql_eldapdn=Bazowy DN LDAP $1 nie został znaleziony
sql_ehost=Brakująca lub nieosiągalna nazwa hosta sql_eclass=Klasa obiektów LDAP $1 nie istnieje w schemacie serwera
sql_euser=Brakująca lub niewłaściwa nazwa użytkownika (spacje są niedozwolone) sql_err=Nie udało się zapisać ustawień bazy danych użytkowników i grup
sql_epass=Błędne hasło (spacje są niedozwolone) sql_ehost=Brakująca lub nierozwiązywalna nazwa hosta
sql_edb=Niewłaściwa nazwa bazy danych (spacje są niedozwolone) sql_euser=Brakująca lub nieprawidłowa nazwa użytkownika (bez spacji)
sql_eprefix=Brakujący lub niewłaściwy podstawowy DN (spacje są niedozwolone) sql_epass=Nieprawidłowe hasło (bez spacji)
sql_eprefix2=Podstawowy DN wygląda na niewłaściwy - powinien przypominać <tt>dc=mojadomena,dc=com</tt> sql_edb=Nieprawidłowa nazwa bazy danych (bez spacji)
sql_title2=Twórz brakujące tabele sql_eprefix=Brakujący lub nieprawidłowy bazowy DN (bez spacji)
sql_tableerr=Baza użytkowników i grup jest poprawna, ale brakuje niektórych tabel wymaganych przez webmina : $1 sql_eprefix2=Nieprawidłowo wyglądający bazowy DN - powinien wyglądać jak <tt>dc=moja_domena,dc=com</tt>
sql_tableerr2=Kliknij przycisk <b>Twórz tabele</b> poniżej aby stworzyć je automatycznie, lub ręcznie uruchom zapytanie SQL poniżej. sql_title2=Utwórz brakujące tabele
sql_make=Twórz tabele sql_tableerr=Ustawienia bazy danych użytkowników i grup są prawidłowe, ale brakuje niektórych tabel wymaganych przez Webmin: $1
sql_title3=Twórz brakujący DN sql_tableerr2=Kliknij przycisk <b>Utwórz tabele</b> poniżej, aby je automatycznie utworzyć, lub uruchom ręcznie podane polecenia SQL.
sql_dnerr=Ustawienia bazy użytkowników i grup są prawidłowe, ale DN LDAP : $1 wymagany przez Webmina nie istnieje sql_make=Utwórz tabele
sql_dnerr2=Kliknij przycisk <b>Twórz DN</b> poniżej, aby stworzyć DN automatycznie, lub ręcznie dodaj DN do Twojego serwera LDAP. sql_title3=Utwórz brakujące DN
sql_makedn=Twórz DN sql_dnerr=Ustawienia bazy danych użytkowników i grup są prawidłowe, ale brakuje wymaganego DN LDAP: $1
sql_dnerr2=Kliknij przycisk <b>Utwórz DN</b> poniżej, aby je automatycznie utworzyć, lub dodaj je ręcznie do swojego serwera LDAP.
sql_makedn=Utwórz DN
sql_schema=Pobierz schemat LDAP sql_schema=Pobierz schemat LDAP
sql_timeout_def=Użyj domyślnego limitu czasu połączenia (60 sekund)
sql_timeout_for=Zamknij buforowane połączenia po
sql_timeout_secs=sekundy
sql_etimeout=Limit czasu dla buforowanego połączenia musi być liczbą
make_title=Twórz tabele użytkownika i grupy make_title=Utwórz tabele użytkowników i grup
make_err=Nie udało się utworzyć tabel dla użytkownika i grupy make_err=Nie udało się utworzyć tabel użytkowników i grup
make_exec=Wykonywanie zapytania SQL $1 .. make_exec=Wykonywanie SQL $1 ..
make_failed=.. tworzenie nieudane : $1 make_failed=.. tworzenie nie powiodło się: $1
make_done=.. zrobione make_done=.. zakończone
make_still=Mimo utworzenia tabeli : $1, nadal istnieją pewne problemy make_still=Niektóre problemy nadal występują po utworzeniu tabel: $1
makedn_title=Twórz DN LDAP makedn_title=Utwórz DN LDAP
makedn_eoc=Nie znaleziono klas obiektu strukturalnego! makedn_eoc=Nie znaleziono strukturalnych klas obiektów!
makedn_exec=Tworzenie DN rodzica $1 .. makedn_exec=Tworzenie nadrzędnego DN $1 ..
makedn_failed=.. tworzenie nieudane : $1 makedn_failed=.. tworzenie nie powiodło się: $1
makedn_done=.. zrobione makedn_done=.. zakończone
makedn_still=Mimo utworzenia DN : $1, nadal istnieją pewne problemy makedn_still=Niektóre problemy nadal występują po utworzeniu DN: $1
schema_title=Pobierz schemat LDAP schema_title=Pobierz schemat LDAP
schema_desc=Zanim Webmin będzie mógł używać serwera LDAP do przechowywania użytkowników i grup musi zostać skonfigurowany tak, aby używał poniższego schematu. Można to zrobić zapisując definicję schematu <tt>/etc/ldap/schema</tt> lub <tt>/etc/openldap/schema</tt> jako <tt>webmin.schema</tt>. Następnie należy skonfigurować serwer tak, aby używał tego pliku. schema_desc=Zanim Webmin będzie mógł używać serwera LDAP do przechowywania użytkowników i grup, musi zostać skonfigurowany do używania poniższego schematu. Zazwyczaj można to zrobić, zapisując definicję schematu w <tt>/etc/ldap/schema</tt> lub <tt>/etc/openldap/schema</tt> jako <tt>webmin.schema</tt>, a następnie konfigurując serwer do ładowania tego pliku schematu.
schema_download=Pobierz plik schematu: <a href=$1>$1</a> schema_download=Pobierz plik schematu: <a href=$1>$1</a>
twofactor_err=Błąd konfigurowania Włącz dwustopniowego uwierzytelniania twofactor_err=Nie udało się skonfigurować uwierzytelniania dwuskładnikowego
twofactor_euser=Użytkownik Webmina nie został znaleziony! twofactor_euser=Nie znaleziono Twojego użytkownika Webmin!
twofactor_title=Dwustopniowe uwierzytelnianie twofactor_title=Uwierzytelnianie dwuskładnikowe
twofactor_disable=Wyłącz dwustopniowe uwierzytelnianie twofactor_disable=Wyłącz uwierzytelnianie dwuskładnikowe
twofactor_already=Korzystasz jusz z dwustopniowego uwierzytelniania u $1 z ID $2. twofactor_already=Twoje logowanie do Webmin ma już włączone uwierzytelnianie dwuskładnikowe z dostawcą $1 i identyfikatorem konta $2.
twofactor_already2=Dla loginu $3 jest już włączone dwustopniowe uwierzytelnianie na $1 z ID $2. twofactor_already2=Logowanie do Webmin $3 ma już włączone uwierzytelnianie dwuskładnikowe z dostawcą $1 i identyfikatorem konta $2.
twofactor_desc=Ta strona pozwala na włączenie dwustopniowego uwierzytelniania dla twojego logowania w Webmin korzystając z <a href='$2' target=_blank>$1</a>. Po włączeniu będzie wymagane podawanie dodatkowego tokena przy logowaniu. twofactor_desc=Ta strona pozwala włączyć uwierzytelnianie dwuskładnikowe dla Twojego logowania do Webmin za pomocą <a href='$2' target=_blank>$1</a>. Po aktywacji przy logowaniu do Webmin wymagany będzie dodatkowy token uwierzytelniający.
twofactor_desc2=Ta strona pozwala na włączenie dwustopniowego uwierzytelniania dla logowania w Webmin korzystając z <a href='$2' target=_blank>$1</a>. Po włączeniu będzie wymagane podawanie dodatkowego tokena przy logowaniu. twofactor_desc2=Ta strona pozwala włączyć uwierzytelnianie dwuskładnikowe dla logowania do Webmin $3 za pomocą <a href='$2' target=_blank>$1</a>. Po aktywacji przy logowaniu do Webmin wymagany będzie dodatkowy token uwierzytelniający.
twofactor_enable=Włącz dwustopniowe uwierzytelnianie twofactor_enable=Zarejestruj się do uwierzytelniania dwuskładnikowego
twofactor_header=Szczegóły dwustopniowego uwierzytelniania twofactor_header=Szczegóły rejestracji do uwierzytelniania dwuskładnikowego
twofactor_enrolling=Włączanie dwustopniowego uwierzytelniania u $1 .. twofactor_enrolling=Rejestracja do uwierzytelniania dwuskładnikowego z dostawcą $1 ..
twofactor_failed=.. błąd włączania : $1 twofactor_failed=.. rejestracja nie powiodła się: $1
twofactor_done=.. zakończono. Twój ID u tego dostawcy to <tt>$1</tt>. twofactor_done=.. zakończone. Twój identyfikator u tego dostawcy to <tt>$1</tt>.
twofactor_setup=Dwustopniowe uwierzytelnianie nie jest włączone na tym systemie, może zostać włączone poprzez moduł <a href='$1'>Konfiguracji Webmina</a> twofactor_setup=Uwierzytelnianie dwuskładnikowe nie zostało jeszcze włączone na tym systemie, ale można je aktywować za pomocą modułu <a href='$1'>Konfiguracja Webmin</a>.
twofactor_ebutton=Nie kliknięto na przycisk! twofactor_ebutton=Nie kliknięto żadnego przycisku!

View File

@@ -1,33 +0,0 @@
index_screate=Utwórz nowego bezpiecznego użytkownika.
edit_title3=Utwórz bezpiecznego użytkownika Webmin
edit_locale=Widownia
edit_safe=Poziom uprawnień
edit_safe0=Nieograniczony
edit_safe1=Tylko bezpieczne moduły
edit_unsafe=Zresetuj do nieograniczonego
save_eunixname=Nazwa użytkownika „$1” nie jest użytkownikiem systemu Unix, dlatego nie można jej używać w trybie awaryjnym
acl_locale=Czy można zmienić język?
sync_modify=Zmień nazwę pasującego użytkownika Webmin, gdy zmieniona zostanie nazwa użytkownika Uniksa.
sessions_actions=Działania..
sessions_all=Wszystkie sesje...
sessions_logouts=Pokaż także wylogowane sesje.
sessions_state=Stan
sessions_action=działania
sessions_this=Ten login
sessions_in=Zalogowany
sessions_out=Wylogowano
sessions_kill=Rozłączyć się..
logins_title=Ostatnie logowanie Webmina
sql_nocache0=Buforuj połączenia z bazą danych
sql_nocache1=Otwórz nowe połączenie dla każdego wyszukiwania
sql_timeout_def=Użyj domyślnego limitu czasu połączenia (60 sekund)
sql_timeout_for=Zamknij połączenia z pamięci podręcznej po
sql_timeout_secs=sekundy
sql_etimeout=Limit czasu połączenia w pamięci podręcznej musi być liczbą

View File

@@ -2,8 +2,10 @@ index_title=Webmin 用户管理
index_user=用户 index_user=用户
index_modules=模块 index_modules=模块
index_create=创建新用户 index_create=创建新用户
index_screate=创建一个安全的新用户
index_convert=由 Unix 转换为 Webmin 用户 index_convert=由 Unix 转换为 Webmin 用户
index_cert=需要 SSL 验证 index_cert=需要 SSL 验证
index_twofactor=二次核验验证
index_certmsg=点击此按钮请求一个 SSL 验证,这样您不需要输入用户名和口令即能安全地登录 Webmin。 index_certmsg=点击此按钮请求一个 SSL 验证,这样您不需要输入用户名和口令即能安全地登录 Webmin。
index_return=用户列表 index_return=用户列表
index_none=无 index_none=无
@@ -19,23 +21,49 @@ index_members=成员
index_modgroups=工作组 $1 的模块 index_modgroups=工作组 $1 的模块
index_sync=配置 Unix 用户同步 index_sync=配置 Unix 用户同步
index_unix=配置 Unix 用户的验证 index_unix=配置 Unix 用户的验证
index_sessions=查看登陆 Sessions
index_rbac=设置 RBAC
index_delete=删除已选
index_joingroup=添加到群组:
index_eulist=未能列出用户 : $1
index_eglist=未能列出群组 : $1
edit_title=编辑 Webmin 用户 edit_title=编辑 Webmin 用户
edit_title2=创建 Webmin 用户 edit_title2=创建 Webmin 用户
edit_title3=创建安全的 Webmin 用户
edit_readonly=不应编辑此Webmin用户因为它由 $1 模块管理. <a href='$2'>点击这里</a> 绕过此警告并编辑用户,但要注意,任何手动更改都可能被重写!
edit_rights=Webmin 用户访问权限 edit_rights=Webmin 用户访问权限
edit_user=用户名 edit_user=用户名
edit_cloneof=克隆 Webmin 用户
edit_real=姓名
edit_group=工作组成员 edit_group=工作组成员
edit_pass=口令 edit_pass=口令
edit_same=与 Unix 相同 edit_same=与 Unix 相同
edit_lock=没有可接受的口令 edit_lock=没有可接受的口令
edit_pam=PAM 验证 edit_pam=PAM 验证
edit_unix=Unix 验证 edit_unix=Unix 验证
edit_extauth=外部身份验证程序
edit_dont=不变 edit_dont=不变
edit_set=设置为 edit_set=设置为
edit_passlocked=密码已 $1 天未更改-帐户已锁定!
edit_passmax=密码已 $1 天未更改-下次登录时必须更改
edit_passold=密码上次更改是在 $1 天前
edit_passtoday=密码在不到一天前更改
edit_modules=模块 edit_modules=模块
edit_clone=克隆 edit_clone=克隆
edit_twofactor=双因素身份验证类型
edit_twofactorprov=用ID为 $2 的提供者 $1
edit_twofactorcancel=移除双因素身份验证要求
edit_twofactornone=尚未设置
edit_twofactoradd=启用双重认证
edit_lang=语言 edit_lang=语言
edit_locale=区域语言
edit_notabs=模块分类? edit_notabs=模块分类?
edit_logout=非活动注销时间
edit_mins=分钟
edit_chars=字母
edit_minsize=最小密码长度
edit_nochange=强制更改密码天数?
edit_cert=SSL 验证名称 edit_cert=SSL 验证名称
edit_none=无 edit_none=无
edit_ips=IP 访问控制 edit_ips=IP 访问控制
@@ -54,11 +82,47 @@ edit_ecreate=您没有创建用户的权限
edit_theme=个人主题 edit_theme=个人主题
edit_themeglobal=来自 Webmin 设定 edit_themeglobal=来自 Webmin 设定
edit_themedef=默认的 Webmin 主题 edit_themedef=默认的 Webmin 主题
edit_overlay=个人主题叠加
edit_overlayglobal=None - 使用默认主题
edit_log=查看日志 edit_log=查看日志
edit_selall=全选
edit_invert=反选
edit_hide=隐藏未使用
edit_switch=切换到用户
edit_return=Webmin 用户
edit_return2=Webmin 群组
edit_rbacdeny=RBAC 访问模式
edit_rbacdeny0=RBAC 仅控制选定的模块 ACLs
edit_rbacdeny1=RBAC 控制所有模块和ACLs
edit_global=所有模块的权限
edit_templock=暂时锁定
edit_temppass=下次登录时强制更改
edit_days=一周中允许的天数
edit_alldays=每天
edit_seldays=仅选定日期 ..
edit_hours=一天中允许的时间
edit_allhours=任意时间
edit_selhours=从 $1:$2 到 $3:$4
edit_ui=用户界面选项
edit_security=安全和限制选项
edit_mods=可用 Webmin 模块
edit_modsg=可用 Webmin 模块 (除了小组成员)
edit_proto=存储类型
edit_proto_mysql=MySQL 数据库
edit_proto_postgresql=PostgreSQL 数据库
edit_proto_ldap=LDAP server服务
edit_proto_=本地文件
edit_safe=特权级别
edit_safe0=无限制
edit_safe1=仅安全模块
edit_unsafe=重置为无限制
save_err=保存用户失败 save_err=保存用户失败
save_ename=错误的用户名‘$1 save_ename=错误的用户名‘$1
save_eunixname=用户名 '$1' 不是Unix用户因此不能在安全模式下使用
save_enamewebmin=用户名 'webmin' 保留供内部使用
save_edup=用户名‘$1已经存在 save_edup=用户名‘$1已经存在
save_eoverlay=除非主题符合以下条件,否则无法选择主题覆盖
save_edeny=您不能取消您自己对 Webmin 用户模块的访问权限 save_edeny=您不能取消您自己对 Webmin 用户模块的访问权限
save_eos=您的操作系统不支持“与 Unix 相同”口令选项。 save_eos=您的操作系统不支持“与 Unix 相同”口令选项。
save_emd5=“与 Unix 相同”口令选项不能在 MD5 加密的系统上使用。 save_emd5=“与 Unix 相同”口令选项不能在 MD5 加密的系统上使用。
@@ -67,6 +131,7 @@ save_emod=您不能授予访问模块 '$1' 的权限
save_ecreate=您没有创建用户的权限 save_ecreate=您没有创建用户的权限
save_euser=您没有编辑用户的权限 save_euser=您没有编辑用户的权限
save_ecolon=口令不能包含 : 字符 save_ecolon=口令不能包含 : 字符
save_epass=密码无效 : $1
save_eself=您目前使用的 IP 地址 ($1) 被拒绝。 save_eself=您目前使用的 IP 地址 ($1) 被拒绝。
save_epam=因没有安装 <tt>Authen::PAM</tt> Perl 模块或该模块未能正常工作PAM 验证不可用。 save_epam=因没有安装 <tt>Authen::PAM</tt> Perl 模块或该模块未能正常工作PAM 验证不可用。
save_epam2=现在您可以使用 Webmin 的 Perl Modules 模块来<a href='$1'> 下载和安装 Authen::PAM</a>。 save_epam2=现在您可以使用 Webmin 的 Perl Modules 模块来<a href='$1'> 下载和安装 Authen::PAM</a>。
@@ -76,11 +141,18 @@ save_enet=$1不是一个有效的网址
save_emask=$1不是一个有效的网络掩码 save_emask=$1不是一个有效的网络掩码
save_eip=$1不是一个完整的 IP 地址或网络地址 save_eip=$1不是一个完整的 IP 地址或网络地址
save_ehost=没有找到‘$1的 IP 地址 save_ehost=没有找到‘$1的 IP 地址
save_elogouttime=缺少或非数字的非活动注销时间
save_eminsize=缺少或非数字最小密码长度
save_edays=没有允许选择的天数
save_ehours=允许的时间缺失或无效
save_ehours2=允许的开始时间必须早于结束时间
save_etemp=除非启用 <a href='$1'>提示用户输入新密码</a> 否则无法使用在下次登录时强制更改密码的选项
delete_err=删除用户失败 delete_err=删除用户失败
delete_eself=您不能删除您自己 delete_eself=您不能删除您自己
delete_ecannot=您没有删除用户的权限 delete_ecannot=您没有删除用户的权限
delete_euser=您没有删除这个用户的权限 delete_euser=您没有删除这个用户的权限
delete_eanonuser=此用户正用于匿名模块访问
cert_title=申请验证 cert_title=申请验证
cert_issue=发放验证 cert_issue=发放验证
@@ -93,17 +165,25 @@ cert_o=组织
cert_sp=省市 cert_sp=省市
cert_c=国家代码 cert_c=国家代码
cert_key=密码长度 cert_key=密码长度
cert_ekey=您的浏览器没有提交新的 SSL 密码──可能它不支持 SSL 客户验证 cert_done=您的 $1 证书已成功生成
cert_pickup=<a href='$1'>单击此处获取您的证书并将其安装在浏览器中</a>
cert_install=将证书安装到浏览器中
cert_ekey=您的浏览器未提交新的SSL密钥可能它不支持SSL客户端证书。
cert_eca=设置验证失败 : $1 cert_eca=设置验证失败 : $1
cert_already=警告 - 您正在使用验证 $1。 cert_already=警告 - 您正在使用验证 $1。
cert_etempdir=证书文件无效
acl_title=模块访问控制 acl_title=模块访问控制
acl_title2=$2 中的 $1 acl_title2=$2 中的 $1
acl_title3=$2 中的 $1 工作组 acl_title3=$2 中的 $1 工作组
acl_options=$1 访问控制选项 acl_options=$1 访问控制选项
acl_config=是否可以编辑模块配置? acl_config=是否可以编辑模块配置?
acl_reset=重置为完全访问权限
acl_rbac=从RBAC获取访问控制设置
acl_rbacyes=是(覆盖以下设置)
acl_uall=所有用户 acl_uall=所有用户
acl_uthis=此用户
acl_usel=选择 .. acl_usel=选择 ..
acl_gr=$1 的成员 acl_gr=$1 的成员
acl_users=可以被编辑的用户 acl_users=可以被编辑的用户
@@ -116,6 +196,7 @@ acl_delete=是否可以删除用户?
acl_rename=是否可以重命名用户? acl_rename=是否可以重命名用户?
acl_acl=是否可以编辑模块访问控制? acl_acl=是否可以编辑模块访问控制?
acl_lang=是否可以改变语言? acl_lang=是否可以改变语言?
acl_locale=是否改变区域语言?
acl_chcert=是否可以改变 SSL 验证名称? acl_chcert=是否可以改变 SSL 验证名称?
acl_euser=您没有编辑这个用户 ACL 的权限 acl_euser=您没有编辑这个用户 ACL 的权限
acl_egroup=您没有编辑工作组 ACL 的权限 acl_egroup=您没有编辑工作组 ACL 的权限
@@ -133,6 +214,14 @@ acl_perms_1=和创建者相同的模块访问控制
acl_perms_0=默认的模块访问控制 acl_perms_0=默认的模块访问控制
acl_sync=是否可以配置用户同步? acl_sync=是否可以配置用户同步?
acl_unix=是否可以配置 unix 验证? acl_unix=是否可以配置 unix 验证?
acl_sessions=可以查看和取消登录会话吗?
acl_cats=可以更改分类吗?
acl_theme=可以更改个人主题吗?
acl_ips=可以更改IP访问控制吗
acl_switch=可以切换到其他用户吗?
acl_times=可以更改允许的登录时间吗?
acl_pass=可以更改密码限制吗?
acl_sql=可以配置用户和组数据库吗?
log_modify=修改 Webmin 用户 $1 log_modify=修改 Webmin 用户 $1
log_rename=更改 Webmin 用户名 $1 为 $2 log_rename=更改 Webmin 用户名 $1 为 $2
@@ -140,11 +229,22 @@ log_create=创建 Webmin 用户 $1
log_clone=将 Webmin 用户 $1 复制到 $2 log_clone=将 Webmin 用户 $1 复制到 $2
log_delete=删除 Webmin 用户 $1 log_delete=删除 Webmin 用户 $1
log_acl=更新 $2 中 $1 的访问 log_acl=更新 $2 中 $1 的访问
log_reset=重置 $1 在 $2 中的访问权限
log_cert=为用户 $1 发放验证 log_cert=为用户 $1 发放验证
log_modify_g=修改 Webmin 工作组 $1 log_modify_g=修改 Webmin 工作组 $1
log_rename_g=将工作组 $1 重新命名为 $2 log_rename_g=将工作组 $1 重新命名为 $2
log_create_g=创建 Webmin 工作组 $1 log_create_g=创建 Webmin 工作组 $1
log_delete_g=删除 Webmin 工作组 $1 log_delete_g=删除 Webmin 工作组 $1
log_switch=切换到 Webmin 用户 $1
log_delete_users=删除 $1 Webmin 用户
log_delete_groups=删除 $1 Webmin 群组
log_joingroup=添加 $1 Webmin 用户到群组 $2
log_pass=更改密码限制
log_unix=更改了unix用户身份验证
log_sync=更改了unix用户同步
log_sql=更改了用户和群组数据库
log_twofactor=注册用户 $1 使用双因素提供商 $2
log_onefactor=取销用户 $1 进行双因素身份验证
gedit_ecannot=您没有编辑工作组的权限 gedit_ecannot=您没有编辑工作组的权限
gedit_title=编辑 Webmin 工作组 gedit_title=编辑 Webmin 工作组
@@ -152,16 +252,21 @@ gedit_title2=创建 Webmin 工作组
gedit_group=工作组名称 gedit_group=工作组名称
gedit_rights=Webmin 工作组访问权限 gedit_rights=Webmin 工作组访问权限
gedit_modules=成员的模块 gedit_modules=成员的模块
gedit_members=成员用户和群组
gedit_desc=群组描述
gedit_egone=所选群组已不存在!
gdelete_err=删除工作组失败 gdelete_err=删除工作组失败
gdelete_ecannot=您没有删除工作组的权限 gdelete_ecannot=您没有删除工作组的权限
gdelete_euser=您不能删除您自己的工作组 gdelete_euser=您不能删除您自己的工作组
gdelete_esub=无法删除具有子组的群组
gdelete_title=删除工作组 gdelete_title=删除工作组
gdelete_desc=您确定想要删除工作组 $1 和它的用户 $2 吗? gdelete_desc=您确定想要删除工作组 $1 和它的用户 $2 吗?
gdelete_ok=删除工作组 gdelete_ok=删除工作组
gsave_err=无法保存工作组 gsave_err=无法保存工作组
gsave_ename=不存在的或无效的工作组名称 gsave_ename=不存在的或无效的工作组名称
gsave_enamewebmin=组名 'webmin' 保留供内部使用
gsave_edup=工作组名称已经存在 gsave_edup=工作组名称已经存在
convert_title=用户转换 convert_title=用户转换
@@ -174,6 +279,7 @@ convert_2=所有用户除了
convert_3=工作组中的用户 convert_3=工作组中的用户
convert_4=UID 范围内的用户 convert_4=UID 范围内的用户
convert_group=为 Webmin 工作组指定新用户 convert_group=为 Webmin 工作组指定新用户
convert_sync2=将来是否与Unix用户同步密码
convert_ok=现在转换 convert_ok=现在转换
convert_err=无法转换用户 convert_err=无法转换用户
convert_eusers=没有输入要转换的用户 convert_eusers=没有输入要转换的用户
@@ -184,21 +290,219 @@ convert_ewgroup=没有这样的 Webmin 工作组
convert_ewgroup2=你没有为这个工作组指定新用户的权限 convert_ewgroup2=你没有为这个工作组指定新用户的权限
convert_skip=$1 被忽略 convert_skip=$1 被忽略
convert_exists=$1 已经存在 convert_exists=$1 已经存在
convert_invalid=$1 不是有效的Webmin用户名
convert_added=$1 已被增加 convert_added=$1 已被增加
convert_msg=正在转换 Unix 用户... convert_msg=正在转换 Unix 用户...
convert_user=Unix 用户
convert_action=执行动作
convert_done=$1 用户转换, $2 无效, $3 已存在, $4 排除.
convert_users=用户转换
sync_title=Unix 用户同步 sync_title=Unix 用户同步
sync_desc=这个表格可以让您通过 Webmin 来配置 Unix 用户及这个模块中用户的自动同步。 sync_desc=这个表格可以让您通过 Webmin 来配置 Unix 用户及这个模块中用户的自动同步。
sync_nogroups=您的系统中没有定义过的 Webmin 工作组。至少需创建一个工作组,以便为已转换用户定义许可。 sync_nogroups=您的系统中没有定义过的 Webmin 工作组。至少需创建一个工作组,以便为已转换用户定义许可。
sync_when=何时同步
sync_create=在创建 Unix 用户后创建一个 Webmin 用户 sync_create=在创建 Unix 用户后创建一个 Webmin 用户
sync_update=在更新 Unix 用户后更新相应的 Webmin 用户。 sync_update=在更新 Unix 用户后更新相应的 Webmin 用户。
sync_delete=在删除 Unix 用户后删除相应的 Webmin 用户 sync_delete=在删除 Unix 用户后删除相应的 Webmin 用户
sync_modify=重命名Unix用户时重命名匹配的Webmin用户。
sync_group=为 Webmin 工作组指定一个新用户 sync_group=为 Webmin 工作组指定一个新用户
sync_unix=将新用户的密码设置为Unix身份验证。
sync_ecannot=您没有配置用户同步的权限。 sync_ecannot=您没有配置用户同步的权限。
unix_title=Unix 用户验证 unix_title=Unix 用户验证
unix_err=保存Unix身份验证失败
unix_desc=您可以在该页配置 Webmin 使用系统用户列表和 PAM 验证登录。如果您有许多想要授予访问 Webmin 的 Unix 用户,这个方法就会很有用。 unix_desc=您可以在该页配置 Webmin 使用系统用户列表和 PAM 验证登录。如果您有许多想要授予访问 Webmin 的 Unix 用户,这个方法就会很有用。
unix_def=只允许 Webmin 用户登录 unix_def=只允许 Webmin 用户登录
unix_sel=允许下面列出的Unix用户登录。。
unix_mode=允许
unix_mall=全部用户
unix_group=群组成员..
unix_user=允许任何 Unix 用户以右列用户的权限登录: unix_user=允许任何 Unix 用户以右列用户的权限登录:
unix_who=用户或群组
unix_to=作为 Webmin 用户
unix_ecannot=您没有配置 Unix 用户验证的权限 unix_ecannot=您没有配置 Unix 用户验证的权限
unix_epam=没有安装 <tt>Authen::PAM</tt> Perl 或者该系统没有正常运行Unix 验证不可用。 unix_epam=没有安装 <tt>Authen::PAM</tt> Perl 或者该系统没有正常运行Unix 验证不可用。
unix_all=允许任何 Unix 用户
unix_allow=仅允许列出的 Unix 用户
unix_deny=拒绝列出的 Unix 用户
unix_none=未输入用户
unix_euser='$1' 不是有效的用户名
unix_egroup='$1' 不是有效的群组名
unix_shells=拒绝 Unix 不在文件中的shells用户
unix_eshells=缺少或不存在shell文件
unix_restrict2=附加限制
unix_ewhogroup=缺少允许的群组 $1
unix_ewhouser=缺少允许的用户 $1
unix_enone=没有允许输入的Unix用户或组
unix_same=&lt;同一用户或群组&gt;
unix_sudo=允许可以通过 <tt>sudo</tt> 运行所有命令的用户以 <tt>root</tt> 身份登录
unix_pamany=将仅通过PAM验证的登录视为 $1
unix_esudo=命令 $1 未安装
unix_esudomod=未安装身份验证所需的Perl模块 $1 需要 <tt>sudo</tt>
unix_header=Unix 用户认证设置
unix_utable=允许 Unix 用户
sessions_title=当前登陆会话
sessions_id=会话 ID
sessions_user=Webmin 用户
sessions_login=上次活动时间
sessions_host=IP 地址
sessions_lview=查看日志..
sessions_actions=动作..
sessions_all=全部会话..
sessions_logouts=显示已注销的会话..
sessions_state=状态
sessions_action=动作
sessions_this=登录
sessions_in=登入
sessions_out=退出
sessions_kill=断开..
logins_title=历史 Webmin 登陆
hide_title=隐藏未使用的模块
hide_desc=以下模块将从 $1 的模块访问列表中删除,因为您的系统上没有安装相应的服务器 ..
hide_ok=立即隐藏模块
hide_none=无需隐藏 - $1 无权访问您的系统上未安装相应服务器的任何模块.
hide_desc2=请注意,如果安装了相应的服务器,这些模块将不会自动重新出现。您需要使用此模块手动授予访问权限.
hide_clone=(克隆 $1)
switch_euser=不允许您切换到此用户
switch_eold=找不到现有会话!
rbac_title=设置 RBAC
rbac_desc=Webmin的 RBAC 集成提供了一种从RBAC基于角色的访问控制数据库而不是Webmin自己的配置文件中确定用户模块和ACL权限的方法。启用RBAC支持后任何使用 <b>RBAC 控制所有模块并选择 ACLs</b> 选项的用户其能力将由RBAC决定而不是由Webmin自己的访问控制设置决定.
rbac_esolaris=RBAC 目前仅在Solaris上受支持 因此不能在 $1 系统上使用.
rbac_eperl=RBAC集成所需的Perl模块$1 尚未安装. <a href='$2'>单击此处</a> 立即安装.
rbac_ecpan=安装 RBAC 所需要的 Webmin的 Perl 的模块 $1 页面您无权访问 .
rbac_ok=RBAC 集成在此系统上可用, 可以在编辑 Webmin 用户页面上按用户启用。.
udeletes_err=删除用户失败
udeletes_jerr=无法将用户添加到组
udeletes_enone=未选择
udeletes_title=删除用户
udeletes_rusure=您确定要删除所选的 $1 用户吗?他们的所有访问控制设置和用户详细信息都将丢失。.
udeletes_users=已选用户s: $1
udeletes_ok=删除用户
udeletes_ereadonly=所选用户之一被标记为不可编辑
gdeletes_err=删除群组失败
gdeletes_title=删除群组
gdeletes_rusure=您确定要删除所选的 $1 群组及其包含的 $2 用户吗?他们的所有访问控制设置和用户详细信息都将丢失。
gdeletes_users=已选群组: $1
gdeletes_ok=删除群组
pass_title=密码限制
pass_ecannot=不允许您编辑密码限制
pass_header=Webmin 密码强制选项
pass_minsize=最小密码长度
pass_nominsize=不限最小值
pass_regexps=正则表达式密码必须匹配
pass_regdesc=正则表达式的人类可读描述
pass_maxdays=须更改密码的前几天
pass_lockdays=未更改密码锁定帐户前的天数
pass_nomaxdays=无需更改
pass_nolockdays=帐户从未锁定
pass_nouser=不允许包含用户名的密码?
pass_nodict=不允许字典单词密码?
pass_oldblock=要拒绝的旧密码数
pass_nooldblock=密码重复使用没有限制
pass_days=天
pass_pass=密码
pass_err=未能保存密码限制
pass_eminsize=缺少或非数字最小密码长度
pass_emaxdays=更改前缺少或非数字天数
pass_elockdays=帐户锁定前缺少或非数字天数
pass_eoldblock=要拒绝的旧密码数量缺失或非数字
cpass_minsize=长度必须至少为 $1 个字母
cpass_notre=匹配不允许的模式
cpass_re=与所需模式不匹配
cpass_name=包含用户名
cpass_dict=词典单词
cpass_spellcmd=N未安装检查词典单词所需的 $1 或 $2 命令
cpass_old=旧密码不能重复使用
sql_title=用户和群组数据库
sql_ecannot=不允许配置用户和群组数据库
sql_header=用户和群组的数据库后端选项
sql_host=主机名
sql_user=用户名
sql_pass=密码
sql_db=数据库名称
sql_ssl=加密连接
sql_ssl0=None
sql_ssl1=SSL
sql_ssl2=TLS
sql_userclass=用户的对象类
sql_groupclass=群组的对象类
sql_euserclass=用户缺少对象类或对象类无效
sql_egroupclass=群组缺少对象类或对象类无效
sql_none=仅使用本地文件存储用户和群组
sql_mysql=使用 MySQL 数据库
sql_postgresql=使用 PostgreSQL 数据库
sql_ldap=使用 LDAP 服务
sql_prefix=在DN下创建
sql_addto0=将新用户添加到上面选择的数据库
sql_addto1=将新用户添加到本地文件
sql_nocache0=缓存与数据库的连接
sql_nocache1=为每次查找打开一个新连接
sql_emod=缺少必需的Perl模块 <tt>$1</tt>
sql_etable=查询所需表失败 $1 : $2
sql_eldapdn=基本 LDAP DN $1 没找到
sql_eclass=LDAP 对象类 $1 do在服务器的架构中不存在
sql_err=未能保存用户和组数据库设置
sql_ehost=缺少或无法解析主机名
sql_euser=用户名缺失或无效(不允许有空格)
sql_epass=密码无效(不允许有空格)
sql_edb=无效的数据库名称(不允许有空格)
sql_eprefix=缺少基DN或基DN无效不允许有空格
sql_eprefix2=无效的查找基于 DN - 应该类似这种 <tt>dc=mydomain,dc=com</tt>
sql_title2=创建缺失的表
sql_tableerr=用户和组数据库设置有效但缺少Webmin所需的一些表 : $1
sql_tableerr2=单击 <b>创建表</b> 按钮自动创建表,或手动运行下面的 SQL.
sql_make=创建表
sql_title3=创建缺失的 DN
sql_dnerr=用户和组数据库设置有效但缺少Webmin所需的LDAP DN : $1
sql_dnerr2=单击 <b>创建 DN</b> 按钮使其自动创建或手动将其添加到LDAP服务器.
sql_makedn=创建 DN
sql_schema=下载 LDAP 架构
sql_timeout_def=使用默认连接超时60秒
sql_timeout_for=关闭缓存后的连接
sql_timeout_secs=秒
sql_etimeout=缓存连接超时必须是数字
make_title=创建用户和群组表
make_err=创建用户和群组表失败
make_exec=正在执行 SQL $1 ..
make_failed=.. 创建失败 : $1
make_done=.. 完成
make_still=即使在创建表后也发现了一些问题 : $1
makedn_title=创建 LDAP DN
makedn_eoc=找不到结构对象类!
makedn_exec=正在创建父 DN $1 ..
makedn_failed=.. 创建失败 : $1
makedn_done=.. 完成
makedn_still=即使在创建DN后也发现了一些问题 : $1
schema_title=下载 LDAP 架构
schema_desc=在Webmin可以使用LDAP服务器存储用户和组之前必须将其配置为使用以下模式。这通常可以通过将模式定义保存在路径 <tt>/etc/ldap/schema</tt> 或 <tt>/etc/openldap/schema</tt> 中作为 <tt>webmin.schema</tt>, 来实现,然后配置服务器加载该模式文件
schema_download=下载架构文件 : <a href=$1>$1</a>
twofactor_err=设置双因素身份验证失败
twofactor_euser=找不到您的Webmin用户
twofactor_title=双因素身份验证
twofactor_disable=禁用双因素身份验证
twofactor_already=Y您的Webmin登录已启用双因素身份验证提供程序为 $1 帐户ID为 $2.
twofactor_already2=Webmin 登陆 $3 已启用双因素身份验证,提供程序为 $1 帐户ID为 $2.
twofactor_desc=此页面允许您使用 <a href='$2' target=_blank>$1</a>Webmin登录启用双因素身份验证。一旦激活登录Webmin时将需要额外的身份验证令牌。
twofactor_desc2=此页面允许您使用<a href='$2' target=_blank>$1</a>为Webmin登录 $3 启用双因素身份验证。 一旦激活登录Webmin时将需要额外的身份验证令牌
twofactor_enable=注册双因素身份验证
twofactor_header=双因素身份验证注册详细信息
twofactor_enrolling=正在向提供商注册双因素身份验证 $1 ..
twofactor_failed=.. 注册失败 : $1
twofactor_done=.. 完成. 您与此提供商的ID为 <tt>$1</tt>.
twofactor_setup=此系统上尚未启用双因素身份验证,但可以使用 <a href='$1'>Webmin 配置</a> 模块启用.
twofactor_ebutton=未单击按钮!

View File

@@ -1,320 +1,5 @@
index_screate=创建一个新的安全用户。 edit_egone=选定的用户不再存在!
index_twofactor=两要素认证
index_sessions=查看登录会话
index_rbac=设置RBAC
index_delete=删除所选
index_joingroup=添加到群组:
index_eulist=无法列出用户: $1
index_eglist=无法列出组: $1
edit_title3=创建安全的Webmin用户 cert_ebrowser=Webmin 不知道如何为您的浏览器颁发客户端证书 ($1)
edit_readonly=该Webmin用户不能编辑因为它是由 $1 模块管理的。 <a href='$2'>单击此处</a>以绕过此警告并仍然编辑用户-但请注意,任何手动更改都可能被覆盖!
edit_cloneof=克隆Webmin用户
edit_real=真正的名字
edit_extauth=外部认证程序
edit_passlocked= $1 天未更改密码-帐户已锁定!
edit_passmax= $1 天未更改密码-下次登录时必须更改
edit_passold=密码最后一次更改是 $1 天前
edit_passtoday=密码更改不到一天前
edit_twofactor=两因素认证类型
edit_twofactorprov=使用提供方 $1 和ID $2
edit_twofactorcancel=删除两因素身份验证要求
edit_twofactornone=尚未设定
edit_twofactoradd=为用户启用两因素
edit_locale=语言环境
edit_logout=不活动注销时间
edit_mins=分钟
edit_chars=字母
edit_minsize=最小密码长度
edit_nochange=强制更改密码天数?
edit_egone=所选用户不再存在!
edit_overlay=个人主题叠加
edit_overlayglobal=无-使用主题默认值
edit_selall=全选
edit_invert=反转选择
edit_hide=隐藏未使用
edit_switch=切换到用户
edit_return=Webmin用户
edit_return2=Webmin组
edit_rbacdeny=RBAC访问模式
edit_rbacdeny0=RBAC仅控制选定的模块ACL
edit_rbacdeny1=RBAC控制所有模块和ACL
edit_global=所有模块的权限
edit_templock=暂时锁定
edit_temppass=下次登录时强制更改
edit_days=星期几
edit_alldays=每天
edit_seldays=仅选定的日期..
edit_hours=一天中的允许时间
edit_allhours=任何时候
edit_selhours=从 $1:$2 到 $3:$4
edit_ui=用户界面选项
edit_security=安全和限制选项
edit_mods=可用的Webmin模块
edit_modsg=可用的Webmin模块除了来自组的模块
edit_proto=存储类型
edit_proto_mysql=MySQL数据库
edit_proto_postgresql=PostgreSQL数据库
edit_proto_ldap=LDAP服务器
edit_proto_=本地文件
edit_safe=权限等级
edit_safe0=无限制
edit_safe1=仅安全模块
edit_unsafe=重置为无限制
save_eunixname=用户名“$1”不是Unix用户因此不能在安全模式下使用 gsave_edesc=无效描述 - 不允许使用 : 字符
save_enamewebmin=用户名“ webmin”保留供内部使用
save_eoverlay=除非选择了主题,否则无法选择主题覆盖
save_epass=密码无效: $1
save_elogouttime=缺少或非数字的非活动注销时间
save_eminsize=缺少或非数字的最小密码长度
save_edays=没有天数可供选择
save_ehours=缺少时间或无效时间
save_ehours2=允许的开始时间必须在结束之前
save_etemp=除非启用了<a href='$1'>提示用户输入新密码</a>的选项,否则不能使用在下次登录时强制更改密码的选项。
delete_eanonuser=该用户正用于匿名模块访问
cert_ebrowser=Webmin不知道如何为浏览器颁发客户端证书 $1
cert_done= $1 的证书已成功生成。
cert_pickup=<a href='$1'>单击此处获取证书并将其安装在浏览器中</a>
cert_install=将证书安装到浏览器中
cert_etempdir=无效的证书文件
acl_reset=重置为完全访问权限
acl_rbac=从RBAC获得访问控制设置
acl_rbacyes=是(覆盖下面的设置)
acl_uthis=该用户
acl_locale=可以改locale吗
acl_sessions=可以查看和取消登录会话吗?
acl_cats=可以更改分类吗?
acl_theme=可以改变个人主题吗?
acl_ips=可以更改IP访问控制吗
acl_switch=可以切换到其他用户吗?
acl_times=可以更改允许的登录时间吗?
acl_pass=可以更改密码限制吗?
acl_sql=可以配置用户和组数据库吗?
log_reset=重置 $2 中 $1 的访问权限
log_switch=切换到Webmin用户 $1
log_delete_users=删除了 $1 Webmin用户
log_delete_groups=删除的 $1 Webmin组
log_joingroup=添加了 $1 Webmin用户以将 $2 分组
log_pass=更改密码限制
log_unix=更改了UNIX用户身份验证
log_sync=更改了Unix用户同步
log_sql=更改的用户和组数据库
log_twofactor=使用两因素提供程序 $2 的已注册用户 $1
log_onefactor=取消注册用户 $1 进行两步验证
gedit_members=会员用户和组
gedit_desc=团体简介
gedit_egone=选定的组不再存在!
gdelete_esub=具有子组的组不能删除
gsave_enamewebmin=组名“ webmin”保留供内部使用
gsave_edesc=说明无效-不允许使用:字符
convert_sync2=将来与Unix用户同步密码吗
convert_invalid= $1 不是有效的Webmin用户名
convert_user=Unix用户
convert_action=所采取的行动
convert_done= $1 用户已转换, $2 无效, $3 已经存在, $4 已排除。
convert_users=用户转换
sync_when=何时同步
sync_modify=重命名Unix用户时重命名匹配的Webmin用户。
sync_unix=为新用户设置用于Unix身份验证的密码。
unix_err=保存Unix认证失败
unix_sel=允许下面列出的Unix用户登录..
unix_mode=允许
unix_mall=所有用户
unix_group=小组成员
unix_who=用户或组
unix_to=作为Webmin用户
unix_all=允许所有Unix用户
unix_allow=只允许列出的Unix用户
unix_deny=拒绝列出的Unix用户
unix_none=没有用户输入
unix_euser=“$1”不是有效的用户名
unix_egroup='$1'不是有效的群组名称
unix_shells=拒绝外壳不在文件中的Unix用户
unix_eshells=缺少或不存在的shell文件
unix_restrict2=其他限制
unix_ewhogroup=缺少行 $1 的组
unix_ewhouser=缺少用户允许在行 $1
unix_enone=没有Unix用户或组允许输入
unix_same=&lt;相同的用户或组&gt;
unix_sudo=允许可以通过<tt>sudo</tt>运行所有命令的用户以<tt>root</tt>身份登录
unix_pamany=将仅通过PAM验证的登录视为 $1
unix_esudo=未安装 $1 命令
unix_esudomod=未安装<tt>sudo</tt>身份验证所需的Perl模块 $1
unix_header=Unix用户认证设置
unix_utable=允许的Unix用户
sessions_title=当前登录会话
sessions_id=会话ID
sessions_user=Webmin用户
sessions_login=上次活动时间:
sessions_host=IP地址
sessions_lview=查看日志
sessions_actions=动作..
sessions_all=所有会议..
sessions_logouts=同时显示注销的会话。
sessions_state=州
sessions_action=行动
sessions_this=此登录名
sessions_in=登录
sessions_out=登出
sessions_kill=断开..
logins_title=最近的Webmin登录
hide_title=隐藏未使用的模块
hide_desc=以下模块将从 $1 的模块访问列表中删除,因为它们的相应服务器未安装在您的系统上。
hide_ok=立即隐藏模块
hide_none=没有什么可隐藏的- $1 不能访问其系统上未安装相应服务器的任何模块。
hide_desc2=请注意,如果安装了相应的服务器,这些模块将不会自动重新出现。您将需要使用此模块手动授予访问权限。
hide_clone=(克隆 $1
switch_euser=您无权切换到该用户
switch_eold=找不到现有的会话!
rbac_title=设置RBAC
rbac_desc=Webmin的RBAC集成提供了一种从RBAC基于角色的访问控制数据库而不是Webmin自己的配置文件中确定用户模块和ACL权限的方法。启用RBAC支持后选择<b>RBAC控制所有模块和ACL</b>选项的任何用户其功能将由RBAC而非Webmin自己的访问控制设置决定。
rbac_esolaris=RBAC目前仅在Solaris上受支持因此不能在此 $1 系统上使用。
rbac_eperl=未安装RBAC集成所需的Perl模块 $1 。 <a href='$2'>单击此处</a>立即安装。
rbac_ecpan=您无权访问Webmin的Perl模块页面来安装必要的 $1 模块以进行RBAC集成。
rbac_ok=RBAC集成在此系统上可用并且可以在“编辑Webmin用户”页面上按用户启用。
udeletes_err=删除用户失败
udeletes_jerr=无法将用户添加到组
udeletes_enone=未选择
udeletes_title=删除用户
udeletes_rusure=您确定要删除 $1 所选用户吗?他们的所有访问控制设置和用户详细信息都将丢失。
udeletes_users=所选用户: $1
udeletes_ok=删除用户
udeletes_ereadonly=所选用户之一被标记为不可编辑
gdeletes_err=删除群组失败
gdeletes_title=删除群组
gdeletes_rusure=您确定要删除 $1 选定的组以及它们包含的 $2 用户吗?他们的所有访问控制设置和用户详细信息都将丢失。
gdeletes_users=选定的组: $1
gdeletes_ok=删除群组
pass_title=密码限制
pass_ecannot=您无权编辑密码限制
pass_header=Webmin密码实施选项
pass_minsize=最小密码长度
pass_nominsize=没有最低要求
pass_regexps=正则表达式密码必须匹配
pass_regdesc=易于理解的正则表达式描述
pass_maxdays=必须更改密码的前几天
pass_lockdays=未更改密码锁定帐户的前几天
pass_nomaxdays=无需更改
pass_nolockdays=账户从未被锁定
pass_nouser=禁止包含用户名的密码?
pass_nodict=禁止使用字典单词密码?
pass_oldblock=拒绝的旧密码数量
pass_nooldblock=密码重用没有限制
pass_days=天
pass_pass=密码
pass_err=保存密码限制失败
pass_eminsize=缺少或非数字的最小密码长度
pass_emaxdays=更改前缺少天数或非数字天数
pass_elockdays=帐户锁定前缺少天数或非数字天数
pass_eoldblock=遗失或遗漏的旧密码数量非数字
cpass_minsize=必须至少为 $1 个字母
cpass_notre=匹配不允许的模式
cpass_re=与要求的模式不符
cpass_name=包含用户名
cpass_dict=是字典字
cpass_spellcmd=没有安装检查字典单词所需的 $1 或 $2 命令
cpass_old=旧密码无法重复使用
sql_title=用户和组数据库
sql_ecannot=您无权配置用户和组数据库
sql_header=用户和组的数据库后端选项
sql_host=主机名
sql_user=用户名
sql_pass=密码
sql_db=数据库名称
sql_ssl=连接加密
sql_ssl0=没有
sql_ssl1=SSL协议
sql_ssl2=TLS
sql_userclass=用户的对象类
sql_groupclass=组的对象类
sql_euserclass=用户缺少或无效的对象类
sql_egroupclass=组的对象类丢失或无效
sql_none=仅使用本地文件存储用户和组
sql_mysql=使用MySQL数据库
sql_postgresql=使用PostgreSQL数据库
sql_ldap=使用LDAP服务器
sql_prefix=在DN下创建
sql_addto0=将新用户添加到上面选择的数据库中
sql_addto1=将新用户添加到本地文件
sql_nocache0=缓存到数据库的连接
sql_nocache1=为每次查找打开一个新连接
sql_emod=缺少必需的Perl模块<tt>$1</tt>
sql_etable=无法查询必需的表 $1:$2
sql_eldapdn=找不到基本LDAP DN $1
sql_eclass=LDAP对象类 $1 在服务器的模式中不存在
sql_err=无法保存用户和组数据库设置
sql_ehost=主机名丢失或无法解析
sql_euser=用户名缺失或无效(不允许使用空格)
sql_epass=无效的密码(不允许使用空格)
sql_edb=无效的数据库名称(不允许使用空格)
sql_eprefix=基本DN丢失或无效不允许使用空格
sql_eprefix2=无效的基本DN-应该类似于<tt>dc = mydomaindc = com</tt>
sql_title2=创建缺失表
sql_tableerr=用户和组数据库设置有效但是Webmin所需的某些表丢失了 $1
sql_tableerr2=点击下面的<b>创建表</b>按钮以自动创建它们或手动运行下面的SQL。
sql_make=建立表格
sql_title3=创建丢失的DN
sql_dnerr=用户和组数据库设置有效但是Webmin所需的LDAP DN丢失 $1
sql_dnerr2=单击下面的<b>创建DN</b>按钮以使其自动创建或手动将其添加到LDAP服务器。
sql_makedn=创建DN
sql_schema=下载LDAP模式
sql_timeout_def=使用默认的连接超时60秒
sql_timeout_for=之后关闭缓存的连接
sql_timeout_secs=秒
sql_etimeout=缓存的连接超时必须为数字
make_title=创建用户和组表
make_err=创建用户表和组表失败
make_exec=执行SQL $1..
make_failed=..创建失败: $1
make_done=..完成
make_still=即使在创建表后也发现了一些问题: $1
makedn_title=创建LDAP DN
makedn_eoc=找不到结构对象类!
makedn_exec=创建父DN $1..
makedn_failed=..创建失败: $1
makedn_done=..完成
makedn_still=即使在创建DN之后也发现了一些问题 $1
schema_title=下载LDAP模式
schema_desc=在Webmin可以使用LDAP服务器存储用户和组之前必须将其配置为使用以下架构。通常可以通过将架构定义保存在<tt>/etc/ldap/schema</tt>或<tt>/etc/openldap/schema</tt>中作为<tt>webmin.schema</tt>来完成,然后配置服务器以加载该架构文件。
schema_download=下载架构文件:<a href=$1>$1</a>
twofactor_err=未能设置两因素身份验证
twofactor_euser=找不到您的Webmin用户
twofactor_title=两要素认证
twofactor_disable=禁用两因素身份验证
twofactor_already=您的Webmin登录名已使用提供程序 $1 和帐户ID $2 启用了双重身份验证。
twofactor_already2=Webmin登录名 $3 已通过提供程序 $1 和帐户ID $2 启用了双重身份验证。
twofactor_desc=该页面允许您使用<a href='$2' target=_blank>$1</a>为Webmin登录启用两步验证。一旦激活登录Webmin时将需要一个附加的身份验证令牌。
twofactor_desc2=该页面允许您使用<a href='$2' target=_blank>$1</a>。一旦激活登录Webmin时将需要一个附加的身份验证令牌。
twofactor_enable=报名参加两因素认证
twofactor_header=两因素身份验证注册详细信息
twofactor_enrolling=使用提供方 $1 进行两因素身份验证的注册。
twofactor_failed=..注册失败: $1
twofactor_done=..完成。您在此提供程序处的ID是<tt>$1</tt>。
twofactor_setup=此系统上尚未启用两因素身份验证,但可以使用<a href='$1'>Webmin Configuration</a>模块将其打开。
twofactor_ebutton=没有点击按钮!

View File

@@ -1,66 +1,66 @@
index_title=ADSL Client index_title=ADSL-Client
index_eadsl=Der RP-PPPoE-Befehl $1 wurde auf Ihrem System nicht gefunden oder ist nicht gültig. Entweder ist er nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch. index_eadsl=Der RP-PPPoE-Befehl $1 wurde auf Ihrem System nicht gefunden oder ist ungültig. Möglicherweise ist er nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch.
index_econfig=Die RP-PPPoE ADSL-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Entweder ist sie nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch. index_econfig=Die RP-PPPoE-ADSL-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Möglicherweise ist sie nicht installiert, oder Ihre <a href='$2'>Modulkonfiguration</a> ist falsch.
index_emodem=Die aktuelle Konfigurationsdatei wurde für ein Modem unter RedHat-Linux geschrieben, und nicht für eine ADSL-Verbindung. Benutzen Sie die <a href='$2'>Modulkonfiguration</a>, um entweder eine der <tt>ifcfg-ppp*</tt>-Dateien unter $1 zu nutzen, oder ein neues Interface anzugeben, welches von Webmin eingerichtet werden soll. index_emodem=Die aktuelle Konfigurationsdatei ist für ein Modem auf Redhat Linux, nicht für eine ADSL-Verbindung. Verwenden Sie die Seite <a href='$2'>Modulkonfiguration</a>, um eine der anderen <tt>ifcfg-ppp*</tt>-Dateien in $1 anzugeben, oder eine Datei, die noch nicht existiert, damit das Modul sie für Sie erstellen kann.
index_stop=ADSL beenden index_stop=ADSL-Verbindung beenden
index_stopdesc=Ihre ADSL-Verbindung hat derzeit folgende IP-Adresse: $1 - Klicken Sie hier, um ADSL mit dem Befehl $2 zu beenden. index_stopdesc=Ihre ADSL-Verbindung ist derzeit mit der IP-Adresse $1 aktiv. Klicken Sie auf diese Schaltfläche, um die Verbindung mit dem Befehl $2 zu beenden.
index_start=ADSL starten index_start=ADSL-Verbindung starten
index_startdesc=Ihre ADSL-Verbindung ist momentan nicht aktiv. Klicken Sie hier, um ADSL mit dem Befehl $1 zu starten. index_startdesc=Ihre ADSL-Verbindung ist derzeit inaktiv. Klicken Sie auf diese Schaltfläche, um die Verbindung mit dem Befehl $1 zu starten.
index_boot=ADSL-Verbindung beim Booten hochfahren index_boot=Beim Systemstart aktivieren
index_bootdesc=Ändern Sie diese Option, wenn Sie Ihre ADSL-Verbindung schon beim Booten verfügbar haben wollen, oder nicht. index_bootdesc=Ändern Sie diese Option, um zu steuern, ob Ihre ADSL-Verbindung beim Systemstart aufgebaut wird oder nicht.
index_return=Modulindex index_return=Modulindex
index_version=RP-PPPoE Version $1 index_version=RP-PPPoE-Version $1
index_esetup=Die RedHat-ADSL-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Webmin kann dies jedoch mit Basisfunktionen für Sie einrichten, wenn Sie den unten stehenden Button anklicken. index_esetup=Die Redhat-ADSL-Konfigurationsdatei $1 existiert nicht auf Ihrem System. Dieses Modul kann sie jedoch mit Standardwerten einrichten, indem Sie auf die Schaltfläche unten klicken.
index_setup=Setup-Konfigurationsdatei index_setup=Konfigurationsdatei einrichten
index_cancel=Verbindung beenden index_cancel=Verbindung abbrechen
index_canceldesc=Es wird momentan eine ADSL-Verbindung hergestellt. Klicken Sie auf diesen Button, um diesen Vorgang mit dem Befehl $1 abzubrechen. index_canceldesc=Der ADSL-Client versucht derzeit, eine Verbindung herzustellen. Klicken Sie auf diese Schaltfläche, um den Versuch mit dem Befehl $1 abzubrechen.
index_cdemand=Auf Verlangen abbrechen index_cdemand=On-Demand-Verbindung abbrechen
index_cdemanddesc=Der ADSL-Client wartet derzeit darauf, Benutzer auf Verlangen die Verbindung zu beenden. Klicken Sie auf diesen Button, wenn Sie dies mit dem Befehl $1 ausführen möchten. index_cdemanddesc=Der ADSL-Client wartet derzeit auf eine Anforderung für eine On-Demand-Verbindung. Klicken Sie auf diese Schaltfläche, um ihn mit dem Befehl $1 zu stoppen.
index_header=ADSL-Client - Konfigurierbare Optionen index_header=ADSL-Client-Konfigurationsoptionen
index_desc=Diese Einstellungen werden erst bei der nächsten Anmeldung des ADSL-Clients aktiv. Wenn Sie diese ändern, dann müssen Sie die Verbindung beenden und neu aufbauen, damit die Änderungen wirksam werden. index_desc=Die folgenden Einstellungen gelten für jede neue ADSL-Verbindung, die von Ihrem System hergestellt wird. Wenn Sie sie ändern, muss die Verbindung beendet und neu gestartet werden, damit die Änderungen wirksam werden.
index_eth=Netzwerkinterface index_eth=Ethernet-Schnittstelle
index_other=Andere ... index_other=Andere..
index_demand=Verbindung auf Wunsch? index_demand=Bei Bedarf verbinden?
index_timeout=Ja, mit Timeout index_timeout=Ja, mit Timeout
index_secs=Sekunden index_secs=Sekunden
index_user=Anmelden als Benutzer index_user=Anmelden als Benutzer
index_sec=Anmelden mit Passwort index_sec=Anmelden mit Passwort
index_dns=DNS-Konfiguration des ISP übernehmen? index_dns=DNS-Konfiguration vom ISP abrufen?
index_save=Konfiguration speichern index_save=Konfiguration speichern
index_mss=Paketgröße einschränken? index_mss=Paketgröße begrenzen?
index_psize=Ja, auf index_psize=Ja, auf
index_bytes=Bytes index_bytes=Bytes
index_fw=Firewall bei Verbindung hochfahren index_fw=Firewall bei Verbindung aktivieren
index_fw_none=Keine index_fw_none=Keine
index_fw_standalone=Für diesen Rechner index_fw_standalone=Für Einzelrechner
index_fw_masquerade=Für ein NAT-Gateway index_fw_masquerade=Für NAT-Gateway
index_connect=Konfigurierbare Dauer der Verbindung index_connect=Verbindungsversuch für
index_forever=Immer index_forever=Unbegrenzt
start_err=Konnte ADSL-Verbindung nicht starten start_err=Fehler beim Starten der ADSL-Verbindung
start_title=Starte ADSL-Verbindung start_title=ADSL starten
start_ip=Eine ADSL-Verbindung wurde eingerichtet. Derzeitige IP-Adresse: $1. start_ip=Eine ADSL-Verbindung wurde mit der IP-Adresse $1 hergestellt.
start_demand=Da Sie "Verbindung auf Wunsch" angewählt haben, wird Ihre ADSL-Verbindung nur dann aktiviert, wenn diese benötigt wird. start_demand=Da der Modus „Bei Bedarf verbinden“ aktiviert ist, wird Ihre ADSL-Verbindung nur bei Bedarf gestartet.
start_bg=Die ADSL-Verbindung konnte nicht innerhalb von 20 Sekunden aktiviert werden. Der ADSL-Client wird es solange versuchen, bis es klappt. start_bg=Die ADSL-Verbindung wurde innerhalb von 20 Sekunden nicht gestartet. Der ADSL-Client wird weiterhin im Hintergrund versuchen, die Verbindung herzustellen, bis sie erfolgreich ist.
save_err=Konnte ADSL-Verbindung nicht speichern save_err=Fehler beim Speichern der ADSL-Konfiguration
save_eeth=Fehlende oder ungültige aussehende Ethernetschnittstelle save_eeth=Fehlende oder ungültige Ethernet-Schnittstelle
save_etimeout=Fehlendes oder ungültige "Verbindung auf Wunsch"-Zeitangabe (timeout) save_etimeout=Fehlender oder ungültiger Timeout für On-Demand-Verbindung
save_euser=Fehlender oder ungültiger Benutzername save_euser=Fehlender oder ungültiger Benutzername
save_econnect=Fehlendes oder ungültiges "timeout" save_econnect=Fehlender oder ungültiger Timeout für Verbindungsaufbau
save_emss=Fehlende oder ungültige Maximum-Paketgröße save_emss=Fehlende oder ungültige maximale Paketgröße
save_title=Konfiguration speichern save_title=Konfiguration speichern
save_desc=Ihre ADSL-Client-Konfiguration wurde erfolgreich gespeichert, wird jedoch erst bei der nächsten Anmeldung/Anwahl aktiv. save_desc=Ihre ADSL-Client-Konfiguration wurde erfolgreich gespeichert, wird jedoch erst verwendet, wenn Sie die Verbindung erneut herstellen.
stop_err=Konnte ADSL-Verbindung nicht beenden stop_err=Fehler beim Beenden der ADSL-Verbindung
stop_title=Beende ADSL-Verbindung stop_title=ADSL beenden
stop_ok=Ihre ADSL-Verbindung wurde erfolgreich beendet. stop_ok=Ihre ADSL-Verbindung wurde erfolgreich beendet.
stop_failed=Ihre ADSL-Verbindung ist aus unerklärlichen Gründen immer noch aktiv! stop_failed=Ihre ADSL-Verbindung ist aus irgendeinem Grund noch aktiv!
log_save=Client-Konfiguration gespeichert log_save=Client-Konfiguration gespeichert
log_stop=ADSL-Verbindung beendet log_stop=ADSL-Verbindung beendet
log_start=ADSL-Verbindung gestartet log_start=ADSL-Verbindung gestartet
log_bootup=ADSL-Verbindung zur Bootzeit aktiviert log_bootup=ADSL beim Systemstart aktiviert
log_bootdown=ADSL-Verbindung zur Bootzeit deaktiviert log_bootdown=ADSL beim Systemstart deaktiviert
log_setup=Standard-Konfiguration angelegt log_setup=Standardkonfiguration eingerichtet

View File

@@ -14,6 +14,8 @@ index_esetup=在您的系统上不存在 Redhat ADSL 配置文件 $1不过
index_setup=设定配置文件 index_setup=设定配置文件
index_cancel=取消连接 index_cancel=取消连接
index_canceldesc=ADSL客户端目前正在尝试连接按此按钮可以使用 $1 命令来取消。 index_canceldesc=ADSL客户端目前正在尝试连接按此按钮可以使用 $1 命令来取消。
index_cdemand=按需取消
index_cdemanddesc=ADSL客户端当前正在等待按需连接请求。单击此按钮停止连接请求 $1.
index_header=ADSL客户端配置选项 index_header=ADSL客户端配置选项
index_desc=下面的设定是用于在您系统上启动所有新的ADSL连接如果您更改这里连接必须先断开然后再重新连接修改内容才会生效。 index_desc=下面的设定是用于在您系统上启动所有新的ADSL连接如果您更改这里连接必须先断开然后再重新连接修改内容才会生效。
@@ -32,7 +34,7 @@ index_bytes=字节
index_fw=连接时起用防火墙 index_fw=连接时起用防火墙
index_fw_none=无 index_fw_none=无
index_fw_standalone=用于单一主机 index_fw_standalone=用于单一主机
index_fw_masquerade=用于NAT gateway index_fw_masquerade=用于NAT 网关
index_connect=尝试连接时间 index_connect=尝试连接时间
index_forever=永久连接 index_forever=永久连接
@@ -62,3 +64,5 @@ log_start=启动ADSL
log_bootup=开机时自动启动ADSL log_bootup=开机时自动启动ADSL
log_bootdown=关闭开机时自动启动ADSL log_bootdown=关闭开机时自动启动ADSL
log_setup=设置为默认配置 log_setup=设置为默认配置
__norefs=1

View File

@@ -1,2 +0,0 @@
index_cdemand=按需取消
index_cdemanddesc=ADSL客户端当前正在等待按需连接请求。单击此按钮可使用命令 $1停止它。

View File

@@ -1,2 +0,0 @@
---- Changes since 1.550 ----
First version of this module, which allows shell logins without the need to use a separate SSH client or even run an SSH server.

View File

@@ -1,120 +0,0 @@
= [http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm Ajaxterm] =
Ajaxterm is a web based terminal. It was totally inspired and works almost
exactly like http://anyterm.org/ except it's much easier to install (see
comparaison with anyterm below).
Ajaxterm written in python (and some AJAX javascript for client side) and depends only on python2.3 or better.[[BR]]
Ajaxterm is '''very simple to install''' on Linux, MacOS X, FreeBSD, Solaris, cygwin and any Unix that runs python2.3.[[BR]]
Ajaxterm was written by Antony Lesuisse (email: al AT udev.org), License Public Domain.
Use the [/qweb/forum/viewforum.php?id=2 Forum], if you have any question or remark.
== News ==
* 2006-10-29: v0.10 allow space in login, cgi launch fix, redhat init
* 2006-07-12: v0.9 change uid, daemon fix (Daniel Fischer)
* 2006-07-04: v0.8 add login support to ssh (Sven Geggus), change max width to 256
* 2006-05-31: v0.7 minor fixes, daemon option
* 2006-05-23: v0.6 Applied debian and gentoo patches, renamed to Ajaxterm, default port 8022
== Download and Install ==
* Release: [/qweb/files/Ajaxterm-0.10.tar.gz Ajaxterm-0.10.tar.gz]
* Browse src: [/qweb/trac/browser/trunk/ajaxterm/ ajaxterm/]
To install Ajaxterm issue the following commands:
{{{
wget http://antony.lesuisse.org/qweb/files/Ajaxterm-0.10.tar.gz
tar zxvf Ajaxterm-0.10.tar.gz
cd Ajaxterm-0.10
./ajaxterm.py
}}}
Then point your browser to this URL : http://localhost:8022/
== Screenshot ==
{{{
#!html
<center><img src="/qweb/trac/attachment/wiki/AjaxTerm/scr.png?format=raw" alt="ajaxterm screenshot" style=""/></center>
}}}
== Documentation and Caveats ==
* Ajaxterm only support latin1, if you use Ubuntu or any LANG==en_US.UTF-8 distribution don't forget to "unset LANG".
* If run as root ajaxterm will run /bin/login, otherwise it will run ssh
localhost. To use an other command use the -c option.
* By default Ajaxterm only listen at 127.0.0.1:8022. For remote access, it is
strongly recommended to use '''https SSL/TLS''', and that is simple to
configure if you use the apache web server using mod_proxy.[[BR]][[BR]]
Using ssl will also speed up ajaxterm (probably because of keepalive).[[BR]][[BR]]
Here is an configuration example:
{{{
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
ServerName localhost
SSLEngine On
SSLCertificateKeyFile ssl/apache.pem
SSLCertificateFile ssl/apache.pem
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /ajaxterm/ http://localhost:8022/
ProxyPassReverse /ajaxterm/ http://localhost:8022/
</VirtualHost>
}}}
* Using GET HTTP request seems to speed up ajaxterm, just click on GET in the
interface, but be warned that your keystrokes might be loggued (by apache or
any proxy). I usually enable it after the login.
* Ajaxterm commandline usage:
{{{
usage: ajaxterm.py [options]
options:
-h, --help show this help message and exit
-pPORT, --port=PORT Set the TCP port (default: 8022)
-cCMD, --command=CMD set the command (default: /bin/login or ssh localhost)
-l, --log log requests to stderr (default: quiet mode)
-d, --daemon run as daemon in the background
-PPIDFILE, --pidfile=PIDFILE
set the pidfile (default: /var/run/ajaxterm.pid)
-iINDEX_FILE, --index=INDEX_FILE
default index file (default: ajaxterm.html)
-uUID, --uid=UID Set the daemon's user id
}}}
* Ajaxterm was first written as a demo for qweb (my web framework), but
actually doesn't use many features of qweb.
* Compared to anyterm:
* There are no partial updates, ajaxterm updates either all the screen or
nothing. That make the code simpler and I also think it's faster. HTTP
replies are always gzencoded. When used in 80x25 mode, almost all of
them are below the 1500 bytes (size of an ethernet frame) and we just
replace the screen with the reply (no javascript string handling).
* Ajaxterm polls the server for updates with an exponentially growing
timeout when the screen hasn't changed. The timeout is also resetted as
soon as a key is pressed. Anyterm blocks on a pending request and use a
parallel connection for keypresses. The anyterm approch is better
when there aren't any keypress.
* Ajaxterm files are released in the Public Domain, (except [http://sarissa.sourceforge.net/doc/ sarissa*] which are LGPL).
== TODO ==
* insert mode ESC [ 4 h
* change size x,y from gui (sending signal)
* vt102 graphic codepage
* use innerHTML or prototype instead of sarissa

View File

@@ -1,35 +0,0 @@
.TH ajaxterm "1" "May 2006" "ajaxterm 0.5" "User commands"
.SH NAME
ajaxterm \- Web based terminal written in python
.SH DESCRITPION
\fBajaxterm\fR is a web based terminal written in python and some AJAX
javascript for client side.
It can use almost any web browser and even works through firewalls.
.SH USAGE
\fBajaxterm.py\fR [options]
.SH OPTIONS
A summary of the options supported by \fBajaxterm\fR is included below.
\fB-h, --help\fR show this help message and exit
\fB-pPORT, --port=PORT\fR Set the TCP port (default: 8022)
\fB-cCMD, --command=CMD\fR set the command (default: /bin/login or ssh localhost)
\fB-l, --log\fR log requests to stderr (default: quiet mode)
.SH AUTHOR
Antony Lesuisse <al@udev.org>
This manual page was written for the Debian system by
Julien Valroff <julien@kirya.net> (but may be used by others).
.SH "REPORTING BUGS"
Report any bugs to the author: Antony Lesuisse <al@udev.org>
.SH COPYRIGHT
Copyright Antony Lesuisse <al@udev.org>
.SH SEE ALSO
- \fBajaxterm\fR wiki page: http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm
.br
- \fBajaxterm\fR forum: http://antony.lesuisse.org/qweb/forum/viewforum.php?id=2

View File

@@ -1,72 +0,0 @@
pre.stat {
margin: 0px;
padding: 4px;
display: block;
font-family: monospace;
white-space: pre;
background-color: black;
border-top: 1px solid black;
color: white;
}
pre.stat span {
padding: 0px;
}
pre.stat .on {
background-color: #080;
font-weight: bold;
color: white;
cursor: pointer;
}
pre.stat .off {
background-color: #888;
font-weight: bold;
color: white;
cursor: pointer;
}
pre.term {
margin: 0px;
padding: 4px;
display: block;
font-family: monospace;
white-space: pre;
background-color: black;
border-top: 1px solid white;
color: #eee;
}
pre.term span.f0 { color: #000; }
pre.term span.f1 { color: #b00; }
pre.term span.f2 { color: #0b0; }
pre.term span.f3 { color: #bb0; }
pre.term span.f4 { color: #00b; }
pre.term span.f5 { color: #b0b; }
pre.term span.f6 { color: #0bb; }
pre.term span.f7 { color: #bbb; }
pre.term span.f8 { color: #666; }
pre.term span.f9 { color: #f00; }
pre.term span.f10 { color: #0f0; }
pre.term span.f11 { color: #ff0; }
pre.term span.f12 { color: #00f; }
pre.term span.f13 { color: #f0f; }
pre.term span.f14 { color: #0ff; }
pre.term span.f15 { color: #fff; }
pre.term span.b0 { background-color: #000; }
pre.term span.b1 { background-color: #b00; }
pre.term span.b2 { background-color: #0b0; }
pre.term span.b3 { background-color: #bb0; }
pre.term span.b4 { background-color: #00b; }
pre.term span.b5 { background-color: #b0b; }
pre.term span.b6 { background-color: #0bb; }
pre.term span.b7 { background-color: #bbb; }
body { background-color: #ffffff; }
#term {
float: left;
margin: 0px;
padding: 4px;
display: block;
font-family: monospace;
white-space: pre;
background-color: black;
border-top: 1px solid white;
color: #eee;
}

View File

@@ -1,19 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Ajaxterm</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="ajaxterm.css"/>
<script type="text/javascript" src="sarissa.js"></script>
<script type="text/javascript" src="sarissa_dhtml.js"></script>
<script type="text/javascript" src="ajaxterm.js"></script>
<script type="text/javascript">
window.onload=function() {
t=ajaxterm.Terminal("term",80,25);
};
</script>
</head>
<body>
<div id="term"></div>
</body>
</html>

View File

@@ -1,285 +0,0 @@
ajaxterm={};
ajaxterm.Terminal_ctor=function(id,width,height) {
var ie=0;
if(window.ActiveXObject)
ie=1;
var sid=""+Math.round(Math.random()*1000000000);
var query0="s="+sid+"&w="+width+"&h="+height;
var query1=query0+"&c=1&k=";
var buf="";
var timeout;
var error_timeout;
var keybuf=[];
var sending=0;
var rmax=1;
var div=document.getElementById(id);
var dstat=document.createElement('pre');
var sled=document.createElement('span');
var opt_get=document.createElement('a');
var opt_color=document.createElement('a');
var opt_paste=document.createElement('a');
var sdebug=document.createElement('span');
var dterm=document.createElement('div');
function debug(s) {
sdebug.innerHTML=s;
}
function error() {
sled.className='off';
debug("Connection lost timeout ts:"+((new Date).getTime()));
}
function opt_add(opt,name) {
opt.className='off';
opt.innerHTML=' '+name+' ';
dstat.appendChild(opt);
dstat.appendChild(document.createTextNode(' '));
}
function do_get(event) {
opt_get.className=(opt_get.className=='off')?'on':'off';
debug('GET '+opt_get.className);
}
function do_color(event) {
var o=opt_color.className=(opt_color.className=='off')?'on':'off';
if(o=='on')
query1=query0+"&c=1&k=";
else
query1=query0+"&k=";
debug('Color '+opt_color.className);
}
function mozilla_clipboard() {
// mozilla sucks
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (err) {
debug('Access denied, <a href="http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard" target="_blank">more info</a>');
return undefined;
}
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if (!clip || !trans) {
return undefined;
}
trans.addDataFlavor("text/unicode");
clip.getData(trans,clip.kGlobalClipboard);
var str=new Object();
var strLength=new Object();
try {
trans.getTransferData("text/unicode",str,strLength);
} catch(err) {
return "";
}
if (str) {
str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
}
if (str) {
return str.data.substring(0,strLength.value / 2);
} else {
return "";
}
}
function do_paste(event) {
var p=undefined;
if (window.clipboardData) {
p=window.clipboardData.getData("Text");
} else if(window.netscape) {
p=mozilla_clipboard();
}
if (p) {
debug('Pasted');
queue(encodeURIComponent(p));
} else {
}
}
function update() {
// debug("ts: "+((new Date).getTime())+" rmax:"+rmax);
if(sending==0) {
sending=1;
sled.className='on';
var r=new XMLHttpRequest();
var send="";
while(keybuf.length>0) {
send+=keybuf.pop();
}
var query=query1+send;
if(opt_get.className=='on') {
r.open("GET","u?"+query,true);
if(ie) {
r.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
}
} else {
r.open("POST","u",true);
}
r.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
r.onreadystatechange = function () {
// debug("xhr:"+((new Date).getTime())+" state:"+r.readyState+" status:"+r.status+" statusText:"+r.statusText);
if (r.readyState==4) {
if(r.status==200) {
window.clearTimeout(error_timeout);
de=r.responseXML.documentElement;
if(de.tagName=="pre") {
if(ie) {
Sarissa.updateContentFromNode(de, dterm);
} else {
Sarissa.updateContentFromNode(de, dterm);
// old=div.firstChild;
// div.replaceChild(de,old);
}
rmax=100;
} else {
rmax*=2;
if(rmax>2000)
rmax=2000;
}
sending=0;
sled.className='off';
timeout=window.setTimeout(update,rmax);
} else {
debug("Connection error status:"+r.status);
}
}
}
error_timeout=window.setTimeout(error,5000);
if(opt_get.className=='on') {
r.send(null);
} else {
r.send(query);
}
}
}
function queue(s) {
keybuf.unshift(s);
if(sending==0) {
window.clearTimeout(timeout);
timeout=window.setTimeout(update,1);
}
}
function keypress(ev) {
if (!ev) var ev=window.event;
// s="kp keyCode="+ev.keyCode+" which="+ev.which+" shiftKey="+ev.shiftKey+" ctrlKey="+ev.ctrlKey+" altKey="+ev.altKey;
// debug(s);
// return false;
// else { if (!ev.ctrlKey || ev.keyCode==17) { return; }
var kc;
var k="";
if (ev.keyCode)
kc=ev.keyCode;
if (ev.which)
kc=ev.which;
if (ev.altKey) {
if (kc>=65 && kc<=90)
kc+=32;
if (kc>=97 && kc<=122) {
k=String.fromCharCode(27)+String.fromCharCode(kc);
}
} else if (ev.ctrlKey) {
if (kc>=65 && kc<=90) k=String.fromCharCode(kc-64); // Ctrl-A..Z
else if (kc>=97 && kc<=122) k=String.fromCharCode(kc-96); // Ctrl-A..Z
else if (kc==54) k=String.fromCharCode(30); // Ctrl-^
else if (kc==109) k=String.fromCharCode(31); // Ctrl-_
else if (kc==219) k=String.fromCharCode(27); // Ctrl-[
else if (kc==220) k=String.fromCharCode(28); // Ctrl-\
else if (kc==221) k=String.fromCharCode(29); // Ctrl-]
else if (kc==219) k=String.fromCharCode(29); // Ctrl-]
else if (kc==219) k=String.fromCharCode(0); // Ctrl-@
} else if (ev.which==0) {
if (kc==9) k=String.fromCharCode(9); // Tab
else if (kc==8) k=String.fromCharCode(127); // Backspace
else if (kc==27) k=String.fromCharCode(27); // Escape
else {
if (kc==33) k="[5~"; // PgUp
else if (kc==34) k="[6~"; // PgDn
else if (kc==35) k="[4~"; // End
else if (kc==36) k="[1~"; // Home
else if (kc==37) k="[D"; // Left
else if (kc==38) k="[A"; // Up
else if (kc==39) k="[C"; // Right
else if (kc==40) k="[B"; // Down
else if (kc==45) k="[2~"; // Ins
else if (kc==46) k="[3~"; // Del
else if (kc==112) k="[[A"; // F1
else if (kc==113) k="[[B"; // F2
else if (kc==114) k="[[C"; // F3
else if (kc==115) k="[[D"; // F4
else if (kc==116) k="[[E"; // F5
else if (kc==117) k="[17~"; // F6
else if (kc==118) k="[18~"; // F7
else if (kc==119) k="[19~"; // F8
else if (kc==120) k="[20~"; // F9
else if (kc==121) k="[21~"; // F10
else if (kc==122) k="[23~"; // F11
else if (kc==123) k="[24~"; // F12
if (k.length) {
k=String.fromCharCode(27)+k;
}
}
} else {
if (kc==8)
k=String.fromCharCode(127); // Backspace
else
k=String.fromCharCode(kc);
}
if(k.length) {
// queue(encodeURIComponent(k));
if(k=="+") {
queue("%2B");
} else {
queue(escape(k));
}
}
ev.cancelBubble=true;
if (ev.stopPropagation) ev.stopPropagation();
if (ev.preventDefault) ev.preventDefault();
return false;
}
function keydown(ev) {
if (!ev) var ev=window.event;
if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 17 ||
ev.ctrlKey) {
// In chrome, keypress isn't called for backspace,
// escape or ctrl-something
return keypress(ev);
}
if (ie) {
// s="kd keyCode="+ev.keyCode+" which="+ev.which+" shiftKey="+ev.shiftKey+" ctrlKey="+ev.ctrlKey+" altKey="+ev.altKey;
// debug(s);
o={9:1,8:1,27:1,33:1,34:1,35:1,36:1,37:1,38:1,39:1,40:1,45:1,46:1,112:1,
113:1,114:1,115:1,116:1,117:1,118:1,119:1,120:1,121:1,122:1,123:1};
if (o[ev.keyCode] || ev.ctrlKey || ev.altKey) {
ev.which=0;
return keypress(ev);
}
}
}
function init() {
sled.appendChild(document.createTextNode('\xb7'));
sled.className='off';
dstat.appendChild(sled);
dstat.appendChild(document.createTextNode(' '));
opt_add(opt_color,'Colors');
opt_color.className='on';
opt_add(opt_get,'GET');
opt_add(opt_paste,'Paste');
dstat.appendChild(sdebug);
dstat.className='stat';
div.appendChild(dstat);
div.appendChild(dterm);
if(opt_color.addEventListener) {
opt_get.addEventListener('click',do_get,true);
opt_color.addEventListener('click',do_color,true);
opt_paste.addEventListener('click',do_paste,true);
} else {
opt_get.attachEvent("onclick", do_get);
opt_color.attachEvent("onclick", do_color);
opt_paste.attachEvent("onclick", do_paste);
}
document.onkeypress=keypress;
document.onkeydown=keydown;
timeout=window.setTimeout(update,100);
}
init();
}
ajaxterm.Terminal=function(id,width,height) {
return new this.Terminal_ctor(id,width,height);
}

View File

@@ -1,567 +0,0 @@
#!/usr/bin/env python
""" Ajaxterm """
import array,cgi,fcntl,glob,mimetypes,optparse,os,pty,random,re,signal,select,sys,threading,time,termios,struct,pwd
os.chdir(os.path.normpath(os.path.dirname(__file__)))
# Optional: Add QWeb in sys path
sys.path[0:0]=glob.glob('../../python')
import qweb
class Terminal:
def __init__(self,width=80,height=24):
self.width=width
self.height=height
self.init()
self.reset()
def init(self):
self.esc_seq={
"\x00": None,
"\x05": self.esc_da,
"\x07": None,
"\x08": self.esc_0x08,
"\x09": self.esc_0x09,
"\x0a": self.esc_0x0a,
"\x0b": self.esc_0x0a,
"\x0c": self.esc_0x0a,
"\x0d": self.esc_0x0d,
"\x0e": None,
"\x0f": None,
"\x1b#8": None,
"\x1b=": None,
"\x1b>": None,
"\x1b(0": None,
"\x1b(A": None,
"\x1b(B": None,
"\x1b[c": self.esc_da,
"\x1b[0c": self.esc_da,
"\x1b]R": None,
"\x1b7": self.esc_save,
"\x1b8": self.esc_restore,
"\x1bD": None,
"\x1bE": None,
"\x1bH": None,
"\x1bM": self.esc_ri,
"\x1bN": None,
"\x1bO": None,
"\x1bZ": self.esc_da,
"\x1ba": None,
"\x1bc": self.reset,
"\x1bn": None,
"\x1bo": None,
}
for k,v in self.esc_seq.items():
if v==None:
self.esc_seq[k]=self.esc_ignore
# regex
d={
r'\[\??([0-9;]*)([@ABCDEFGHJKLMPXacdefghlmnqrstu`])' : self.csi_dispatch,
r'\]([^\x07]+)\x07' : self.esc_ignore,
}
self.esc_re=[]
for k,v in d.items():
self.esc_re.append((re.compile('\x1b'+k),v))
# define csi sequences
self.csi_seq={
'@': (self.csi_at,[1]),
'`': (self.csi_G,[1]),
'J': (self.csi_J,[0]),
'K': (self.csi_K,[0]),
}
for i in [i[4] for i in dir(self) if i.startswith('csi_') and len(i)==5]:
if not self.csi_seq.has_key(i):
self.csi_seq[i]=(getattr(self,'csi_'+i),[1])
# Init 0-256 to latin1 and html translation table
self.trl1=""
for i in range(256):
if i<32:
self.trl1+=" "
elif i<127 or i>160:
self.trl1+=chr(i)
else:
self.trl1+="?"
self.trhtml=""
for i in range(256):
if i==0x0a or (i>32 and i<127) or i>160:
self.trhtml+=chr(i)
elif i<=32:
self.trhtml+="\xa0"
else:
self.trhtml+="?"
def reset(self,s=""):
self.scr=array.array('i',[0x000700]*(self.width*self.height))
self.st=0
self.sb=self.height-1
self.cx_bak=self.cx=0
self.cy_bak=self.cy=0
self.cl=0
self.sgr=0x000700
self.buf=""
self.outbuf=""
self.last_html=""
def peek(self,y1,x1,y2,x2):
return self.scr[self.width*y1+x1:self.width*y2+x2]
def poke(self,y,x,s):
pos=self.width*y+x
self.scr[pos:pos+len(s)]=s
def zero(self,y1,x1,y2,x2):
w=self.width*(y2-y1)+x2-x1+1
z=array.array('i',[0x000700]*w)
self.scr[self.width*y1+x1:self.width*y2+x2+1]=z
def scroll_up(self,y1,y2):
self.poke(y1,0,self.peek(y1+1,0,y2,self.width))
self.zero(y2,0,y2,self.width-1)
def scroll_down(self,y1,y2):
self.poke(y1+1,0,self.peek(y1,0,y2-1,self.width))
self.zero(y1,0,y1,self.width-1)
def scroll_right(self,y,x):
self.poke(y,x+1,self.peek(y,x,y,self.width))
self.zero(y,x,y,x)
def cursor_down(self):
if self.cy>=self.st and self.cy<=self.sb:
self.cl=0
q,r=divmod(self.cy+1,self.sb+1)
if q:
self.scroll_up(self.st,self.sb)
self.cy=self.sb
else:
self.cy=r
def cursor_right(self):
q,r=divmod(self.cx+1,self.width)
if q:
self.cl=1
else:
self.cx=r
def echo(self,c):
if self.cl:
self.cursor_down()
self.cx=0
self.scr[(self.cy*self.width)+self.cx]=self.sgr|ord(c)
self.cursor_right()
def esc_0x08(self,s):
self.cx=max(0,self.cx-1)
def esc_0x09(self,s):
x=self.cx+8
q,r=divmod(x,8)
self.cx=(q*8)%self.width
def esc_0x0a(self,s):
self.cursor_down()
def esc_0x0d(self,s):
self.cl=0
self.cx=0
def esc_save(self,s):
self.cx_bak=self.cx
self.cy_bak=self.cy
def esc_restore(self,s):
self.cx=self.cx_bak
self.cy=self.cy_bak
self.cl=0
def esc_da(self,s):
self.outbuf="\x1b[?6c"
def esc_ri(self,s):
self.cy=max(self.st,self.cy-1)
if self.cy==self.st:
self.scroll_down(self.st,self.sb)
def esc_ignore(self,*s):
pass
# print "term:ignore: %s"%repr(s)
def csi_dispatch(self,seq,mo):
# CSI sequences
s=mo.group(1)
c=mo.group(2)
f=self.csi_seq.get(c,None)
if f:
try:
l=[min(int(i),1024) for i in s.split(';') if len(i)<4]
except ValueError:
l=[]
if len(l)==0:
l=f[1]
f[0](l)
# else:
# print 'csi ignore',c,l
def csi_at(self,l):
for i in range(l[0]):
self.scroll_right(self.cy,self.cx)
def csi_A(self,l):
self.cy=max(self.st,self.cy-l[0])
def csi_B(self,l):
self.cy=min(self.sb,self.cy+l[0])
def csi_C(self,l):
self.cx=min(self.width-1,self.cx+l[0])
self.cl=0
def csi_D(self,l):
self.cx=max(0,self.cx-l[0])
self.cl=0
def csi_E(self,l):
self.csi_B(l)
self.cx=0
self.cl=0
def csi_F(self,l):
self.csi_A(l)
self.cx=0
self.cl=0
def csi_G(self,l):
self.cx=min(self.width,l[0])-1
def csi_H(self,l):
if len(l)<2: l=[1,1]
self.cx=min(self.width,l[1])-1
self.cy=min(self.height,l[0])-1
self.cl=0
def csi_J(self,l):
if l[0]==0:
self.zero(self.cy,self.cx,self.height-1,self.width-1)
elif l[0]==1:
self.zero(0,0,self.cy,self.cx)
elif l[0]==2:
self.zero(0,0,self.height-1,self.width-1)
def csi_K(self,l):
if l[0]==0:
self.zero(self.cy,self.cx,self.cy,self.width-1)
elif l[0]==1:
self.zero(self.cy,0,self.cy,self.cx)
elif l[0]==2:
self.zero(self.cy,0,self.cy,self.width-1)
def csi_L(self,l):
for i in range(l[0]):
if self.cy<self.sb:
self.scroll_down(self.cy,self.sb)
def csi_M(self,l):
if self.cy>=self.st and self.cy<=self.sb:
for i in range(l[0]):
self.scroll_up(self.cy,self.sb)
def csi_P(self,l):
w,cx,cy=self.width,self.cx,self.cy
end=self.peek(cy,cx,cy,w)
self.csi_K([0])
self.poke(cy,cx,end[l[0]:])
def csi_X(self,l):
self.zero(self.cy,self.cx,self.cy,self.cx+l[0])
def csi_a(self,l):
self.csi_C(l)
def csi_c(self,l):
#'\x1b[?0c' 0-8 cursor size
pass
def csi_d(self,l):
self.cy=min(self.height,l[0])-1
def csi_e(self,l):
self.csi_B(l)
def csi_f(self,l):
self.csi_H(l)
def csi_h(self,l):
if l[0]==4:
pass
# print "insert on"
def csi_l(self,l):
if l[0]==4:
pass
# print "insert off"
def csi_m(self,l):
for i in l:
if i==0 or i==39 or i==49 or i==27:
self.sgr=0x000700
elif i==1:
self.sgr=(self.sgr|0x000800)
elif i==7:
self.sgr=0x070000
elif i>=30 and i<=37:
c=i-30
self.sgr=(self.sgr&0xff08ff)|(c<<8)
elif i>=40 and i<=47:
c=i-40
self.sgr=(self.sgr&0x00ffff)|(c<<16)
# else:
# print "CSI sgr ignore",l,i
# print 'sgr: %r %x'%(l,self.sgr)
def csi_r(self,l):
if len(l)<2: l=[0,self.height]
self.st=min(self.height-1,l[0]-1)
self.sb=min(self.height-1,l[1]-1)
self.sb=max(self.st,self.sb)
def csi_s(self,l):
self.esc_save(0)
def csi_u(self,l):
self.esc_restore(0)
def escape(self):
e=self.buf
if len(e)>32:
# print "error %r"%e
self.buf=""
elif e in self.esc_seq:
self.esc_seq[e](e)
self.buf=""
else:
for r,f in self.esc_re:
mo=r.match(e)
if mo:
f(e,mo)
self.buf=""
break
# if self.buf=='': print "ESC %r\n"%e
def write(self,s):
for i in s:
if len(self.buf) or (i in self.esc_seq):
self.buf+=i
self.escape()
elif i == '\x1b':
self.buf+=i
else:
self.echo(i)
def read(self):
b=self.outbuf
self.outbuf=""
return b
def dump(self):
r=''
for i in self.scr:
r+=chr(i&255)
return r
def dumplatin1(self):
return self.dump().translate(self.trl1)
def dumphtml(self,color=1):
h=self.height
w=self.width
r=""
span=""
span_bg,span_fg=-1,-1
for i in range(h*w):
q,c=divmod(self.scr[i],256)
if color:
bg,fg=divmod(q,256)
else:
bg,fg=0,7
if i==self.cy*w+self.cx:
bg,fg=1,7
if (bg!=span_bg or fg!=span_fg or i==h*w-1):
if len(span):
r+='<span class="f%d b%d">%s</span>'%(span_fg,span_bg,cgi.escape(span.translate(self.trhtml)))
span=""
span_bg,span_fg=bg,fg
span+=chr(c)
if i%w==w-1:
span+='\n'
r='<?xml version="1.0" encoding="ISO-8859-1"?><pre class="term">%s</pre>'%r
if self.last_html==r:
return '<?xml version="1.0"?><idem></idem>'
else:
self.last_html=r
# print self
return r
def __repr__(self):
d=self.dumplatin1()
r=""
for i in range(self.height):
r+="|%s|\n"%d[self.width*i:self.width*(i+1)]
return r
class SynchronizedMethod:
def __init__(self,lock,orig):
self.lock=lock
self.orig=orig
def __call__(self,*l):
self.lock.acquire()
r=self.orig(*l)
self.lock.release()
return r
class Multiplex:
def __init__(self,cmd=None):
signal.signal(signal.SIGCHLD, signal.SIG_IGN)
self.cmd=cmd
self.proc={}
self.lock=threading.RLock()
self.thread=threading.Thread(target=self.loop)
self.alive=1
# synchronize methods
for name in ['create','fds','proc_read','proc_write','dump','die','run']:
orig=getattr(self,name)
setattr(self,name,SynchronizedMethod(self.lock,orig))
self.thread.start()
def create(self,w=80,h=25):
pid,fd=pty.fork()
if pid==0:
try:
fdl=[int(i) for i in os.listdir('/proc/self/fd')]
except OSError:
fdl=range(256)
for i in [i for i in fdl if i>2]:
try:
os.close(i)
except OSError:
pass
if self.cmd:
cmd=['/bin/sh','-c',self.cmd]
elif os.getuid()==0:
cmd=['/bin/login']
else:
sys.stdout.write("Login: ")
login=sys.stdin.readline().strip()
if re.match('^[0-9A-Za-z-_. ]+$',login):
cmd=['ssh']
cmd+=['-oPreferredAuthentications=keyboard-interactive,password']
cmd+=['-oNoHostAuthenticationForLocalhost=yes']
cmd+=['-oLogLevel=FATAL']
cmd+=['-F/dev/null','-l',login,'localhost']
else:
os._exit(0)
env={}
env["COLUMNS"]=str(w)
env["LINES"]=str(h)
env["TERM"]="linux"
env["PATH"]=os.environ['PATH']
os.execvpe(cmd[0],cmd,env)
else:
fcntl.fcntl(fd, fcntl.F_SETFL, os.O_NONBLOCK)
# python bug http://python.org/sf/1112949 on amd64
fcntl.ioctl(fd, struct.unpack('i',struct.pack('I',termios.TIOCSWINSZ))[0], struct.pack("HHHH",h,w,0,0))
self.proc[fd]={'pid':pid,'term':Terminal(w,h),'buf':'','time':time.time()}
return fd
def die(self):
self.alive=0
def run(self):
return self.alive
def fds(self):
return self.proc.keys()
def proc_kill(self,fd):
if fd in self.proc:
self.proc[fd]['time']=0
t=time.time()
for i in self.proc.keys():
t0=self.proc[i]['time']
if (t-t0)>120:
try:
os.close(i)
os.kill(self.proc[i]['pid'],signal.SIGTERM)
except (IOError,OSError):
pass
del self.proc[i]
def proc_read(self,fd):
try:
t=self.proc[fd]['term']
t.write(os.read(fd,65536))
reply=t.read()
if reply:
os.write(fd,reply)
self.proc[fd]['time']=time.time()
except (KeyError,IOError,OSError):
self.proc_kill(fd)
def proc_write(self,fd,s):
try:
os.write(fd,s)
except (IOError,OSError):
self.proc_kill(fd)
def dump(self,fd,color=1):
try:
return self.proc[fd]['term'].dumphtml(color)
except KeyError:
return False
def loop(self):
while self.run():
fds=self.fds()
i,o,e=select.select(fds, [], [], 1.0)
for fd in i:
self.proc_read(fd)
if len(i):
time.sleep(0.002)
for i in self.proc.keys():
try:
os.close(i)
os.kill(self.proc[i]['pid'],signal.SIGTERM)
except (IOError,OSError):
pass
class AjaxTerm:
def __init__(self,cmd=None,index_file='ajaxterm.html'):
self.files={}
for i in ['css','html','js']:
for j in glob.glob('*.%s'%i):
self.files[j]=file(j).read()
self.files['index']=file(index_file).read()
self.mime = mimetypes.types_map.copy()
self.mime['.html']= 'text/html; charset=UTF-8'
self.multi = Multiplex(cmd)
self.session = {}
def __call__(self, environ, start_response):
req = qweb.QWebRequest(environ, start_response,session=None)
if req.PATH_INFO.endswith('/u'):
s=req.REQUEST["s"]
k=req.REQUEST["k"]
c=req.REQUEST["c"]
w=req.REQUEST.int("w")
h=req.REQUEST.int("h")
if s in self.session:
term=self.session[s]
else:
if not (w>2 and w<256 and h>2 and h<100):
w,h=80,25
term=self.session[s]=self.multi.create(w,h)
if k:
self.multi.proc_write(term,k)
time.sleep(0.002)
dump=self.multi.dump(term,c)
req.response_headers['Content-Type']='text/xml'
if isinstance(dump,str):
req.write(dump)
req.response_gzencode=1
else:
del self.session[s]
req.write('<?xml version="1.0"?><idem></idem>')
# print "sessions %r"%self.session
else:
n=os.path.basename(req.PATH_INFO)
if n in self.files:
req.response_headers['Content-Type'] = self.mime.get(os.path.splitext(n)[1].lower(), 'application/octet-stream')
req.write(self.files[n])
else:
req.response_headers['Content-Type'] = 'text/html; charset=UTF-8'
req.write(self.files['index'])
return req
def main():
parser = optparse.OptionParser()
parser.add_option("-p", "--port", dest="port", default="8022", help="Set the TCP port (default: 8022)")
parser.add_option("-c", "--command", dest="cmd", default=None,help="set the command (default: /bin/login or ssh localhost)")
parser.add_option("-l", "--log", action="store_true", dest="log",default=0,help="log requests to stderr (default: quiet mode)")
parser.add_option("-d", "--daemon", action="store_true", dest="daemon", default=0, help="run as daemon in the background")
parser.add_option("-P", "--pidfile",dest="pidfile",default="/var/run/ajaxterm.pid",help="set the pidfile (default: /var/run/ajaxterm.pid)")
parser.add_option("-i", "--index", dest="index_file", default="ajaxterm.html",help="default index file (default: ajaxterm.html)")
parser.add_option("-u", "--uid", dest="uid", help="Set the daemon's user id")
(o, a) = parser.parse_args()
if o.daemon:
pid=os.fork()
if pid == 0:
#os.setsid() ?
os.setpgrp()
nullin = file('/dev/null', 'r')
nullout = file('/dev/null', 'w')
os.dup2(nullin.fileno(), sys.stdin.fileno())
os.dup2(nullout.fileno(), sys.stdout.fileno())
os.dup2(nullout.fileno(), sys.stderr.fileno())
if os.getuid()==0 and o.uid:
try:
os.setuid(int(o.uid))
except:
os.setuid(pwd.getpwnam(o.uid).pw_uid)
else:
try:
file(o.pidfile,'w+').write(str(pid)+'\n')
except:
pass
print 'AjaxTerm at http://localhost:%s/ pid: %d' % (o.port,pid)
sys.exit(0)
else:
print 'AjaxTerm at http://localhost:%s/' % o.port
at=AjaxTerm(o.cmd,o.index_file)
# f=lambda:os.system('firefox http://localhost:%s/&'%o.port)
# qweb.qweb_wsgi_autorun(at,ip='localhost',port=int(o.port),threaded=0,log=o.log,callback_ready=None)
try:
qweb.QWebWSGIServer(at,ip='localhost',port=int(o.port),threaded=0,log=o.log).serve_forever()
except KeyboardInterrupt,e:
sys.excepthook(*sys.exc_info())
at.multi.die()
if __name__ == '__main__':
main()

View File

@@ -1,32 +0,0 @@
#!/usr/bin/env python
import optparse,os
parser = optparse.OptionParser()
parser.add_option("", "--prefix", dest="prefix",default="/usr/local",help="installation prefix (default: /usr/local)")
parser.add_option("", "--confdir", dest="confdir", default="/etc",help="configuration files directory prefix (default: /etc)")
parser.add_option("", "--port", dest="port", default="8022", help="set the listening TCP port (default: 8022)")
parser.add_option("", "--command", dest="cmd", default=None,help="set the command (default: /bin/login or ssh localhost)")
(o, a) = parser.parse_args()
print "Configuring prefix=",o.prefix," port=",o.port
etc=o.confdir
port=o.port
cmd=o.cmd
bin=os.path.join(o.prefix,"bin")
lib=os.path.join(o.prefix,"share/ajaxterm")
man=os.path.join(o.prefix,"share/man/man1")
file("ajaxterm.bin","w").write(file("configure.ajaxterm.bin").read()%locals())
file("Makefile","w").write(file("configure.makefile").read()%locals())
if os.path.isfile("/etc/gentoo-release"):
file("ajaxterm.initd","w").write(file("configure.initd.gentoo").read()%locals())
elif os.path.isfile("/etc/fedora-release") or os.path.isfile("/etc/redhat-release"):
file("ajaxterm.initd","w").write(file("configure.initd.redhat").read()%locals())
else:
file("ajaxterm.initd","w").write(file("configure.initd.debian").read()%locals())
os.system("chmod a+x ajaxterm.bin")
os.system("chmod a+x ajaxterm.initd")

View File

@@ -1,27 +0,0 @@
#!/sbin/runscript
# AjaxTerm Gentoo script, 08 May 2006 Mark Gillespie
DAEMON=%(bin)s/ajaxterm
PORT=%(port)s
PIDFILE=/var/run/ajaxterm.pid
depend()
{
need net
}
start()
{
ebegin "Starting AjaxTerm on port $PORT"
start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON -- --daemon --port=$PORT --uid=nobody
eend $?
}
stop()
{
ebegin "Stopping AjaxTerm"
start-stop-daemon --stop --pidfile $PIDFILE
rm -f $PIDFILE
eend $?
}

View File

@@ -1,75 +0,0 @@
#
# ajaxterm Startup script for ajaxterm
#
# chkconfig: - 99 99
# description: Ajaxterm is a yadda yadda yadda
# processname: ajaxterm
# pidfile: /var/run/ajaxterm.pid
# version: 1.0 Kevin Reichhart - ajaxterminit at lastname dot org
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/ajaxterm ]; then
. /etc/sysconfig/ajaxterm
fi
ajaxterm=/usr/local/bin/ajaxterm
prog=ajaxterm
pidfile=${PIDFILE-/var/run/ajaxterm.pid}
lockfile=${LOCKFILE-/var/lock/subsys/ajaxterm}
port=${PORT-8022}
user=${xUSER-nobody}
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon $ajaxterm --daemon --port=$port --uid=$user $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $ajaxterm
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
echo -n $"Reloading $prog: "
killproc $ajaxterm -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status python ajaxterm
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f ${pidfile} ] ; then
stop
start
fi
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart}"
exit 1
esac
exit $RETVAL

View File

@@ -1,20 +0,0 @@
build:
true
install:
install -d "%(bin)s"
install -d "%(lib)s"
install ajaxterm.bin "%(bin)s/ajaxterm"
install ajaxterm.initd "%(etc)s/init.d/ajaxterm"
install -m 644 ajaxterm.css ajaxterm.html ajaxterm.js qweb.py sarissa.js sarissa_dhtml.js "%(lib)s"
install -m 755 ajaxterm.py "%(lib)s"
gzip --best -c ajaxterm.1 > ajaxterm.1.gz
install -d "%(man)s"
install ajaxterm.1.gz "%(man)s"
clean:
rm ajaxterm.bin
rm ajaxterm.initd
rm ajaxterm.1.gz
rm Makefile

File diff suppressed because it is too large Load Diff

View File

@@ -1,653 +0,0 @@
/**
* ====================================================================
* About
* ====================================================================
* Sarissa is an ECMAScript library acting as a cross-browser wrapper for native XML APIs.
* The library supports Gecko based browsers like Mozilla and Firefox,
* Internet Explorer (5.5+ with MSXML3.0+), Konqueror, Safari and a little of Opera
* @version 0.9.6.1
* @author: Manos Batsis, mailto: mbatsis at users full stop sourceforge full stop net
* ====================================================================
* Licence
* ====================================================================
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 or
* the GNU Lesser General Public License version 2.1 as published by
* the Free Software Foundation (your choice between the two).
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License or GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* or GNU Lesser General Public License along with this program; if not,
* write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* or visit http://www.gnu.org
*
*/
/**
* <p>Sarissa is a utility class. Provides "static" methods for DOMDocument and
* XMLHTTP objects, DOM Node serializatrion to XML strings and other goodies.</p>
* @constructor
*/
function Sarissa(){};
/** @private */
Sarissa.PARSED_OK = "Document contains no parsing errors";
/**
* Tells you whether transformNode and transformNodeToObject are available. This functionality
* is contained in sarissa_ieemu_xslt.js and is deprecated. If you want to control XSLT transformations
* use the XSLTProcessor
* @deprecated
* @type boolean
*/
Sarissa.IS_ENABLED_TRANSFORM_NODE = false;
/**
* tells you whether XMLHttpRequest (or equivalent) is available
* @type boolean
*/
Sarissa.IS_ENABLED_XMLHTTP = false;
/**
* tells you whether selectNodes/selectSingleNode is available
* @type boolean
*/
Sarissa.IS_ENABLED_SELECT_NODES = false;
var _sarissa_iNsCounter = 0;
var _SARISSA_IEPREFIX4XSLPARAM = "";
var _SARISSA_HAS_DOM_IMPLEMENTATION = document.implementation && true;
var _SARISSA_HAS_DOM_CREATE_DOCUMENT = _SARISSA_HAS_DOM_IMPLEMENTATION && document.implementation.createDocument;
var _SARISSA_HAS_DOM_FEATURE = _SARISSA_HAS_DOM_IMPLEMENTATION && document.implementation.hasFeature;
var _SARISSA_IS_MOZ = _SARISSA_HAS_DOM_CREATE_DOCUMENT && _SARISSA_HAS_DOM_FEATURE;
var _SARISSA_IS_SAFARI = (navigator.userAgent && navigator.vendor && (navigator.userAgent.toLowerCase().indexOf("applewebkit") != -1 || navigator.vendor.indexOf("Apple") != -1));
var _SARISSA_IS_IE = document.all && window.ActiveXObject && navigator.userAgent.toLowerCase().indexOf("msie") > -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1;
if(!window.Node || !window.Node.ELEMENT_NODE){
var Node = {ELEMENT_NODE: 1, ATTRIBUTE_NODE: 2, TEXT_NODE: 3, CDATA_SECTION_NODE: 4, ENTITY_REFERENCE_NODE: 5, ENTITY_NODE: 6, PROCESSING_INSTRUCTION_NODE: 7, COMMENT_NODE: 8, DOCUMENT_NODE: 9, DOCUMENT_TYPE_NODE: 10, DOCUMENT_FRAGMENT_NODE: 11, NOTATION_NODE: 12};
};
// IE initialization
if(_SARISSA_IS_IE){
// for XSLT parameter names, prefix needed by IE
_SARISSA_IEPREFIX4XSLPARAM = "xsl:";
// used to store the most recent ProgID available out of the above
var _SARISSA_DOM_PROGID = "";
var _SARISSA_XMLHTTP_PROGID = "";
/**
* Called when the Sarissa_xx.js file is parsed, to pick most recent
* ProgIDs for IE, then gets destroyed.
* @param idList an array of MSXML PROGIDs from which the most recent will be picked for a given object
* @param enabledList an array of arrays where each array has two items; the index of the PROGID for which a certain feature is enabled
*/
pickRecentProgID = function (idList, enabledList){
// found progID flag
var bFound = false;
for(var i=0; i < idList.length && !bFound; i++){
try{
var oDoc = new ActiveXObject(idList[i]);
o2Store = idList[i];
bFound = true;
for(var j=0;j<enabledList.length;j++)
if(i <= enabledList[j][1])
Sarissa["IS_ENABLED_"+enabledList[j][0]] = true;
}catch (objException){
// trap; try next progID
};
};
if (!bFound)
throw "Could not retreive a valid progID of Class: " + idList[idList.length-1]+". (original exception: "+e+")";
idList = null;
return o2Store;
};
// pick best available MSXML progIDs
_SARISSA_DOM_PROGID = pickRecentProgID(["Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XMLDOM"], [["SELECT_NODES", 2],["TRANSFORM_NODE", 2]]);
_SARISSA_XMLHTTP_PROGID = pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], [["XMLHTTP", 4]]);
_SARISSA_THREADEDDOM_PROGID = pickRecentProgID(["Msxml2.FreeThreadedDOMDocument.5.0", "MSXML2.FreeThreadedDOMDocument.4.0", "MSXML2.FreeThreadedDOMDocument.3.0"]);
_SARISSA_XSLTEMPLATE_PROGID = pickRecentProgID(["Msxml2.XSLTemplate.5.0", "Msxml2.XSLTemplate.4.0", "MSXML2.XSLTemplate.3.0"], [["XSLTPROC", 2]]);
// we dont need this anymore
pickRecentProgID = null;
//============================================
// Factory methods (IE)
//============================================
// see non-IE version
Sarissa.getDomDocument = function(sUri, sName){
var oDoc = new ActiveXObject(_SARISSA_DOM_PROGID);
// if a root tag name was provided, we need to load it in the DOM
// object
if (sName){
// if needed, create an artifical namespace prefix the way Moz
// does
if (sUri){
oDoc.loadXML("<a" + _sarissa_iNsCounter + ":" + sName + " xmlns:a" + _sarissa_iNsCounter + "=\"" + sUri + "\" />");
// don't use the same prefix again
++_sarissa_iNsCounter;
}
else
oDoc.loadXML("<" + sName + "/>");
};
return oDoc;
};
// see non-IE version
Sarissa.getParseErrorText = function (oDoc) {
var parseErrorText = Sarissa.PARSED_OK;
if(oDoc.parseError != 0){
parseErrorText = "XML Parsing Error: " + oDoc.parseError.reason +
"\nLocation: " + oDoc.parseError.url +
"\nLine Number " + oDoc.parseError.line + ", Column " +
oDoc.parseError.linepos +
":\n" + oDoc.parseError.srcText +
"\n";
for(var i = 0; i < oDoc.parseError.linepos;i++){
parseErrorText += "-";
};
parseErrorText += "^\n";
};
return parseErrorText;
};
// see non-IE version
Sarissa.setXpathNamespaces = function(oDoc, sNsSet) {
oDoc.setProperty("SelectionLanguage", "XPath");
oDoc.setProperty("SelectionNamespaces", sNsSet);
};
/**
* Basic implementation of Mozilla's XSLTProcessor for IE.
* Reuses the same XSLT stylesheet for multiple transforms
* @constructor
*/
XSLTProcessor = function(){
this.template = new ActiveXObject(_SARISSA_XSLTEMPLATE_PROGID);
this.processor = null;
};
/**
* Impoprts the given XSLT DOM and compiles it to a reusable transform
* @argument xslDoc The XSLT DOMDocument to import
*/
XSLTProcessor.prototype.importStylesheet = function(xslDoc){
// convert stylesheet to free threaded
var converted = new ActiveXObject(_SARISSA_THREADEDDOM_PROGID);
converted.loadXML(xslDoc.xml);
this.template.stylesheet = converted;
this.processor = this.template.createProcessor();
// (re)set default param values
this.paramsSet = new Array();
};
/**
* Transform the given XML DOM
* @argument sourceDoc The XML DOMDocument to transform
* @return The transformation result as a DOM Document
*/
XSLTProcessor.prototype.transformToDocument = function(sourceDoc){
this.processor.input = sourceDoc;
var outDoc = new ActiveXObject(_SARISSA_DOM_PROGID);
this.processor.output = outDoc;
this.processor.transform();
return outDoc;
};
/**
* Set global XSLT parameter of the imported stylesheet
* @argument nsURI The parameter namespace URI
* @argument name The parameter base name
* @argument value The new parameter value
*/
XSLTProcessor.prototype.setParameter = function(nsURI, name, value){
/* nsURI is optional but cannot be null */
if(nsURI){
this.processor.addParameter(name, value, nsURI);
}else{
this.processor.addParameter(name, value);
};
/* update updated params for getParameter */
if(!this.paramsSet[""+nsURI]){
this.paramsSet[""+nsURI] = new Array();
};
this.paramsSet[""+nsURI][name] = value;
};
/**
* Gets a parameter if previously set by setParameter. Returns null
* otherwise
* @argument name The parameter base name
* @argument value The new parameter value
* @return The parameter value if reviously set by setParameter, null otherwise
*/
XSLTProcessor.prototype.getParameter = function(nsURI, name){
nsURI = nsURI || "";
if(nsURI in this.paramsSet && name in this.paramsSet[nsURI]){
return this.paramsSet[nsURI][name];
}else{
return null;
};
};
}
else{ /* end IE initialization, try to deal with real browsers now ;-) */
if(_SARISSA_HAS_DOM_CREATE_DOCUMENT){
/**
* <p>Ensures the document was loaded correctly, otherwise sets the
* parseError to -1 to indicate something went wrong. Internal use</p>
* @private
*/
Sarissa.__handleLoad__ = function(oDoc){
if (!oDoc.documentElement || oDoc.documentElement.tagName == "parsererror")
oDoc.parseError = -1;
Sarissa.__setReadyState__(oDoc, 4);
};
/**
* <p>Attached by an event handler to the load event. Internal use.</p>
* @private
*/
_sarissa_XMLDocument_onload = function(){
Sarissa.__handleLoad__(this);
};
/**
* <p>Sets the readyState property of the given DOM Document object.
* Internal use.</p>
* @private
* @argument oDoc the DOM Document object to fire the
* readystatechange event
* @argument iReadyState the number to change the readystate property to
*/
Sarissa.__setReadyState__ = function(oDoc, iReadyState){
oDoc.readyState = iReadyState;
if (oDoc.onreadystatechange != null && typeof oDoc.onreadystatechange == "function")
oDoc.onreadystatechange();
};
Sarissa.getDomDocument = function(sUri, sName){
var oDoc = document.implementation.createDocument(sUri?sUri:"", sName?sName:"", null);
oDoc.addEventListener("load", _sarissa_XMLDocument_onload, false);
return oDoc;
};
if(window.XMLDocument){
/**
* <p>Emulate IE's onreadystatechange attribute</p>
*/
try {
XMLDocument.prototype.onreadystatechange = null;
} catch(err) {
// May fail on Chrome 43+
}
/**
* <p>Emulates IE's readyState property, which always gives an integer from 0 to 4:</p>
* <ul><li>1 == LOADING,</li>
* <li>2 == LOADED,</li>
* <li>3 == INTERACTIVE,</li>
* <li>4 == COMPLETED</li></ul>
*/
/* Doesn't work in Firefox 3.6
XMLDocument.prototype.readyState = 0;
*/
/**
* <p>Emulate IE's parseError attribute</p>
*/
XMLDocument.prototype.parseError = 0;
// NOTE: setting async to false will only work with documents
// called over HTTP (meaning a server), not the local file system,
// unless you are using Moz 1.4+.
// BTW the try>catch block is for 1.4; I haven't found a way to check if
// the property is implemented without
// causing an error and I dont want to use user agent stuff for that...
var _SARISSA_SYNC_NON_IMPLEMENTED = false;// ("async" in XMLDocument.prototype) ? false: true;
/**
* <p>Keeps a handle to the original load() method. Internal use and only
* if Mozilla version is lower than 1.4</p>
* @private
*/
XMLDocument.prototype._sarissa_load = XMLDocument.prototype.load;
/**
* <p>Overrides the original load method to provide synchronous loading for
* Mozilla versions prior to 1.4, using an XMLHttpRequest object (if
* async is set to false)</p>
* @returns the DOM Object as it was before the load() call (may be empty)
*/
XMLDocument.prototype.load = function(sURI) {
var oDoc = document.implementation.createDocument("", "", null);
Sarissa.copyChildNodes(this, oDoc);
this.parseError = 0;
Sarissa.__setReadyState__(this, 1);
try {
if(this.async == false && _SARISSA_SYNC_NON_IMPLEMENTED) {
var tmp = new XMLHttpRequest();
tmp.open("GET", sURI, false);
tmp.send(null);
Sarissa.__setReadyState__(this, 2);
Sarissa.copyChildNodes(tmp.responseXML, this);
Sarissa.__setReadyState__(this, 3);
}
else {
this._sarissa_load(sURI);
};
}
catch (objException) {
this.parseError = -1;
}
finally {
if(this.async == false){
Sarissa.__handleLoad__(this);
};
};
return oDoc;
};
}//if(window.XMLDocument)
else if(document.implementation && document.implementation.hasFeature && document.implementation.hasFeature('LS', '3.0')){
Document.prototype.async = true;
Document.prototype.onreadystatechange = null;
Document.prototype.parseError = 0;
Document.prototype.load = function(sURI) {
var parser = document.implementation.createLSParser(this.async ? document.implementation.MODE_ASYNCHRONOUS : document.implementation.MODE_SYNCHRONOUS, null);
if(this.async){
var self = this;
parser.addEventListener("load",
function(e) {
self.readyState = 4;
Sarissa.copyChildNodes(e.newDocument, self.documentElement, false);
self.onreadystatechange.call();
},
false);
};
try {
var oDoc = parser.parseURI(sURI);
}
catch(e){
this.parseError = -1;
};
if(!this.async)
Sarissa.copyChildNodes(oDoc, this.documentElement, false);
return oDoc;
};
/**
* <p>Factory method to obtain a new DOM Document object</p>
* @argument sUri the namespace of the root node (if any)
* @argument sUri the local name of the root node (if any)
* @returns a new DOM Document
*/
Sarissa.getDomDocument = function(sUri, sName){
return document.implementation.createDocument(sUri?sUri:"", sName?sName:"", null);
};
};
};//if(_SARISSA_HAS_DOM_CREATE_DOCUMENT)
};
//==========================================
// Common stuff
//==========================================
if(!window.DOMParser){
/*
* DOMParser is a utility class, used to construct DOMDocuments from XML strings
* @constructor
*/
DOMParser = function() {
};
if(_SARISSA_IS_SAFARI){
/**
* Construct a new DOM Document from the given XMLstring
* @param sXml the given XML string
* @param contentType the content type of the document the given string represents (one of text/xml, application/xml, application/xhtml+xml).
* @return a new DOM Document from the given XML string
*/
DOMParser.prototype.parseFromString = function(sXml, contentType){
if(contentType.toLowerCase() != "application/xml"){
throw "Cannot handle content type: \"" + contentType + "\"";
};
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "data:text/xml;charset=utf-8," + encodeURIComponent(str), false);
xmlhttp.send(null);
return xmlhttp.responseXML;
};
}else if(Sarissa.getDomDocument && Sarissa.getDomDocument() && "loadXML" in Sarissa.getDomDocument()){
DOMParser.prototype.parseFromString = function(sXml, contentType){
var doc = Sarissa.getDomDocument();
doc.loadXML(sXml);
return doc;
};
};
};
if(window.XMLHttpRequest){
Sarissa.IS_ENABLED_XMLHTTP = true;
}
else if(_SARISSA_IS_IE){
/**
* Emulate XMLHttpRequest
* @constructor
*/
XMLHttpRequest = function() {
return new ActiveXObject(_SARISSA_XMLHTTP_PROGID);
};
Sarissa.IS_ENABLED_XMLHTTP = true;
};
if(!window.document.importNode && _SARISSA_IS_IE){
try{
/**
* Implements importNode for the current window document in IE using innerHTML.
* Testing showed that DOM was multiple times slower than innerHTML for this,
* sorry folks. If you encounter trouble (who knows what IE does behind innerHTML)
* please gimme a call.
* @param oNode the Node to import
* @param bChildren whether to include the children of oNode
* @returns the imported node for further use
*/
window.document.importNode = function(oNode, bChildren){
var importNode = document.createElement("div");
if(bChildren)
importNode.innerHTML = Sarissa.serialize(oNode);
else
importNode.innerHTML = Sarissa.serialize(oNode.cloneNode(false));
return importNode.firstChild;
};
}catch(e){};
};
if(!Sarissa.getParseErrorText){
/**
* <p>Returns a human readable description of the parsing error. Usefull
* for debugging. Tip: append the returned error string in a &lt;pre&gt;
* element if you want to render it.</p>
* <p>Many thanks to Christian Stocker for the initial patch.</p>
* @argument oDoc The target DOM document
* @returns The parsing error description of the target Document in
* human readable form (preformated text)
*/
Sarissa.getParseErrorText = function (oDoc){
var parseErrorText = Sarissa.PARSED_OK;
if(oDoc && oDoc.parseError && oDoc.parseError != 0){
/*moz*/
if(oDoc.documentElement.tagName == "parsererror"){
parseErrorText = oDoc.documentElement.firstChild.data;
parseErrorText += "\n" + oDoc.documentElement.firstChild.nextSibling.firstChild.data;
}/*konq*/
else{
parseErrorText = Sarissa.getText(oDoc.documentElement);/*.getElementsByTagName("h1")[0], false) + "\n";
parseErrorText += Sarissa.getText(oDoc.documentElement.getElementsByTagName("body")[0], false) + "\n";
parseErrorText += Sarissa.getText(oDoc.documentElement.getElementsByTagName("pre")[0], false);*/
};
};
return parseErrorText;
};
};
Sarissa.getText = function(oNode, deep){
var s = "";
var nodes = oNode.childNodes;
for(var i=0; i < nodes.length; i++){
var node = nodes[i];
var nodeType = node.nodeType;
if(nodeType == Node.TEXT_NODE || nodeType == Node.CDATA_SECTION_NODE){
s += node.data;
}else if(deep == true
&& (nodeType == Node.ELEMENT_NODE
|| nodeType == Node.DOCUMENT_NODE
|| nodeType == Node.DOCUMENT_FRAGMENT_NODE)){
s += Sarissa.getText(node, true);
};
};
return s;
};
if(window.XMLSerializer){
/**
* <p>Factory method to obtain the serialization of a DOM Node</p>
* @returns the serialized Node as an XML string
*/
Sarissa.serialize = function(oDoc){
var s = null;
if(oDoc){
s = oDoc.innerHTML?oDoc.innerHTML:(new XMLSerializer()).serializeToString(oDoc);
};
return s;
};
}else{
if(Sarissa.getDomDocument && (Sarissa.getDomDocument("","foo", null)).xml){
// see non-IE version
Sarissa.serialize = function(oDoc) {
var s = null;
if(oDoc){
s = oDoc.innerHTML?oDoc.innerHTML:oDoc.xml;
};
return s;
};
/**
* Utility class to serialize DOM Node objects to XML strings
* @constructor
*/
XMLSerializer = function(){};
/**
* Serialize the given DOM Node to an XML string
* @param oNode the DOM Node to serialize
*/
XMLSerializer.prototype.serializeToString = function(oNode) {
return oNode.xml;
};
};
};
/**
* strips tags from a markup string
*/
Sarissa.stripTags = function (s) {
return s.replace(/<[^>]+>/g,"");
};
/**
* <p>Deletes all child nodes of the given node</p>
* @argument oNode the Node to empty
*/
Sarissa.clearChildNodes = function(oNode) {
// need to check for firstChild due to opera 8 bug with hasChildNodes
while(oNode.firstChild){
oNode.removeChild(oNode.firstChild);
};
};
/**
* <p> Copies the childNodes of nodeFrom to nodeTo</p>
* <p> <b>Note:</b> The second object's original content is deleted before
* the copy operation, unless you supply a true third parameter</p>
* @argument nodeFrom the Node to copy the childNodes from
* @argument nodeTo the Node to copy the childNodes to
* @argument bPreserveExisting whether to preserve the original content of nodeTo, default is false
*/
Sarissa.copyChildNodes = function(nodeFrom, nodeTo, bPreserveExisting) {
if((!nodeFrom) || (!nodeTo)){
throw "Both source and destination nodes must be provided";
};
if(!bPreserveExisting){
Sarissa.clearChildNodes(nodeTo);
};
var ownerDoc = nodeTo.nodeType == Node.DOCUMENT_NODE ? nodeTo : nodeTo.ownerDocument;
var nodes = nodeFrom.childNodes;
if(ownerDoc.importNode && (!_SARISSA_IS_IE)) {
for(var i=0;i < nodes.length;i++) {
nodeTo.appendChild(ownerDoc.importNode(nodes[i], true));
};
}
else{
for(var i=0;i < nodes.length;i++) {
nodeTo.appendChild(nodes[i].cloneNode(true));
};
};
};
/**
* <p> Moves the childNodes of nodeFrom to nodeTo</p>
* <p> <b>Note:</b> The second object's original content is deleted before
* the move operation, unless you supply a true third parameter</p>
* @argument nodeFrom the Node to copy the childNodes from
* @argument nodeTo the Node to copy the childNodes to
* @argument bPreserveExisting whether to preserve the original content of nodeTo, default is
*/
Sarissa.moveChildNodes = function(nodeFrom, nodeTo, bPreserveExisting) {
if((!nodeFrom) || (!nodeTo)){
throw "Both source and destination nodes must be provided";
};
if(!bPreserveExisting){
Sarissa.clearChildNodes(nodeTo);
};
var nodes = nodeFrom.childNodes;
// if within the same doc, just move, else copy and delete
if(nodeFrom.ownerDocument == nodeTo.ownerDocument){
while(nodeFrom.firstChild){
nodeTo.appendChild(nodeFrom.firstChild);
};
}else{
var ownerDoc = nodeTo.nodeType == Node.DOCUMENT_NODE ? nodeTo : nodeTo.ownerDocument;
if(ownerDoc.importNode && (!_SARISSA_IS_IE)) {
for(var i=0;i < nodes.length;i++) {
nodeTo.appendChild(ownerDoc.importNode(nodes[i], true));
};
}else{
for(var i=0;i < nodes.length;i++) {
nodeTo.appendChild(nodes[i].cloneNode(true));
};
};
Sarissa.clearChildNodes(nodeFrom);
};
};
/**
* <p>Serialize any object to an XML string. All properties are serialized using the property name
* as the XML element name. Array elements are rendered as <code>array-item</code> elements,
* using their index/key as the value of the <code>key</code> attribute.</p>
* @argument anyObject the object to serialize
* @argument objectName a name for that object
* @return the XML serializationj of the given object as a string
*/
Sarissa.xmlize = function(anyObject, objectName, indentSpace){
indentSpace = indentSpace?indentSpace:'';
var s = indentSpace + '<' + objectName + '>';
var isLeaf = false;
if(!(anyObject instanceof Object) || anyObject instanceof Number || anyObject instanceof String
|| anyObject instanceof Boolean || anyObject instanceof Date){
s += Sarissa.escape(""+anyObject);
isLeaf = true;
}else{
s += "\n";
var itemKey = '';
var isArrayItem = anyObject instanceof Array;
for(var name in anyObject){
s += Sarissa.xmlize(anyObject[name], (isArrayItem?"array-item key=\""+name+"\"":name), indentSpace + " ");
};
s += indentSpace;
};
return s += (objectName.indexOf(' ')!=-1?"</array-item>\n":"</" + objectName + ">\n");
};
/**
* Escape the given string chacters that correspond to the five predefined XML entities
* @param sXml the string to escape
*/
Sarissa.escape = function(sXml){
return sXml.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&apos;");
};
/**
* Unescape the given string. This turns the occurences of the predefined XML
* entities to become the characters they represent correspond to the five predefined XML entities
* @param sXml the string to unescape
*/
Sarissa.unescape = function(sXml){
return sXml.replace(/&apos;/g,"'")
.replace(/&quot;/g,"\"")
.replace(/&gt;/g,">")
.replace(/&lt;/g,"<")
.replace(/&amp;/g,"&");
};
// EOF

View File

@@ -1,105 +0,0 @@
/**
* ====================================================================
* About
* ====================================================================
* Sarissa cross browser XML library - AJAX module
* @version 0.9.6.1
* @author: Copyright Manos Batsis, mailto: mbatsis at users full stop sourceforge full stop net
*
* This module contains some convinient AJAX tricks based on Sarissa
*
* ====================================================================
* Licence
* ====================================================================
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 or
* the GNU Lesser General Public License version 2.1 as published by
* the Free Software Foundation (your choice between the two).
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License or GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* or GNU Lesser General Public License along with this program; if not,
* write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* or visit http://www.gnu.org
*
*/
/**
* Update an element with response of a GET request on the given URL.
* @addon
* @param sFromUrl the URL to make the request to
* @param oTargetElement the element to update
* @param xsltproc (optional) the transformer to use on the returned
* content before updating the target element with it
*/
Sarissa.updateContentFromURI = function(sFromUrl, oTargetElement, xsltproc) {
try{
oTargetElement.style.cursor = "wait";
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", sFromUrl);
function sarissa_dhtml_loadHandler() {
if (xmlhttp.readyState == 4) {
oTargetElement.style.cursor = "auto";
Sarissa.updateContentFromNode(xmlhttp.responseXML, oTargetElement, xsltproc);
};
};
xmlhttp.onreadystatechange = sarissa_dhtml_loadHandler;
xmlhttp.send(null);
oTargetElement.style.cursor = "auto";
}
catch(e){
oTargetElement.style.cursor = "auto";
throw e;
};
};
/**
* Update an element's content with the given DOM node.
* @addon
* @param sFromUrl the URL to make the request to
* @param oTargetElement the element to update
* @param xsltproc (optional) the transformer to use on the given
* DOM node before updating the target element with it
*/
Sarissa.updateContentFromNode = function(oNode, oTargetElement, xsltproc) {
try {
oTargetElement.style.cursor = "wait";
Sarissa.clearChildNodes(oTargetElement);
// check for parsing errors
var ownerDoc = oNode.nodeType == Node.DOCUMENT_NODE?oNode:oNode.ownerDocument;
if(ownerDoc.parseError && ownerDoc.parseError != 0) {
var pre = document.createElement("pre");
pre.appendChild(document.createTextNode(Sarissa.getParseErrorText(ownerDoc)));
oTargetElement.appendChild(pre);
}
else {
// transform if appropriate
if(xsltproc) {
oNode = xsltproc.transformToDocument(oNode);
};
// be smart, maybe the user wants to display the source instead
if(oTargetElement.tagName.toLowerCase == "textarea" || oTargetElement.tagName.toLowerCase == "input") {
oTargetElement.value = Sarissa.serialize(oNode);
}
else {
// ok that was not smart; it was paranoid. Keep up the good work by trying to use DOM instead of innerHTML
if(oNode.nodeType == Node.DOCUMENT_NODE || oNode.ownerDocument.documentElement == oNode) {
oTargetElement.innerHTML = Sarissa.serialize(oNode);
}
else{
oTargetElement.appendChild(oTargetElement.ownerDocument.importNode(oNode, true));
};
};
};
}
catch(e) {
throw e;
}
finally{
oTargetElement.style.cursor = "auto";
};
};

View File

@@ -1,2 +0,0 @@
autologin=0
timeout=120

View File

@@ -1,2 +0,0 @@
autologin=Login mode,1,0-Prompt for username and password,1-Open root shell
timeout=Idle timeout before closing connection,0,5,,seconds

View File

@@ -1,2 +0,0 @@
autologin=وضع تسجيل الدخول,1,0-موجه لاسم المستخدم وكلمة المرور,1-فتح شل الـ root
timeout=مهلة الخمول قبل إغلاق الاتصال,0,5,,ثانية

View File

@@ -1,2 +0,0 @@
autologin=Mode d'entrada,1,0-Demana usuari i contrasenya,1-Obre una shell de root
timeout=Temps límit d'inactivitat abans de tancar la connexió,0,5,,segons

View File

@@ -1,2 +0,0 @@
autologin=Login Modus,1,0-Eingabeaufforderung für Benutzername und Passwort,1-Open-Root-Shell
timeout=Leerlaufzeit vor Beenden der Verbindung,0,5,,Sekunden

View File

@@ -1,2 +0,0 @@
autologin=Mode de connexion,1,0-Demander le nom d'utilisateur et le mot de passe,1-Ouvrir le shell racine
timeout=Délai d'inactivité avant la fermeture de la connexion,0,5,,secondes

View File

@@ -1,2 +0,0 @@
autologin=Mod Log masuk,1,0-Minta nama pengguna dan kata laluan,1-Buka shell root
timeout=masa terbiar tamat sebelum sambungan ditutup,0,5,,saat

View File

@@ -1,2 +0,0 @@
autologin=Inlog mode,1,0-Prompt voor gebruikersnaam en wachtwoord,1-Open root shell
timeout=Inactieve wachttijd voordat verbinding word verbroken,0,5,,seconden

View File

@@ -1,2 +0,0 @@
autologin=Innloggingsmetode,1,0-Be om brukernavn og passord,1-Åpne root-skall
timeout=Tid uten aktivitet før forbindelsen lukkes,0,5,,sekunder

View File

@@ -1,2 +0,0 @@
autologin=Tryb logowania,1,0-Poproś o login i hasło,1-Otwórz root shell
timeout=Czas oczekiwania w trybie idle przed zamknięciem połączenia,0,5,,sekund

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

View File

@@ -1,111 +0,0 @@
#!/usr/local/bin/perl
# Start the Ajaxterm webserver on a random port, then print an iframe for
# a URL that proxies to it
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
BEGIN { push(@INC, ".."); };
use WebminCore;
use Socket;
our(%text, %config, %gconfig);
our $module_root_directory;
our $module_name;
&init_config();
&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
# Check for python
my $python = &has_command("python2") || &has_command("python");
if (!$python) {
&ui_print_endpage(&text('index_epython', "<tt>python</tt>"));
}
# Pick a free port
my %miniserv;
&get_miniserv_config(\%miniserv);
my $port = $miniserv{'port'} + 1;
my $proto = getprotobyname('tcp');
socket(TEST, PF_INET, SOCK_STREAM, $proto) ||
&error("Socket failed : $!");
setsockopt(TEST, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
while(1) {
last if (bind(TEST, sockaddr_in($port, INADDR_ANY)));
$port++;
}
close(TEST);
# Run the Ajaxterm webserver
my $pid = fork();
if (!$pid) {
chdir("$module_root_directory/ajaxterm");
my $logfile = $ENV{'WEBMIN_VAR'}.'/ajaxterm.log';
undef(*STDIN); untie(*STDIN); open(STDIN, "<", "/dev/null");
undef(*STDOUT); untie(*STDOUT); open(STDOUT, ">", $logfile);
undef(*STDERR); untie(*STDERR); open(STDERR, ">", $logfile);
my $shell = &has_command("bash") ||
&has_command("sh") || "/bin/sh";
my @uinfo = getpwnam("root");
my $home = $uinfo[7] || "/";
$shell = "$shell -c ".quotemeta("cd '$home' ; exec $shell");
exec($python, "ajaxterm.py", "--port", $port, "--log",
$config{'autologin'} ? ("--command", $shell) : ( ));
exit(1);
}
# Wait for it to come up
my $try = 0;
no strict "subs"; # TEST2 is weird. I dunno how to make it lexical without breaking.
no warnings;
while(1) {
my $err;
&open_socket("localhost", $port, TEST2, \$err);
last if (!$err);
$try++;
if ($try > 30) {
&error(&text('index_estart', 30, $port));
}
sleep(1);
}
close(TEST2);
use strict "subs";
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
# Show the iframe
print "<center>\n";
print "<iframe src=@{[&get_webprefix()]}/$module_name/proxy.cgi/$port/ ",
"width=700 height=500 frameborder=0></iframe><br>\n";
print "<input type=button onClick='window.open(\"proxy.cgi/$port/\", \"ajaxterm\", \"toolbar=no,menubar=no,scrollbars=no,resizable=yes,width=700,height=500\")' value='$text{'index_popup'}'><p>\n";
print &text('index_credits', 'http://antony.lesuisse.org/software/ajaxterm/'),
"<p>\n";
print "</center>\n";
# Fork process that checks for inactivity
if (!fork()) {
untie(*STDIN); close(STDIN);
untie(*STDOUT); close(STDOUT);
untie(*STDERR); close(STDERR);
my $statfile = "$ENV{'WEBMIN_VAR'}/ajaxterm/$port";
while(1) {
my @st = stat($statfile);
if (@st && time() - $st[9] > $config{'timeout'}) {
# No activity
last;
}
if (!kill(0, $pid)) {
# Dead
last;
}
sleep(10);
}
unlink($statfile);
kill('KILL', $pid);
exit(0);
}
&ui_print_footer("/", $text{'index'});

View File

@@ -1,5 +0,0 @@
index_title=Teksaanmelding
index_epython=Ajaxterm vereis dat Python moet loop, maar die $1 -opdrag is nie op u stelsel gevind nie.
index_estart=Ajaxterm het na $1 sekondes nie verbindings op poort $2 begin aanvaar nie.
index_popup=Maak in 'n aparte venster oop.
index_credits=Gebruik kode van <a href='$1' target=_new>Ajaxterm</a> deur Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=دخول النص
index_epython=يتطلب Ajaxterm تشغيل Python ، ولكن لم يتم العثور على أمر $1 على النظام الخاص بك.
index_estart=لم يبدأ Ajaxterm بقبول الاتصالات على المنفذ $2 بعد $1 ثانية.
index_popup=فتح في نافذة منفصلة ..
index_credits=استخدام كود من <a href='$1' target=_new>Ajaxterm</a> بواسطة Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Уваход тэксту
index_epython=Ajaxterm патрабуе запуску Python, але каманда $1 не знойдзена ў вашай сістэме.
index_estart=Ajaxterm не пачаў прымаць злучэнні на порт $2 праз $1 секунду.
index_popup=Адкрыць у асобным акне ..
index_credits=Выкарыстоўвае код <a href='$1' target=_new>Ajaxterm</a> Энтані Лесюа.

View File

@@ -1,5 +0,0 @@
index_title=Text Login
index_epython=Ajaxterm изисква Python да стартира, но командата $1 не беше намерена във вашата система.
index_estart=Ajaxterm не започна да приема връзки на порт $2 след $1 секунди.
index_popup=Отваряне в отделен прозорец ..
index_credits=Използва код от <a href='$1' target=_new>Ajaxterm</a> от Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Entrada en Mode Text
index_epython=Ajaxterm necessita Python per executar-se, però no s'ha trobat l'ordre $1 al sistema.
index_estart=Ajaxterm no ha començat a acceptar connexions al port $2 passats $1 segons.
index_popup=Obre en una finestra nova...
index_credits=Utilitza codi d'<a href='$1' target=_new>Ajaxterm</a> d'Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Textové přihlášení
index_epython=Ajaxterm vyžaduje spuštění Pythonu, ale příkaz $1 nebyl ve vašem systému nalezen.
index_estart=Ajaxterm nepřijal připojení na portu $2 po $1 sekundách.
index_popup=Otevřít v samostatném okně.
index_credits=Používá kód od <a href='$1' target=_new>Ajaxterm</a> od Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Tekst login
index_epython=Ajaxterm kræver, at Python kører, men kommandoen $1 blev ikke fundet på dit system.
index_estart=Ajaxterm begyndte ikke at acceptere forbindelser på port $2 efter $1 sekunder.
index_popup=Åbn i separat vindue ..
index_credits=Bruger kode fra <a href='$1' target=_new>Ajaxterm</a> af Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Text Login
index_epython=Ajaxterm benötigt Python zum ausführen, aber der $1 Befehl wurde nicht auf Ihrem System gefunden.
index_estart=Ajaxterm akzeptiert keine Verbindungen auf Port $2 nach $1 Sekunden.
index_popup=Öffnet ein separates Fenster ..
index_credits=Verwendet Code von <a href='$1' target=_new>Ajaxterm</a> von Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Σύνδεση Τερματικού
index_epython=Το Ajaxterm χρειάζεται Python για να εκτελεστεί, αλλά η εντολή $1 δεν βρέθηκε στο σύστημά σας.
index_estart=το Ajaxterm δεν ξεκίνησε να δέχεται συνδέσεις στη θύρα $2 μετά από $1 δευτερόλεπτα.
index_popup=Άνοιγμα σε ξεχωριστό παράθυρο ..
index_credits=Χρησιμοποιεί κώδικα από το <a href='$1' target=_new>Ajaxterm</a> του Antony Lesuisse.

View File

@@ -1,6 +0,0 @@
index_title=Text Login
index_epython=Ajaxterm requires Python to run, but the $1 command was not found on your system.
index_estart=Ajaxterm did not start accepting connections on port $2 after $1 seconds.
index_popup=Open in separate window ..
index_credits=Uses code from <a href='$1' target=_new>Ajaxterm</a> by Antony Lesuisse.
__norefs=1

View File

@@ -1,5 +0,0 @@
index_title=Inicio de sesión de texto
index_epython=Ajaxterm requiere que Python se ejecute, pero el comando $1 no se encontró en su sistema.
index_estart=Ajaxterm no comenzó a aceptar conexiones en el puerto $2 después de $1 segundos.
index_popup=Abrir en una ventana separada.
index_credits=Utiliza código de <a href='$1' target=_new>Ajaxterm</a> por Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Testu saioa
index_epython=Ajaxterm-ek Python exekutatu behar du baina $1 komandoa ez da zure sisteman aurkitu.
index_estart=Ajaxterm-ek ez du $1 segundoko konexioak onartzen $1 segundo ondoren.
index_popup=Ireki beste leiho batean ..
index_credits=Antony Lesuisse-k <a href='$1' target=_new>Ajaxterm</a>-ren kodea erabiltzen du.

View File

@@ -1,5 +0,0 @@
index_title=ورود به متن
index_epython=Ajaxterm به اجرای پایتون نیاز دارد ، اما دستور$1 در سیستم شما یافت نشد.
index_estart=Ajaxterm پس از$1 ثانیه شروع به پذیرش اتصالات در پورت $2 نکرد.
index_popup=در پنجره جداگانه باز شود ..
index_credits=از کد <a href='$1' target=_new>Ajaxterm</a> توسط آنتونی لزوسه استفاده می کند.

View File

@@ -1,5 +0,0 @@
index_title=Sisäänkirjautuminen
index_epython=Ajaxterm vaatii Pythonin suorittamista, mutta komentoa $1 ei löydy järjestelmästäsi.
index_estart=Ajaxterm ei alkanut hyväksyä yhteyksiä porttiin $2 $1 sekunnin kuluttua.
index_popup=Avaa erillisessä ikkunassa ..
index_credits=Käyttää Antony Lesuisse'n <a href='$1' target=_new>Ajaxterm</a> -koodia.

View File

@@ -1,5 +0,0 @@
index_title=Connexion texte
index_epython=Ajaxterm nécessite Python pour s'exécuter, mais la commande $1 est introuvable sur votre système.
index_estart=Ajaxterm n'a pas commencé à accepter les connexions sur le port $2 après $1 secondes.
index_popup=Ouvrir dans une fenêtre séparée ..
index_credits=Utilise le code de <a href='$1' target=_new>Ajaxterm</a> par Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=כניסה לטקסט
index_epython=Ajaxterm דורש ש- Python יפעל, אך הפקודה $1 לא נמצאה במערכת שלך.
index_estart=Ajaxterm לא התחיל לקבל חיבורים ביציאה $2 אחרי $1 שניות.
index_popup=נפתח בחלון נפרד ..
index_credits=משתמש בקוד מאת <a href='$1' target=_new>Ajaxterm</a> מאת אנטוני לסויס.

View File

@@ -1,5 +0,0 @@
index_title=Prijava teksta
index_epython=Ajaxterm zahtijeva pokretanje Pythona, ali naredba $1 nije pronađena u vašem sustavu.
index_estart=Ajaxterm nije počeo prihvaćati veze na priključku $2 nakon $1 sekunde.
index_popup=Otvori u zasebnom prozoru ..
index_credits=Koristi kôd iz <a href='$1' target=_new>Ajaxterm</a> autora Antonija Lesuissea.

View File

@@ -1,5 +0,0 @@
index_title=Text Login
index_epython=Ajaxterm requires Python to run, but the $1 command was not found on your system.
index_estart=Ajaxterm did not start accepting connections on port $2 after $1 seconds.
index_popup=Open in separate window ..
index_credits=Uses code from <a href='$1' target=_new>Ajaxterm</a> by Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Accesso al testo
index_epython=Ajaxterm richiede l'esecuzione di Python, ma il comando $1 non è stato trovato sul tuo sistema.
index_estart=Ajaxterm non ha iniziato ad accettare connessioni sulla porta $2 dopo $1 secondi.
index_popup=Apri in una finestra separata ..
index_credits=Utilizza il codice di <a href='$1' target=_new>Ajaxterm</a> di Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=テキストログイン
index_epython=Ajaxtermを実行するにはPythonが必要ですが、システムで $1コマンドが見つかりませんでした。
index_estart=Ajaxtermは、 $1秒後にポート $2で接続の受け入れを開始しませんでした。
index_popup=別のウィンドウで開く ..
index_credits=Antony Lesuisseによる<a href='$1' target=_new>Ajaxterm</a>のコードを使用します。

View File

@@ -1,5 +0,0 @@
index_title=텍스트 로그인
index_epython=Ajaxterm에는 Python을 실행해야하지만 시스템에서 $1 명령을 찾을 수 없습니다.
index_estart=$1 초 후에 Ajaxterm이 포트 $2 에서 연결을 수락하지 않았습니다.
index_popup=별도의 창에서 열기 ..
index_credits=Antony Lesuisse의 <a href='$1' target=_new>Ajaxterm</a> 코드를 사용합니다.

View File

@@ -1,5 +0,0 @@
index_title=Teksto prisijungimas
index_epython=„Ajaxterm“ reikia paleisti „Python“, tačiau komanda $1 nerasta jūsų sistemoje.
index_estart=„Ajaxterm“ nepradėjo priimti jungčių prie $2 prievado po $1 sekundės.
index_popup=Atidaryti atskirame lange ..
index_credits=Naudojamas kodas iš <a href='$1' target=_new>„Ajaxterm“</a>, kurį sukūrė Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Teksta pieteikšanās
index_epython=Ajaxterm prasa Python palaist, bet komanda $1 jūsu sistēmā netika atrasta.
index_estart=Ajaxterm nesāka pieņemt savienojumus $2 ostā pēc $1 sekundēm.
index_popup=Atvērt atsevišķā logā ..
index_credits=Izmanto kodu no <a href='$1' target=_new>Ajaxterm</a>, kuru izveidojis Antonijs Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Log masuk Teks
index_epython=Ajaxterm memerlukan Python untuk menjalankan, tetapi arahan $1 tidak dijumpai pada sistem anda.
index_estart=Ajaxterm tidak bermula menerima sambungan pada port $2 selepas $1 saat.
index_popup=Buka dalam tetingkap berasingan ..
index_credits=Menggunakan kod dari <a href='$1' target=_new>Ajaxterm</a> oleh Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Id-dħul tat-test
index_epython=Ajaxterm jirrikjedi li Python taħdem, iżda l-kmand $1 ma nstabx fis-sistema tiegħek.
index_estart=Ajaxterm ma bediex jaċċetta konnessjonijiet fuq il-port $2 wara $1 sekonda.
index_popup=Iftaħ f'tieqa separata ..
index_credits=Juża kodiċi minn <a href='$1' target=_new>Ajaxterm</a> minn Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Tekst Inlog
index_epython=Ajaxterm heeft Python nodig om te werken, echter de $1 opdracht is niet gevonden op uw systeem.
index_estart=Ajaxterm heeft geen verbindingen geaccepteerd op poort $2 na $1 seconden.
index_popup=Openen in een aparte window ..
index_credits=Gebruik de code van <a href='$1' target=_new>Ajaxterm</a> van Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Tekst-terminal
index_epython=Ajaxterm krever Python for å kjøre, men jeg fant ikke kommandoen $1 på systemet ditt.
index_estart=Ajaxterm startet ikke med å godta tilkoblinger på port $2 etter $1 sekunder.
index_popup=Åpne i nytt vindu ..
index_credits=Bruker kode fra <a href='$1' target=_new>Ajaxterm</a> av Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Tryb tekstowy (konsola)
index_epython=Ajaxterm wymaga uruchomienia Python, ale komenda $1 nie została znaleziona w systemie.
index_estart=Ajaxterm nie rozpoczął przyjmowania połączenia na porcie $2 przez $1 sekund.
index_popup=Otwórz w oddzielnym oknie ..
index_credits=Wykorzystywany jest kod z <a href='$1' target=_new> Ajaxterm </ a> napisany przez Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Entrada de texto
index_epython=O Ajaxterm requer que o Python seja executado, mas o comando $1 não foi encontrado no seu sistema.
index_estart=O Ajaxterm não começou a aceitar conexões na porta $2 após $1 segundos.
index_popup=Abrir em janela separada.
index_credits=Usa o código de <a href='$1' target=_new>Ajaxterm</a> de Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Entrada de texto
index_epython=O Ajaxterm requer que o Python seja executado, mas o comando $1 não foi encontrado no seu sistema.
index_estart=O Ajaxterm não começou a aceitar conexões na porta $2 após $1 segundos.
index_popup=Abrir em janela separada.
index_credits=Usa o código de <a href='$1' target=_new>Ajaxterm</a> de Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Logare text
index_epython=Ajaxterm necesită rularea Python, dar comanda $1 nu a fost găsită în sistemul dvs.
index_estart=Ajaxterm nu a început să accepte conexiuni pe portul 2 după $1 secunde.
index_popup=Deschideți în fereastră separată ..
index_credits=Utilizează codul de la <a href='$1' target=_new>Ajaxterm</a> de Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Текст Логин
index_epython=Ajaxterm требует запуска Python, но команда $1 не найдена в вашей системе.
index_estart=Ajaxterm не начал принимать соединения через порт $2 после $1 секунды.
index_popup=Открыть в отдельном окне.
index_credits=Использует код от <a href='$1' target=_new>Ajaxterm</a> Энтони Лесюссе.

View File

@@ -1,5 +0,0 @@
index_title=Textové prihlásenie
index_epython=Ajaxterm vyžaduje spustenie Pythonu, ale príkaz $1 nebol vo vašom systéme nájdený.
index_estart=Ajaxterm nezačal prijímať pripojenia na porte $2 po $1 sekundách.
index_popup=Otvoriť v samostatnom okne.
index_credits=Používa kód od <a href='$1' target=_new>Ajaxterm</a> od Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Prijava v besedilo
index_epython=Ajaxterm zahteva zagon Pythona, vendar ukaza $1 v vašem sistemu ni bilo mogoče najti.
index_estart=Ajaxterm ni začel sprejemati povezav na vratih $2 po $1 sekundi.
index_popup=Odpri se v ločenem oknu ..
index_credits=Uporablja kodo <a href='$1' target=_new>Ajaxterm</a> avtorja Antonija Lesuissea.

View File

@@ -1,5 +0,0 @@
index_title=Textinloggning
index_epython=Ajaxterm kräver att Python körs, men kommandot $1 hittades inte på ditt system.
index_estart=Ajaxterm började inte acceptera anslutningar på port $2 efter $1 sekunder.
index_popup=Öppna i separat fönster ..
index_credits=Använder kod från <a href='$1' target=_new>Ajaxterm</a> av Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=เข้าสู่ระบบข้อความ
index_epython=Ajaxterm ต้องการ Python เพื่อให้ทำงานได้ แต่ไม่พบคำสั่ง $1 ในระบบของคุณ
index_estart=Ajaxterm ไม่ได้เริ่มยอมรับการเชื่อมต่อบนพอร์ต $2 หลังจาก $1 วินาที
index_popup=เปิดในหน้าต่างแยกต่างหาก ..
index_credits=ใช้รหัสจาก <a href='$1' target=_new>Ajaxterm</a> โดย Antony Lesuisse

View File

@@ -1,5 +0,0 @@
index_title=Metin Girişi
index_epython=Ajaxterm, Python'un çalışmasını gerektirir, ancak $1 komutu sisteminizde bulunamadı.
index_estart=Ajaxterm, $1 saniye sonra $2 bağlantı noktasındaki bağlantıları kabul etmeye başlamadı.
index_popup=Ayrı pencerede aç ..
index_credits=Antony Lesuisse tarafından <a href='$1' target=_new>Ajaxterm</a> 'dan kod kullanır.

View File

@@ -1,5 +0,0 @@
index_title=Текстовий вхід
index_epython=Ajaxterm вимагає запуску Python, але команда $1 у вашій системі не знайдена.
index_estart=Ajaxterm не почав приймати з'єднання через порт $2 через $1 секунду.
index_popup=Відкрити в окремому вікні ..
index_credits=Використовує код з <a href='$1' target=_new>Ajaxterm</a> від Антоні Лесюа.

View File

@@ -1,5 +0,0 @@
index_title=متن لاگ ان
index_epython=ایجیکسٹرم کو ازگر چلانے کے لئے درکار ہے ، لیکن آپ کے سسٹم پر$1 کمانڈ نہیں ملا۔
index_estart=ایجیکسٹرم نے پورٹ$2 پر$1 سیکنڈ کے بعد کنکشن قبول کرنا شروع نہیں کیا۔
index_popup=علیحدہ ونڈو میں کھولیں ..
index_credits=Uses code from <a href='$1' target=_new>Ajaxterm</a> by Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=Đăng nhập văn bản
index_epython=Ajaxterm yêu cầu Python chạy, nhưng không tìm thấy lệnh $1 trên hệ thống của bạn.
index_estart=Ajaxterm đã không bắt đầu chấp nhận kết nối trên cổng $2 sau $1 giây.
index_popup=Mở trong cửa sổ riêng biệt ..
index_credits=Sử dụng mã từ <a href='$1' target=_new>Ajaxterm</a> của Antony Lesuisse.

View File

@@ -1,5 +0,0 @@
index_title=文字登入
index_epython=Ajaxterm需要运行Python但在系统上找不到 $1命令。
index_estart=$1秒后Ajaxterm没有开始在端口 $2上接受连接。
index_popup=在单独的窗口中打开 ..
index_credits=使用Antony Lesuisse的<a href='$1' target=_new>Ajaxterm</a>中的代码。

View File

@@ -1,5 +0,0 @@
index_title=文字登入
index_epython=Ajaxterm需要運行Python但在系統上找不到 $1命令。
index_estart=$1秒後Ajaxterm沒有開始在端口 $2上接受連接。
index_popup=在單獨的窗口中打開 ..
index_credits=使用Antony Lesuisse的<a href='$1' target=_new>Ajaxterm</a>中的代碼。

View File

@@ -1,3 +0,0 @@
desc=Text Login
name=ajaxterm
longdesc=Access the shell on your system without the need for a separate SSH client, using Ajaxterm

View File

@@ -1,3 +0,0 @@
longdesc_af=Toegang tot die skulp op u stelsel sonder die gebruik van Ajaxterm vir 'n aparte SSH-kliënt
name_af=ajaxterm
desc_af=Teksaanmelding

View File

@@ -1,2 +0,0 @@
desc_ar=دخول النص
longdesc_ar=يمكنك الوصول إلى الشل على النظام الخاص بك دون الحاجة إلى عميل SSH منفصل، وذلك باستخدام Ajaxterm

View File

@@ -1 +0,0 @@
name_ar=ajaxterm

View File

@@ -1,3 +0,0 @@
longdesc_be=Доступ да абалонкі вашай сістэмы без неабходнасці асобнага кліента SSH, выкарыстоўваючы Ajaxterm
desc_be=Уваход тэксту
name_be=аякстэрм

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