Compare commits

..

231 Commits
1.994 ... 1.997

Author SHA1 Message Date
iliajie
a6cb4c8041 Update CHANGELOG.md 2022-07-13 15:50:20 +03:00
Jamie Cameron
102364858c New version bump 2022-07-12 20:46:54 -07:00
iliajie
bd2fe56af8 Fix to remove /var/webmin too on uninstall 2022-07-13 01:52:54 +03:00
iliajie
75705b4788 Fix to stop service before removing 2022-07-13 01:05:58 +03:00
iliajie
1d50fc1218 Fix text 2022-07-13 00:39:21 +03:00
Jamie Cameron
559f866f40 Merge pull request #1687 from webmin/dev/uninstall-usermin-systemd-service
Fix to uninstall `systemd` Usermin unit properly
2022-07-12 14:33:51 -07:00
iliajie
f2586084b6 Fix to uninstall systemd Usermin unit properly 2022-07-13 00:30:11 +03:00
Jamie Cameron
16dfea1f98 Merge pull request #1686 from webmin/dev/fix-restarts-from-1.994
Fix restarts from 1.994 (final)
2022-07-12 12:52:06 -07:00
iliajie
6e347b00e1 Fix formatting 2022-07-12 21:42:44 +03:00
iliajie
ef9c4b80b2 Fix typo exit -> echo 2022-07-12 21:41:53 +03:00
iliajie
529df9ea9b Fix restarts for real 2022-07-12 21:39:14 +03:00
Jamie Cameron
d8e91f731e Command to show in the UI should not be escaped, but the actual command must be 2022-07-10 16:59:09 -07:00
Jamie Cameron
13f7bf9621 Command to show in the UI should not be escaped, but the actual command must be 2022-07-10 16:51:57 -07:00
iliajie
48bb329a60 Update translations 2022-07-11 02:37:53 +03:00
iliajie
d792d4ee7c Fix to use even shorter and later we'll use from input 2022-07-09 21:52:22 +03:00
iliajie
bb357fb2d1 Fix not to make string length that large not to break themes 2022-07-09 21:43:09 +03:00
iliajie
5200f5bc09 Add truncated string length to be configurable 2022-07-09 21:14:05 +03:00
iliajie
a951570ab9 Fix truncated string length 2022-07-09 20:36:22 +03:00
Ilia
4f2ee79dde Merge pull request #1683 from unknown10777/master
Delete machine translations
2022-07-08 22:15:57 +03:00
unknown10777
2aa7178bea Update module.info.zh 2022-07-09 03:04:05 +08:00
unknown10777
4fe7587d17 Delete module.info.zh.auto 2022-07-09 03:01:05 +08:00
unknown10777
764295eb76 Delete module.info.zh.auto 2022-07-09 02:59:45 +08:00
iliajie
760d4392ed Print bottom update button only if not in viewport https://github.com/webmin/authentic-theme/issues/1605#issue-1298478251 2022-07-08 12:31:26 +03:00
Jamie Cameron
c648f1225b Merge pull request #1682 from webmin/dev/fix-webmin-restarts-installed-from-source
Fix Webmin restarts when installed from source
2022-07-07 15:03:30 -07:00
iliajie
18e02fc163 Run pre and post install 2022-07-07 17:44:48 +03:00
iliajie
ceb3f4b669 Fix earlier introduced bugs for Solaris systems 2022-07-07 17:44:20 +03:00
iliajie
3bb6b0b992 Fix equality operator that fails in sh (works in bash) 2022-07-07 13:52:56 +03:00
Jamie Cameron
f3be18aa28 Show real PVs for raid LVs 2022-07-05 13:38:37 -07:00
Jamie Cameron
29c036da6e Show number of mirrors 2022-07-05 13:25:37 -07:00
Jamie Cameron
05f0b11c2f Volume counts don't include the parity disk 2022-07-05 12:52:47 -07:00
Jamie Cameron
c86947fd72 Merge branch 'master' of github.com:webmin/webmin 2022-07-05 12:28:26 -07:00
Jamie Cameron
79ea36b1fc Type needs to be striped for raid0 2022-07-05 12:28:16 -07:00
iliajie
81da9fdf6f Fix to use latest release to propose download 2022-07-05 21:45:14 +03:00
iliajie
8377a50a1a Add releases assets link for download 2022-07-05 16:41:35 +03:00
iliajie
2b87fc925a Fix makedebian.pl for Usermin 2022-07-05 03:07:05 +03:00
Jamie Cameron
9c0d35238b Fix a perl error 2022-07-03 19:04:05 -07:00
Jamie Cameron
546ddeb227 Merge pull request #1677 from webmin/reprise/fix-webmin-restarts-on-upgrades
Reprise: Fix Webmin restarts on upgrades
2022-07-03 15:56:31 -07:00
iliajie
6f5bb3947f Fix not to call SIGSTOP and SIGCONT for now 2022-07-04 01:00:12 +03:00
iliajie
37ac053942 Rename to README-zh.md ; fix the link 2022-07-04 00:40:27 +03:00
Jamie Cameron
5310d92d72 Merge branch 'master' of github.com:webmin/webmin 2022-07-03 14:36:11 -07:00
Jamie Cameron
babc9eac60 Add fallback in case PATH is somehow not set 2022-07-03 14:35:37 -07:00
iliajie
4b0303b6ae Update link to a new README-zh-cn.md file 2022-07-04 00:35:36 +03:00
iliajie
f1baf00879 Update README.md contributors 2022-07-04 00:30:02 +03:00
iliajie
d78a9a60c5 Revert "Update README.md contributors"
This reverts commit d3691a433f.
2022-07-04 00:29:19 +03:00
iliajie
d3691a433f Update README.md contributors 2022-07-04 00:28:00 +03:00
Ilia
356f707750 Merge pull request #1678 from unknown10777/master
Adds few zh-cn translations and a zh-cn version of readme.
2022-07-04 00:23:52 +03:00
unknown10777
db56a1caef Add entry to zh-cn version readme 2022-07-04 05:06:12 +08:00
unknown10777
ea01d751db localized translation 2022-07-04 05:04:09 +08:00
unknown10777
bbd430d0f1 Rename zh.auto to zh 2022-07-04 04:01:32 +08:00
unknown10777
6e2f8fca62 Update zh.auto 2022-07-04 04:01:07 +08:00
unknown10777
3100f87aa8 Delete module.info.zh.auto 2022-07-04 03:52:18 +08:00
unknown10777
e0bd9cd6fb Update module.info.zh 2022-07-04 03:51:56 +08:00
unknown10777
f3d5f01fcf Update module.info.zh 2022-07-04 03:50:38 +08:00
unknown10777
c38c46a38b Update zh 2022-07-04 03:35:51 +08:00
unknown10777
9e36ec65f1 Correct confusing translations
I apologize for confusing translations
2022-07-04 03:30:34 +08:00
unknown10777
37f799ecc8 Update zh
Iam sorry that some of them are confusing in Webmin
2022-07-04 03:08:38 +08:00
iliajie
7376c73a08 Fix setup.sh 2022-07-03 12:56:58 +03:00
iliajie
5dd812c47a Fix setup.sh 2022-07-03 12:56:50 +03:00
iliajie
b6660b1251 Fix makerpm.pl 2022-07-03 12:56:15 +03:00
iliajie
b96a499100 Fix makedebian.pl 2022-07-03 12:55:59 +03:00
iliajie
63a2e3e8bc Revert "Add kill command fall-back (just in case)"
This reverts commit 6a68cc8149.
2022-07-03 02:19:36 +03:00
Jamie Cameron
6b470c0290 Merge branch 'master' of github.com:webmin/webmin 2022-07-02 15:04:36 -07:00
Jamie Cameron
0872ecbfcf Log something on shutdown 2022-07-02 15:04:29 -07:00
iliajie
6a68cc8149 Add kill command fall-back (just in case) 2022-07-03 00:03:55 +03:00
iliajie
5f97294c50 Merge remote-tracking branch 'origin/master' 2022-07-02 23:51:30 +03:00
iliajie
56a7221290 Fix to check on kill command for systemd unit file 2022-07-02 23:51:12 +03:00
Jamie Cameron
349f02ad34 Devel version bump 2022-07-02 13:47:45 -07:00
iliajie
673b00f4ad Fix reload command 2022-07-02 23:44:54 +03:00
Jamie Cameron
612293154d Use actual path to the kill command 2022-07-02 13:38:31 -07:00
Jamie Cameron
2136fea0f2 Use actual path to the kill command 2022-07-02 13:37:42 -07:00
iliajie
9656298c85 Revert "Fix no /usr/bin/kill command too"
This reverts commit af177a69ba.
2022-07-02 23:35:21 +03:00
Jamie Cameron
9bbbf04a9e Use the correct path to the kill command 2022-07-02 13:33:34 -07:00
iliajie
af177a69ba Fix no /usr/bin/kill command too 2022-07-02 23:31:56 +03:00
iliajie
46365302f5 Merge branch 'master' of github.com:webmin/webmin 2022-07-02 23:17:47 +03:00
iliajie
f73a595d91 Fix key size for miniserv.pem 2022-07-02 23:15:01 +03:00
Jamie Cameron
e4b4fbcc6a Some systems (like Ubuntu 18) don't have the kill command in /usr/bin 2022-07-02 13:14:56 -07:00
Jamie Cameron
02e0d43f4e Don't stop webmin in setup.sh when it's already stopped beforehand 2022-07-02 12:31:20 -07:00
iliajie
e2f273d887 Fix webmin sub-commands are warnings friendly 2022-07-02 15:52:41 +03:00
Jamie Cameron
85553b8136 Merge branch 'master' of github.com:webmin/webmin 2022-07-01 21:59:57 -07:00
Jamie Cameron
e01579dfd1 javascript: can use different HTML entities 2022-07-01 21:59:10 -07:00
iliajie
3137198008 Fix not to print redundant format (can be seen from a filename) 2022-06-30 23:35:28 +03:00
iliajie
6b45fdb91a Fix to remove pointless alias sub-commands 2022-06-30 13:37:21 +03:00
iliajie
d0ed6f944e Fix pointless warnings flooding error log 2022-06-30 13:08:38 +03:00
iliajie
ff5d73b12c Fix seperated -> separated
https://github.com/webmin/webmin/pull/1674
2022-06-29 16:10:07 +03:00
Ilia
ff588f300f Merge pull request #1674 from luzpaz/typos
Fix user and non-user facing typos
2022-06-29 16:07:27 +03:00
iliajie
bbc46bbf09 Fix password format detection on FreeBSD systems 2022-06-29 15:26:09 +03:00
luz paz
3e6142f098 Fix user and non-user facing typos 2022-06-29 07:17:11 -04:00
Jamie Cameron
033189dc42 Handle case where substitution doesn't exist 2022-06-27 23:03:29 -07:00
Jamie Cameron
6e8351b0ed Use standard functions 2022-06-27 22:44:40 -07:00
Jamie Cameron
1095ef4308 Use any kind of bootup action, not just an init script 2022-06-26 14:13:40 -07:00
iliajie
945a8ac212 Fix to revert Dovecot start/stop commands to use init 2022-06-27 00:04:31 +03:00
iliajie
4123d03922 Fix to use init script config name 2022-06-26 23:29:37 +03:00
iliajie
88aadc1c4a Revert "Fix to use reload over restart when possible"
This reverts commit c41c8119e3.
2022-06-25 15:50:16 +03:00
iliajie
404310f230 Fix styling 2022-06-23 23:46:34 +03:00
Ilia
521ede5a3b Update CHANGELOG.md (1.995) 2022-06-23 12:38:31 +03:00
Ilia
1805d78e05 Fix Cron messages styling 2022-06-23 01:55:47 +03:00
Ilia
737a51de57 Fix not to display links when changing bind 2022-06-23 01:15:43 +03:00
Ilia
18e2a871e7 Fix missing restart command 2022-06-22 22:10:40 +03:00
Ilia
fdc9e6e2d8 Fix to trim last empty space when present too (for comma) 2022-06-22 20:04:46 +03:00
Ilia
c28b994534 Fix to check if there are results for proper comma position 2022-06-22 19:47:24 +03:00
Ilia
d918c517bd Update CHANGELOG.md ; merge and drop old CHANGELOG 2022-06-22 00:49:31 +03:00
Ilia
c0acf5685a No extra line breaks 2022-06-21 17:24:57 +03:00
Jamie Cameron
71db92eb6e Merge branch 'master' of github.com:webmin/webmin 2022-06-20 08:42:59 -07:00
Jamie Cameron
d0e0a1c193 Always update the status file at 0% 2022-06-20 08:42:30 -07:00
Ilia
0f6d15a408 Merge pull request #1671 from unknown10777/master
Added and corrected some translations
2022-06-19 22:33:17 +03:00
unknown10777
95d8b7af06 Modify and added some translations 2022-06-20 02:24:26 +08:00
unknown10777
588e25b7da Update zh 2022-06-20 02:23:24 +08:00
Jamie Cameron
a0e89e55a3 Merge branch 'master' of github.com:webmin/webmin 2022-06-18 23:56:46 -07:00
Jamie Cameron
e81916651b Set useful environment variables for pre and post scripts https://forum.virtualmin.com/t/backup-command-to-run-after-backup-script-problem/115454/22 2022-06-18 23:55:27 -07:00
Ilia
bb4e00df03 Fix to ignore initial release even if passed 2022-06-19 02:09:55 +03:00
Ilia
15834e406d Fix to pass only main version (without minor) 2022-06-19 01:48:57 +03:00
Jamie Cameron
dea6e79362 Merge pull request #1669 from webmin/dev/installation-password-hashing
Add support for `yescrypt` and `sha512` upon installation; fix other bug
2022-06-18 15:00:44 -07:00
Ilia
ecc8be2826 Fix not to add more digits
cd1ae41ad5 (commitcomment-76428145)
2022-06-19 00:23:18 +03:00
Ilia
a21626bd21 Fix salt length 2022-06-19 00:08:49 +03:00
Ilia
ebfb5dbae1 Fix to pass salt as a param
https://github.com/webmin/webmin/pull/1669#discussion_r901011310
2022-06-19 00:07:42 +03:00
Ilia
defa41f0b3 Fix indent
https://github.com/webmin/webmin/pull/1669#discussion_r901010274
2022-06-18 23:41:26 +03:00
Ilia
cd1ae41ad5 Fix to imporve randomness of the salt
https://github.com/webmin/webmin/pull/1669#discussion_r901011178
2022-06-18 23:35:55 +03:00
Ilia
5c7d31a1be Fix to rely on internal restarts/reloads
d357005cba (commitcomment-76425852)
2022-06-18 23:04:24 +03:00
Jamie Cameron
b5ce93bcac Add flag to force key re-generation https://github.com/virtualmin/virtualmin-gpl/issues/406 2022-06-18 12:47:11 -07:00
Jamie Cameron
005568c133 Merge branch 'master' of github.com:webmin/webmin 2022-06-18 11:04:26 -07:00
Jamie Cameron
1024adc6af Fix addition of --nofork arg 2022-06-18 11:03:59 -07:00
Ilia
1b78cf2656 Alerts vs text for filters 2022-06-18 11:55:32 +03:00
Jamie Cameron
5063d29ac8 When restarting, don't fork again 2022-06-17 15:54:44 -07:00
Ilia
38d35762c4 Fix to info alert 2022-06-17 23:07:07 +03:00
Ilia
a567dfd906 Fix typo 2022-06-17 21:06:29 +03:00
Ilia
cb1ec4ff1e Fix filter module messaging 2022-06-17 21:04:40 +03:00
Jamie Cameron
4075611f56 Merge branch 'master' of github.com:webmin/webmin 2022-06-15 22:27:32 -07:00
Jamie Cameron
61b95d6944 Escape untrusted path_info 2022-06-15 21:32:09 -07:00
Ilia
9d36b7c0e4 Fix to use API to check on command 2022-06-16 00:58:31 +03:00
Ilia
5c894525f1 Fix not to print passwords in terminal 2022-06-16 00:58:05 +03:00
Ilia
1993606809 Default to enable auto-detection of hashing format in setup.pl 2022-06-16 00:57:27 +03:00
Ilia
b0b0c11028 Add support for yescrypt and sha512 in setup.pl script 2022-06-16 00:56:50 +03:00
Ilia
4aa2154d42 Fix unix_crypt not to fail false positively 2022-06-16 00:45:16 +03:00
Ilia
e20ebc2da9 Default to enable auto-detection of hashing format in setup.sh 2022-06-15 23:30:27 +03:00
Ilia
e68b0a161c Add support for yescrypt and sha512 in setup.sh script 2022-06-15 23:29:12 +03:00
Ilia
9785382828 Fix support for contemporary salts 2022-06-15 23:27:04 +03:00
Ilia
6402eb9e9b Add stdout support for passwd sub-command based on system hash type 2022-06-15 19:57:54 +03:00
Ilia
f8758d663d Fix Usermin restart with systemd 2022-06-15 13:32:57 +03:00
Ilia
6c793a06f2 Fix not to print at line N when dying 2022-06-15 04:13:16 +03:00
Ilia
300c957a79 Merge pull request #1667 from webmin/dev/new-webmin-server-command
Add new `webmin server` command to control `miniserv`
2022-06-15 04:08:19 +03:00
Ilia
b25d2fe02f Add new webmin server command to control miniserv 2022-06-15 04:04:01 +03:00
Ilia
3862848b42 Fix reload script for systemd in /etc/webmin 2022-06-15 03:18:12 +03:00
Ilia
0b43242c44 Fix not to log to systemd while waiting 2022-06-15 01:33:48 +03:00
Ilia
70395aab02 Fix to solve Webmin systemd ongoing issues 2022-06-15 01:00:10 +03:00
Ilia
603b5029bc Add to support Restart= and RestartSec= for systemd 2022-06-15 00:06:34 +03:00
Ilia
9c35578d2e Add get_systemd_unit_pid API 2022-06-14 23:19:17 +03:00
Ilia
be1cac6b95 Unroll systemd reload for now 2022-06-14 21:56:10 +03:00
Ilia
eff6c31b7f Fix to actually perform a restart (not reload) 2022-06-14 15:21:14 +03:00
Ilia
6eeda08219 Fix Fail2Ban regex lazy over greedy; fix base styling 2022-06-14 15:00:50 +03:00
Ilia
722c2bf663 Fix how Usermin is restarted/reloaded 2022-06-14 02:02:10 +03:00
Ilia
ababa1ff72 Check if init module available before using 2022-06-14 01:24:39 +03:00
Ilia
6f61ab1373 Fix to remove OOM controls 2022-06-13 22:27:11 +03:00
Ilia
171840ff50 Fix to check if Webmin/Usermin systemd unit was setup
d357005cba (comments)
2022-06-13 11:58:14 +03:00
Ilia
7f71a4b8f8 Add missed patch to address XSS (in Usermin) 2022-06-13 11:38:58 +03:00
Ilia
3885ea27c2 Add separate AlmaLinux and Rocky Linux configs for Dovecot 2022-06-13 11:37:28 +03:00
Jamie Cameron
d357005cba Systemctl cannot be assumed to work just because it is installed, because the webmin action may not have been setup 2022-06-12 21:42:03 -07:00
Jamie Cameron
48e72094df New webmin version 2022-06-11 16:44:50 -07:00
Ilia
2dd1060263 Merge remote-tracking branch 'origin/master' 2022-06-11 17:57:24 +03:00
Ilia
7f541f90b9 Fix not to switch to your self 2022-06-11 17:57:06 +03:00
Jamie Cameron
7e8b940077 Merge branch 'master' of github.com:webmin/webmin 2022-06-10 22:49:49 -07:00
Jamie Cameron
24d1a476fb Assume NVME always supports SMART https://forum.virtualmin.com/t/nvme-to-usb-using-realtek-rtl9210b-and-smart-status-issue/115527/14 2022-06-10 22:49:08 -07:00
Ilia
5c3e239534 Fix to check if init module is available 2022-06-10 14:31:43 +03:00
Jamie Cameron
3ce2843b1d Merge pull request #1664 from webmin/dev/reload-over-restart
Fix to use reload over restart when possible
2022-06-09 17:46:14 -07:00
Ilia
c41c8119e3 Fix to use reload over restart when possible 2022-06-09 15:00:31 +03:00
Jamie Cameron
743bb67414 Fix check if firewalld is installed but not running 2022-06-08 21:30:43 -07:00
Jamie Cameron
e83ab6d83d Always auto-detect drive type https://forum.virtualmin.com/t/nvme-to-usb-using-realtek-rtl9210b-and-smart-status-issue/115527/4 2022-06-08 19:47:13 -07:00
Jamie Cameron
96c6a227e8 Move all sessions link to end of table 2022-06-08 19:21:54 -07:00
Jamie Cameron
0b1d2885d4 Move actions to a separate column 2022-06-08 19:20:30 -07:00
Jamie Cameron
7ec58b13d4 Merge pull request #1659 from webmin/dev/systemd-improvements
Dev/systemd improvements
2022-06-08 16:19:21 -07:00
Ilia
be8952db22 Merge remote-tracking branch 'origin/master' 2022-06-09 00:26:30 +03:00
Ilia
7df055e668 Fix BIND config for FreeBSD 12 2022-06-09 00:26:18 +03:00
Ilia
597682f9ae Fix to use absolute path 2022-06-08 20:42:36 +03:00
Jamie Cameron
d55fc76bf6 Include command in lsof result 2022-06-07 22:01:21 -07:00
Ilia
9daf01dfcb Reload miniserv using systemctl reload 2022-06-07 23:14:33 +03:00
Ilia
04ee7e9c08 Fix systemd webmin.service file; lower priority 2022-06-07 23:13:55 +03:00
Ilia
43052c7b50 One more space please 2022-06-07 10:58:19 +03:00
Ilia
c2d26f1c13 Fix bad typo 2022-06-07 10:54:13 +03:00
Ilia
36d051f12f Fix Recent Logins dashboard links 2022-06-07 10:51:00 +03:00
Ilia
f1f27bd334 No deepcopy; no pid no filename 2022-06-05 00:50:41 +03:00
Ilia
31895cd662 Revert "No deepcopy; no pid no filename"
This reverts commit eba4feb39b.

Wrong branch!
2022-06-05 00:47:56 +03:00
Ilia
eba4feb39b No deepcopy; no pid no filename 2022-06-05 00:47:07 +03:00
Jamie Cameron
b7468b611c Merge branch 'master' of github.com:webmin/webmin 2022-06-04 11:11:46 -07:00
Jamie Cameron
3e20c9436d Add config option for file to add new directives to https://github.com/virtualmin/virtualmin-gpl/issues/398 2022-06-04 11:08:50 -07:00
Jamie Cameron
1108601b07 Merge pull request #1655 from webmin/dev/new-journald-module
Add new System Logs Viewer (`logviewer`) module
2022-06-04 08:10:58 -07:00
Jamie Cameron
6be052cdc9 Merge pull request #1654 from webmin/dev/set-webmin-to-use-system-default-hashing
Add Webmin to support system default hashing format
2022-06-03 16:26:40 -07:00
Ilia
64bad303b5 Paths in unit service file must be configurable 2022-06-03 21:45:28 +03:00
Ilia
95dcc4cd88 Add API to return cached theme info 2022-06-03 16:38:56 +03:00
Ilia
6ca7489a46 Fix missing ExecReload command 2022-06-03 14:54:06 +03:00
Ilia
849c7613ad Yet, must be killed and will triger auto-restart 2022-06-03 14:38:01 +03:00
Ilia
517c43c39b Lower reload time but make sure it's not auto-restarted on force reload 2022-06-03 14:09:34 +03:00
Ilia
4d48f6ef72 Fix OOMPolicy for Webmin processes 2022-06-03 13:59:25 +03:00
Ilia
f662edb814 Fix miniserv restart with systemd 2022-06-03 13:14:06 +03:00
Ilia
9f6a651a79 Fix change bind port redirects 2022-06-03 04:44:58 +03:00
Ilia
299b747738 Disable subroutine redefined warnings to prevent log polution (2) 2022-06-02 15:30:02 +03:00
Ilia
d598c43371 Disable subroutine redefined warnings to prevent log polution 2022-06-02 15:28:14 +03:00
Ilia
bb39025bac Fix to check if init module is available
Users in Usermin cannot start/restart the service
2022-06-02 12:02:34 +03:00
Jamie Cameron
8985485aff Fix rocky linux label https://github.com/webmin/webmin/issues/1658 2022-05-31 21:06:29 -07:00
Ilia
56660dc4f2 Fix flag type 2022-05-31 23:18:35 +03:00
Ilia
e40bd76eba Fix filenames for AlmaLinux configs 2022-05-31 21:50:36 +03:00
Ilia
05bb47c28b Fix missing call to init module 2022-05-31 19:22:06 +03:00
Ilia
871a402868 Fix Dovecot start, stop and restart commands 2022-05-31 19:15:07 +03:00
Ilia
a9e35b7369 Add support to display syslog-ng logs 2022-05-31 15:50:50 +03:00
Jamie Cameron
974c705b33 Start of work on RAID LV creation 2022-05-30 17:14:25 -07:00
Jamie Cameron
e9e968b140 Merge pull request #1652 from webmin/dev/passwd-yescrypt
Add support for `yescrypt` password hashing scheme
2022-05-30 15:26:24 -07:00
Ilia
fd223e7933 Revert "Fix not to show as config option yescrypt when not supported"
This reverts commit f431aaafde.
2022-05-30 23:45:39 +03:00
Ilia
88c6e06c03 Add support to list and view all syslog logs 2022-05-30 15:53:37 +03:00
Ilia
d225a991e4 Fix label order 2022-05-30 13:50:55 +03:00
Ilia
b6877be1c1 Fix priority messages naming; fix sorting; fix display 2022-05-30 13:45:43 +03:00
Jamie Cameron
4bfe897054 Merge branch 'master' of github.com:webmin/webmin 2022-05-29 22:14:34 -07:00
Jamie Cameron
a966382709 Use ui_link instead of manually created hrefs 2022-05-29 22:12:13 -07:00
Ilia
f431aaafde Fix not to show as config option yescrypt when not supported 2022-05-30 01:35:39 +03:00
Ilia
3a7dda67cd Warn syslog and syslog-ng user that systemd-journald is found 2022-05-30 01:07:32 +03:00
Ilia
c9b1db30e2 Add logviewer to default modules list 2022-05-30 00:41:33 +03:00
Ilia
c3ba4a9557 Add new System Logs Viewer (logviewer) module 2022-05-30 00:41:12 +03:00
Ilia
4028399d4c Fix to force system detection hashing format 2022-05-29 14:32:05 +03:00
Ilia
db0c5d1d76 Fix CLI tool to consider default system hashing format 2022-05-29 14:04:06 +03:00
Ilia
3aa792f73d Allow foreign callers to force system detection of hashing format 2022-05-29 13:44:38 +03:00
Ilia
3b850af7c0 Add Webmin to support system default hashing format 2022-05-29 12:58:16 +03:00
Ilia
636a8a304d Fix comment 2022-05-29 12:47:46 +03:00
Jamie Cameron
8f9e1cbfc5 Merge pull request #1649 from webmin/dev/user-modes-tester
Add unobtrusive way to test if user is privileged; separate RPC logic
2022-05-28 13:42:28 -07:00
Ilia
e500398a23 Fix to fall back to /etc/redhat-release for Alma and Rocky 2022-05-28 23:35:32 +03:00
Ilia
7f2d442374 No caching as potentially a mode can change during the call 2022-05-28 23:12:30 +03:00
Ilia
5ac4bdde17 Add validate_password support 2022-05-28 23:09:29 +03:00
Ilia
dae7f8a397 Fix error message 2022-05-28 23:01:11 +03:00
Ilia
5df581e103 Fix to simplify mode test 2022-05-28 22:16:31 +03:00
Ilia
16e8f9ea9d Cache mode 2022-05-28 21:31:19 +03:00
Ilia
547fc9caf6 Add support for yescrypt password hashing scheme
https://sourceforge.net/p/webadmin/discussion/55377/thread/01e65be3f9/
2022-05-28 19:26:32 +03:00
Ilia
20bfc7785e Add standard admins; fix comments 2022-05-26 14:23:55 +03:00
Ilia
aa23ccf6e0 Fix webmin_user_can_rpc to have fallback admin users 2022-05-26 14:09:10 +03:00
Ilia
d102f80290 Separate Mail and Safe users; add convenience sub webmin_user_is 2022-05-26 14:04:48 +03:00
Ilia
26fa48623c Add unobtrusive way to test if user is privileged; separate RPC 2022-05-25 14:42:07 +03:00
891 changed files with 5052 additions and 1165 deletions

239
CHANGELOG
View File

@@ -1,239 +0,0 @@
---- Changes since 1.140 ----
Fixed a security hole that allowed any user to view the configuration of any module, even those that they should not have access to.
Fixed a security hole that could allow an attacker to lock valid users by sending a bogus username or password.
---- Changes since 1.150 ----
Updated the setup.sh script to use MD5 password encryption by default, on systems where Perl supports it.
Fixed a security hole in the maketemp.pl script, used to create the /tmp/.webmin directory at install time. If an un-trusted user creates this directory before Webmin is installed, he could create in it a symbolic link pointing to a critical file on the system, which would be overwritten when Webmin writes to the link filename (CVE bug CAN-2004-0559).
When PAM is used for Unix authentication, expired passwords are now detected and the user is prompted to select a new password (if this feature is enabled on the Webmin Configuration module).
Make all functions in ui-lib.pl themable, allowing themes to have more detailed control over modules that make use of this library.
Updated all modules to call ui_print_header instead of calling header and printing <hr>, so that themes can avoid the <hr>. Also updated the MSC theme to do this.
---- Changes since 1.160 ----
Added support for Solaris 10.
Included several additional translations for various languages and modules.
Added support for config- files that allow a range of OS version numbers, and used this to reduce the number of standard config files.
---- Changes since 1.170 ----
When installing a module from the command line, by it will be granted to the same users who receive new modules when Webmin is upgraded. By default, this is root and admin.
Added basic support for multiple root directories, so that Webmin modules can be separated into core and third-party on the filesystem.
When installing or upgrading Webmin, password timeouts are now enabled by default. This protects against brute-force password guessing attacks.
---- Changes since 1.180 ----
All subheadings have been reduced in size when using the default MSC theme.
All modules now use a new API for writing to configuration files, which ensures that the file does not get written to or truncated if the system is out of disk space.
---- Changes since 1.200 ----
On Solaris systems that support RBAC, available modules and access rights can now be derived from RBAC for selected users. This can be enabled on a per-user or per-module basic in the Webmin Users module.
---- Changes since 1.210 ----
Added a new Global ACL control option to limit a user to read-only mode. This does not yet support all modules, but in those that are supported any changes the user makes will simply not take effect.
Restarting of Webmin is now much faster in some modules that do not need a full configuration reload, due to the addition of a function that justs tells miniserv.pl to re-read its config file.
---- Changes since 1.220 ----
Added basic support for running Webmin on Windows system with ActiveState Perl installed. The new setup.pl install script must be used, as the setup.sh shell script cannot run on Windows.
Fixed a bug that could allow a remote attack if the option to use full PAM conversations is enabled.
Improved the Webmin RPM to not lose the /etc/webmin directory when upgrading from an RPM by another vendor (like Mandrake or DAG).
---- Changes since 1.230 ----
Replaced all calls to the crypt() function with new code that will use the Crypt::UnixCrypt Perl modules on systems for with crypt() is broken.
---- Changes since 1.240 ----
Fixed a possible security hole caused by a bug in Perl.
---- Changes since 1.260 ----
Proxy settings made in the Webmin Configuration module are passed on to programs Webmin calls via the http_proxy and ftp_proxy environment variables.
Added automatically created UTF-8 translations for simplified and traditional Chinese.
---- Changes since 1.270 ----
Updated almost all modules that use tables to use the new ui_columns functions. This allows themes to do highlighting when a row is moved over or selected.
Added a new 'Simple Blue' theme, which uses fewer images and does table row highlighting.
Changed the way that Webmin log diff files are stored, so that they are categorized by action and not all in one huge directory.
---- Changes since 1.280 ----
Fixed security holes that allow remote read access to any file on the server for which the path is known.
---- Changes since 1.290 ----
SELinux security contexts are preserved on files safely modified by Webmin's write-and-rename code.
Added xmlrpc.cgi program, which provides an XML-RPC interface to all Webmin module functions.
Tested and improved support for Fedora 5.
---- Changes since 1.300 ----
Fixed the rare bug about renaming the .webmintmp file.
---- Changes since 1.310 ----
Module configuration files can now be named based on the real operating system types, such as config-Ubuntu-Linux, which would be used in preference to config-debian-linux.
When a large file is uploaded, it is no longer read into memory by miniserv.pl.
Update the code that fetches mirror sites from Sourceforge, to handle their new website design.
Changed the default theme for all installs to the new framed blue theme.
Updated all rows of links (like select all, invert selection, add something) above tables to use a separator between links.
Added caching for sudo capable user checks, to avoid excessive slow calls to sudo.
Fixed a memory leak when running under ActiveState Perl on Windows.
---- Changes since 1.320 ----
Fixed XSS bugs in chooser.cgi.
If the operating system is upgraded after Webmin is installed, a button is displayed on the main page to update Webmin's view of the current OS.
Improved the tabs API to add an option to put a box around the visible tab, and whitespace around tabs.
If listening on all specified IP addresses fails, Webmin will fall back to accepting connections on any address.
All Module Config pages are now generating using new ui-lib.pl code, for easier theming.
Added a global access control option to set the Unix user the file browser lists directories as.
---- Changes since 1.330 ----
Added more ui-lib.pl functions for hidden page sections.
Fixed another XSS bug in chooser.cgi.
The Webmin function to get the system's hostname now reads a file instead of calling the hostname comment, which is faster.
Added an ACL option to the file chooser for additional directories to allow access to.
Changed the way sizes are displayed, to use a format like 1.32 GB or 8 kB.
Removed letter images (used by the old theme), and forced the standard header function to always use text titles.
Added support for Slam64 Linux.
---- Changes since 1.340 ----
Added Redhat Enterprise release 5 support.
Requests to the /unauthenticated URL can never execute CGI programs, to provide an extra layer of security against URL escaping attacks.
Fixed XSS bugs in pam_login.cgi.
---- Changes since 1.370 ----
Hid the Jabber and Security Sentries modules by default, as the underlying software is no longer supported.
On Linux systems, sped up the function for finding processes so that it no longer has to launch 'ps' - instead, it reads /proc directly.
When read_file_lines is used to read a file, the Unix or Windows newlines will be preserved when it is written out.
---- Changes since 1.380 ----
Added a search box to the left frame of the blue theme, for finding modules, config options, help pages and text.
All images, CSS and other static content served by Webmin has an HTTP Expires for 1 week in the future, to improve cachability.
Lock files are automatically removed when the process creating them exits.
NetBSD 4.0 support.
Italian and Catalan translations contributed for many modules, thanks to Giovanni and Jaume Badiella.
Changed the error message that appears when Webmin detects a link from another web page, and removed the button to allow the link (which was unreliable anyway).
---- Changes since 1.390 ----
Links from unknown referers are now blocked by default, to prevent XSS attacks. This may break browsers that don't supply a Referer: HTTP header.
---- Changes since 1.400 ----
Big Czech translation updates, thanks to Petr Vanek and the Czech translation team.
All popups in Webmin are now XSS-safe, and thus do not need protection from unknown referers which prevented them from working in some browsers.
All Webmin session IDs are now stored MD5 hashed, to prevent sessions from being captured if the sessiondb DBM is somehow read by an attacker.
Many Dutch updates, thanks to Gandyman.
MD5 encryption for Webmin and Unix passwords can be used on systems that have either the MD5 or Digest::MD5 perl module, or support it in the crypt() function.
---- Changes since 1.410 ----
Many Korean updates, thanks to JoungKyun Kim.
More Dutch updates, thanks to Gandyman.
Added a debugging log file, which records all files read and written, commands run and more. This can be enabled in the Webmin Configuration module.
---- Changes since 1.420 ----
Many Greek translation updates, thanks to Vagelis Koutsomitros.
Catalan translation updates by Jaume Badiella.
Many Dutch translation contributions by Gandyman.
---- Changes since 1.430 ----
A large Croatian translation update, thanks to Domagoj Bikic.
When a user whose password is close to expiry or has already expired logs in, a warning will be displayed on Webmin's first page.
Many Japanese translation updates, thanks to Kazuya Masuda.
---- Changes since 1.440 ----
Russian translation updates, thanks to Anton Statutov.
Webmin's serialization functions can now handle objects, which allows them to be passed as parameters to remote function calls. Both caller and recipient must have the object's class installed though.
Converted commands in the core web-lib-funcs.pl API file to POD format, and added more details about each function.
---- Changes since 1.450 ----
Added a language option for UK english, and converted words in the default Webmin language to US english.
Major Dutch translation updates, thanks to Gandyman.
Catalan translation updates by Jaume Badiella.
Converted all core modules to use the new WebminCore perl module instead of web-lib.pl. This significantly improves memory use and load time in code that uses functions from multiple modules, asssuming they have all been converted.
---- Changes since 1.470 ----
Catalan translation updates by Jaume Badiella.
Added an UTF-8 encoding of the Russian translation, thanks to shavlukov@gmail.com.
French translation updates by ButterflyOfFire.
Dutch translation updates by Gandyman.
Dramatically improved Webmin's search function, to include links to pages that help or UI text comes from. Also changed the layout of results to a more Webmin-ish style.
---- Changes since 1.480 ----
Catalan translation updates by Jaume Badiella.
Dutch translation updates, thanks to Gandyman.
Beginnings of a Basque translation, thanks to Mireia Lezea.
---- Changes since 1.500 ----
Czech translation updates, thanks to Karel Hudan.
The Webmin RPM now preserves the /etc/webmin directory when un-installed and then re-installed.
Added a robots.txt file to block indexing of Webmin by search engines.
The Webmin search box can now be disabled in the Webmin Users module, under "Permissions for all modules".
Brazillian Portuguese translation updates for several modules, thanks to Djavan Fagundes.
---- Changes since 1.510 ----
Dutch translation updates, thanks to Gandyman.
Polish translation updates, thanks to Dariusz Dêbowski.
---- Changes since 1.520 ----
Catalan translation updates by Jaume Badiella.
---- Changes since 1.530 ----
Sped up the loading of language files by pre-caching them in memory when Webmin is started, and not performing sub-string substitutions in most modules.
Added support for Pardus Linux, thanks to Kaan Ozdincer.
Major Dutch updates, thanks to Gandyman.
Majoe French translation update, thanks to ButterflyOfFire.
Allow per-language language overrides to be defined, in custom-lang.$code files.
Updated numerous modules to improve support for Debian 6 and Ubuntu 10.10.
If a browser asks for gzip compression, Webmin can now return compressed content either generated dynamically or from a pre-compressed .gz file in the same directory. Dynamic compression depends on the Compress::Zlib perl module.
Added support for Amazon Linux.
---- Changes since 1.550 ----
Catalan updates, thanks to Jaume Badiella.
Italian translation updates, thanks to Andrea Oliveri.
Major German translation updates, thanks to Raymond Vetter.
---- Changes since 1.560 ----
More German translation updates, thanks to Raymond Vetter.
More French translation updates, thanks to ButterflyOfFire.
---- Changes since 1.570 ----
Even more German translation updates, thanks to Raymond Vetter.
Added UTF-8 encodings for languages using the iso-8859-2, like Czech and Polish.
Catalan updates, thanks to Jaume Badiella.
Norwegian translation updates, thanks to Stein-Aksel Basma.
The MySQL, PostgreSQL, Filesystem Backup and Backup Configuration Files modules now all support the use of Webmin variable substitutions in backup paths (like $HOSTNAME) via a new Module Config option.
---- Changes since 1.580 ----
Even more German translation updates, thanks to Raymond Vetter.
More Dutch updates, thanks to Gandyman.
Catalan updates, thanks to Jaume Badiella.
Norwegian updates, thanks to Stein-Aksel Basma.
All languages now have UTF-8 encoded variants, as well as their native character sets.
Added support for Ubuntu 12.04.
---- Changes since 1.590 ----
Even more German translation updates, thanks to Raymond Vetter.
Norwegian updates, thanks to Stein-Aksel Basma.
Dutch translation updates, thanks to Gandyman.
Switch order of command and mode in debug logs to make it clear that "mode=X" is part of the log, not part of the command.
Added the new Gray Framed Theme, and made it the default for new installs.
---- Changes since 1.600 ----
Even more German translation updates, thanks to Raymond Vetter.
Catalan updates, thanks to Jaume Badiella.
---- Changes since 1.610 ----
Norwegian updates, thanks to Stein-Aksel Basma.
Catalan updates, thanks to Jaume Badiella.
Yet more German translation updates, thanks to Raymond Vetter.
Polish translation updates from Piotr Kozica.
---- Changes since 1.620 ----
More German translation updates, thanks to Raymond Vetter.
Polish translation updates from Piotr Kozica.
Norwegian updates, thanks to Stein-Aksel Basma.
Improved FreeBSD 8 and 9 support across multiple modules.
Hungarian translation updates from Balázs Zoltán.
---- Changes since 1.650 ----
More German translation updates, thanks to Raymond Vetter.
Norwegian updates, thanks to Stein-Aksel Basma.
---- Changes since 1.660 ----
More German translation updates, thanks to Raymond Vetter.
Norwegian updates, thanks to Stein-Aksel Basma.
Catalan updates, thanks to Jaume Badiella.
IPv6 access control now match an address exactly, unless a network size is entered.
FTP uploads and downloads to IPv6-only servers now work properly, thanks to support for the EPSV protocol command.
Added a Bahasa Malaysia translation, thanks to Nawawi Jamili, Nizam Adnan and Weldan Jamili.
Added filtering for lists in the user, group and file chooser popups, thanks to a patch from Nawawi Jamili.
---- Changes since 1.670 ----
More German translation updates, thanks to Raymond Vetter.
Norwegian updates, thanks to Stein-Aksel Basma.
Catalan updates, thanks to Jaume Badiella.
Security fixes for XSS attacks in user_chooser.cgi and other scripts.
---- Changes since 1.690 ----
More German translation updates, thanks to Raymond Vetter.
Support for RHEL 7, CentOS 7 and other derivatives in multiple modules.
---- Changes since 1.700 ----
More German translation updates, thanks to Raymond Vetter.
Catalan updates, thanks to Jaume Badiella.
Added additional protected against Shellshock exploits made via the Webmin webserver.
---- Changes since 1.710 ----
SSL v2 and v3 are now disabled by default at Webmin install time, to block the POODLE attack. They can be re-enabled on the SSL Encryption page of the Webmin Configuration module.
---- Changes since 1.720 ----
Deprecated the old blue-theme in favor of the new gray-theme.
Catalan translation updates from Jaume Badiella.
More German translation updates, thanks to Raymond Vetter.
---- Changes since 1.730 ----
More German translation updates, thanks to Raymond Vetter.
Norwegian updates, thanks to Stein-Aksel Basma.
The awesome new Authentic Theme by @iliajie is now included in the Webmin package.
Catalan translation updates from Jaume Badiella.
---- Changes since 1.740 ----
Norwegian updates, thanks to Stein-Aksel Basma.
Catalan translation updates from Jaume Badiella.
More German translation updates, thanks to Raymond Vetter.
---- Changes since 1.750 ----
Norwegian updates, thanks to Stein-Aksel Basma.
Catalan translation updates from Jaume Badiella.
More German translation updates, thanks to Raymond Vetter.
Fixed an XSS bug that allowed xmlrpc.cgi to be abused by a malicious link.
---- Changes since 1.760 ----
For new installs, switched the location of data files in many modules to /var/webmin instead of /etc/webmin.
---- Changes since 1.790 ----
Added a recent logins section to the System Information page.
Major rework of majordomo module, Kay Marquardt
---- Changes since 1.870 ----
German translation updates, thanks to Raymond Vetter.
Catalan translation updates from Jaume Badiella.
Bulgarian translations from Grigor Gatchev.
Added Support for Synology NAS and opkg/ipkg Community Package Manager, Kay Marquardt
Added Support for configuring spam filtering when amvisd is used, Kay Marquardt

View File

@@ -1,7 +1,72 @@
## Changelog
#### 1.997 (July 12, 2022)
* Add support for mirror and RAID volumes in LVM module
* Add latest Authentic [theme update](https://github.com/webmin/authentic-theme/releases/tag/19.97) with nice new features in File Manager and other fixes
* Fix more issues with restart when Webmin is upgraded from UI
#### 1.996 (July 4, 2022)
* Fix issues with `systemd` restarting Webmin on upgrade found in 1.995
#### 1.995 (June 23, 2022)
* Add improvements to stability for `systemd` systems
* Add native support to default to system default hashing format
* Add support to `yescrypt` password hashing scheme
* Add new _System Logs Viewer_ (logviewer) module
* Add new `webmin server` sub-command
* Add to set environmental variables in Filesystem Backup module
* Fix upload tracker issues with large uploads
* Fix NVMe drives status support
* Fix AlmaLinux support
* Fix BIND config for FreeBSD 12 on initial setup
#### Version 1.994 (May 22, 2022)
This release fixes a security issue in versions 1.991 and below. All systems with less-privileged Webmin users are recommended to upgrade as soon as possible.
#### Version 1.991 (April 18, 2022)
This is mainly a bugfix release for issues found since 1.990.
#### Version 1.990 (March 3, 2022)
This release contains a critical security fix, an updated theme, and a bunch of other small features and improvements. We recommend that all systems with untrusted Webmin users upgrade immediately!
#### Version 1.983 (December 26, 2021)
This release is mostly bugfixes for issues found in 1.983.
#### Version 1.983 (December 4, 2021)
These releases are mostly bugfixes for issues found in 1.982.
#### Version 1.982 (November 26, 2021)
This release includes the latest Authentic theme, support for archive extraction and folder uploads in the File Manager module, automatic formatting of the Apache config, translation updates, and many more small features and bugfixes.
#### Version 1.981 (August 28, 2021)
This is just a bugfix for issues found in version 1.980.
#### Version 1.980 (August 22, 2021)
This release includes numerous small bugfixes, a theme update, translation fixes, support for Rocky and Alma Linuxes, and a new API for changing password.
#### Version 1.979 (June 15, 2021)
This release fixes several bugs found in 1.974, updates the Authentic theme, adds 2FA support in Usermin, and fixes a security bug in the Network Configuration module.
#### Version 1.974 (May 1, 2021)
Mostly a bugfix release, but it also contains a security for users who installed using the `setup.pl` script (which is not common).
#### Version 1.972 (March 1, 2021)
This is mainly a bugfix release for issues with Let's Encrypt and a few other modules.
#### Version 1.970 (January 6, 2021)
This release updates the theme, fixes a Windows security issue, updates the CA cert for Let's Encrypt, and improves translations.
#### Version 1.962 (November 11, 2020)
These are bugfix releases for 2-factor signin and other small issues.
#### Version 1.960 (October 19, 2020)
This release improves MySQL user management, updates the theme UI, fixes parsing of complex Netplan configs, removes the dependency on apt-show-versions and much much more.
#### Version 1.953 (July 5, 2020)
This release adds automatic translations for all languages in UTF-8, updates the Authentic theme, adds support for Postfix SNI certs and Chrony, caching for LDAP lookups, and a huge number of bugfixes and minor features.
#### Version 1.941 (January 16, 2020)
This release updates the built-in Let's Encrypt client, adds support for creating "safe-mode" Webmin users, support for CAA records in the BIND module, and the ability to search Postfix maps. It also updates the Authentic Theme to the latest version, which includes numerous improvements to the File Manager and overall UI.
This release updates the built-in Let's Encrypt client, adds support for creating "safe-mode" Webmin users, support for CAA records in the BIND module, and the ability to search Postfix maps. It also updates the Authentic theme to the latest version, which includes numerous improvements to the File Manager and overall UI.
#### Version 1.930 (August 18, 2019)
These updates fix a [security vulnerability](http://webmin.com/security.html) and should be installed IMMEDIATELY by all users. Although it is not exploitable in a Webmin install with the default configuration, upgrading is strongly recommended.
@@ -19,10 +84,10 @@ This version includes wildcard Let's Encrypt SSL cert support, theme and transla
This version includes Ubuntu 18 network config support, translation updates, multiple theme and file manager updates, BIND freeze/thaw support, support for more Linux distributuions, and a bunch of other bugfixes and small improvements.
#### Version 1.880 (March 16, 2018)
This version includes German, Catalan and Bulgarian translation updates, a new version of the Authentic Theme, support for directly editing the MySQL and PostgreSQL config files, Let's Encrypt bugfixes, more control over system status email notifications, and more.
This version includes German, Catalan and Bulgarian translation updates, a new version of the Authentic theme, support for directly editing the MySQL and PostgreSQL config files, Let's Encrypt bugfixes, more control over system status email notifications, and more.
#### Version 1.870 (December 08, 2018)
This release includes many translation updates, fixes for Let's Encrypt support, UI cleanups, and most importantly a new major version of the Authentic Theme.
This release includes many translation updates, fixes for Let's Encrypt support, UI cleanups, and most importantly a new major version of the Authentic theme.
#### Version 1.860 (October 10, 2017)
This release includes Let's Encrypt DNS fixes, Majordomo module improvements, XSS security bugfixes, translation updates, a new version of the theme, and more.
@@ -34,10 +99,307 @@ This release includes Let's Encrypt fixes, Majordomo module improvements, Firewa
This major release includes a large theme update, XSS security fixes, per-domain SSL cert support, thin-provisioned LVM support, Let's Encrypt improvements, translation updates, and the usual gang of bugfixes. Also available is Usermin 1.710, which contains many of the same updates.
#### Version 1.830 (December 29, 2016)
This is mainly a bugfix release, but also contains some translation updates, the latest version of the Authentic Theme, fixes related to Let's Encrypt and LDAP client support, and SElinux and file attribute support in the file manager.
This is mainly a bugfix release, but also contains some translation updates, the latest version of the Authentic theme, fixes related to Let's Encrypt and LDAP client support, and SElinux and file attribute support in the file manager.
#### Version 1.820 (October 3, 2016)
This updated includes a bunch of bugfixes (particularly in the BIND module), translation updates, the ability to download a MySQL backup, Let's Encrypt improvements, and more.
#### Version 1.810 (August 8, 2016)
This updated includes the latest Authentic Theme, a new IPv6 Firewall module for Linux, Webmin actions logging improvements, Let's Encrypt API fixes and a bunch of other small updates and bugfixes.
This updated includes the latest Authentic theme, a new IPv6 Firewall module for Linux, Webmin actions logging improvements, Let's Encrypt API fixes and a bunch of other small updates and bugfixes.
#### Version 1.800
* German translation updates, thanks to Raymond Vetter.
* Catalan translation updates from Jaume Badiella.
* Bulgarian translations from Grigor Gatchev.
* Added Support for Synology NAS and opkg/ipkg Community Package Manager, Kay Marquardt
* Added Support for configuring spam filtering when amvisd is used, Kay Marquardt
#### Version 1.790
* Added a recent logins section to the System Information page.
* Major rework of majordomo module, Kay Marquardt
#### Version 1.760
* For new installs, switched the location of data files in many modules to /var/webmin instead of /etc/webmin.
#### Version 1.750
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan translation updates from Jaume Badiella.
* More German translation updates, thanks to Raymond Vetter.
* Fixed an XSS bug that allowed xmlrpc.cgi to be abused by a malicious link.
#### Version 1.740
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan translation updates from Jaume Badiella.
* More German translation updates, thanks to Raymond Vetter.
#### Version 1.730
* More German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
* The awesome new Authentic Theme by @iliajie is now included in the Webmin package.
* Catalan translation updates from Jaume Badiella.
#### Version 1.720
* Deprecated the old blue-theme in favor of the new gray-theme.
* Catalan translation updates from Jaume Badiella.
* More German translation updates, thanks to Raymond Vetter.
#### Version 1.710
* SSL v2 and v3 are now disabled by default at Webmin install time, to block the POODLE attack. They can be re-enabled on the SSL Encryption page of the Webmin Configuration module.
#### Version 1.700
* More German translation updates, thanks to Raymond Vetter.
* Catalan updates, thanks to Jaume Badiella.
* Added additional protected against Shellshock exploits made via the Webmin webserver.
#### Version 1.690
* More German translation updates, thanks to Raymond Vetter.
* Support for RHEL 7, CentOS 7 and other derivatives in multiple modules.
#### Version 1.670
* More German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan updates, thanks to Jaume Badiella.
* Security fixes for XSS attacks in `user_chooser.cgi` and other scripts.
#### Version 1.660
* More German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan updates, thanks to Jaume Badiella.
* IPv6 access control now match an address exactly, unless a network size is entered.
* FTP uploads and downloads to IPv6-only servers now work properly, thanks to support for the EPSV protocol command.
* Added a Bahasa Malaysia translation, thanks to Nawawi Jamili, Nizam Adnan and Weldan Jamili.
* Added filtering for lists in the user, group and file chooser popups, thanks to a patch from Nawawi Jamili.
#### Version 1.650
* More German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
#### Version 1.620
* More German translation updates, thanks to Raymond Vetter.
* Polish translation updates from Piotr Kozica.
* Norwegian updates, thanks to Stein-Aksel Basma.
* Improved FreeBSD 8 and 9 support across multiple modules.
* Hungarian translation updates from Balázs Zoltán.
#### Version 1.610
* Norwegian updates, thanks to Stein-Aksel Basma.
* Catalan updates, thanks to Jaume Badiella.
* Yet more German translation updates, thanks to Raymond Vetter.
* Polish translation updates from Piotr Kozica.
#### Version 1.600
* Even more German translation updates, thanks to Raymond Vetter.
* Catalan updates, thanks to Jaume Badiella.
#### Version 1.590
* Even more German translation updates, thanks to Raymond Vetter.
* Norwegian updates, thanks to Stein-Aksel Basma.
* Dutch translation updates, thanks to Gandyman.
* Switch order of command and mode in debug logs to make it clear that "mode=X" is part of the log, not part of the command.
* Added the new Gray Framed Theme, and made it the default for new installs.
#### Version 1.580
* Even more German translation updates, thanks to Raymond Vetter.
* More Dutch updates, thanks to Gandyman.
* Catalan updates, thanks to Jaume Badiella.
* Norwegian updates, thanks to Stein-Aksel Basma.
* All languages now have UTF-8 encoded variants, as well as their native character sets.
* Added support for Ubuntu 12.04.
#### Version 1.570
* Even more German translation updates, thanks to Raymond Vetter.
* Added UTF-8 encodings for languages using the iso-8859-2, like Czech and Polish.
* Catalan updates, thanks to Jaume Badiella.
* Norwegian translation updates, thanks to Stein-Aksel Basma.
* The MySQL, PostgreSQL, Filesystem Backup and Backup Configuration Files modules now all support the use of Webmin variable substitutions in backup paths (like $HOSTNAME) via a new Module Config option.
#### Version 1.560
* More German translation updates, thanks to Raymond Vetter.
* More French translation updates, thanks to ButterflyOfFire.
#### Version 1.550
* Catalan updates, thanks to Jaume Badiella.
* Italian translation updates, thanks to Andrea Oliveri.
* Major German translation updates, thanks to Raymond Vetter.
#### Version 1.530
* Speed up the loading of language files by pre-caching them in memory when Webmin is started, and not performing sub-string substitutions in most modules.
* Added support for Pardus Linux, thanks to Kaan Ozdincer.
* Major Dutch updates, thanks to Gandyman.
* Majoe French translation update, thanks to ButterflyOfFire.
* Allow per-language language overrides to be defined, in custom-lang.$code files.
* Updated numerous modules to improve support for Debian 6 and Ubuntu 10.10.
* If a browser asks for gzip compression, Webmin can now return compressed content either generated dynamically or from a pre-compressed .gz file in the same directory. Dynamic compression depends on the Compress::Zlib perl module.
* Added support for Amazon Linux.
#### Version 1.520
* Catalan translation updates by Jaume Badiella.
#### Version 1.510
* Dutch translation updates, thanks to Gandyman.
* Polish translation updates, thanks to Dariusz Dêbowski.
#### Version 1.500
* Czech translation updates, thanks to Karel Hudan.
* The Webmin RPM now preserves the /etc/webmin directory when un-installed and then re-installed.
* Added a robots.txt file to block indexing of Webmin by search engines.
* The Webmin search box can now be disabled in the Webmin Users module, under "Permissions for all modules".
* Brazillian Portuguese translation updates for several modules, thanks to Djavan Fagundes.
#### Version 1.480
* Catalan translation updates by Jaume Badiella.
* Dutch translation updates, thanks to Gandyman.
* Beginnings of a Basque translation, thanks to Mireia Lezea.
#### Version 1.470
* Catalan translation updates by Jaume Badiella.
* Added an UTF-8 encoding of the Russian translation, thanks to shavlukov@gmail.com.
* French translation updates by ButterflyOfFire.
* Dutch translation updates by Gandyman.
* Dramatically improved Webmin's search function, to include links to pages that help or UI text comes from. Also changed the layout of results to a more Webmin-ish style.
#### Version 1.450
* Added a language option for UK english, and converted words in the default Webmin language to US english.
* Major Dutch translation updates, thanks to Gandyman.
* Catalan translation updates by Jaume Badiella.
* Converted all core modules to use the new WebminCore perl module instead of `web-lib.pl`. This significantly improves memory use and load time in code that uses functions from multiple modules, asssuming they have all been converted.
#### Version 1.440
* Russian translation updates, thanks to Anton Statutov.
* Webmin's serialization functions can now handle objects, which allows them to be passed as parameters to remote function calls. Both caller and recipient must have the object's class installed though.
* Converted commands in the core `web-lib-funcs.pl` API file to POD format, and added more details about each function.
#### Version 1.430
* A large Croatian translation update, thanks to Domagoj Bikic.
* When a user whose password is close to expiry or has already expired logs in, a warning will be displayed on Webmin's first page.
* Many Japanese translation updates, thanks to Kazuya Masuda.
#### Version 1.420
* Many Greek translation updates, thanks to Vagelis Koutsomitros.
* Catalan translation updates by Jaume Badiella.
* Many Dutch translation contributions by Gandyman.
#### Version 1.410
* Many Korean updates, thanks to JoungKyun Kim.
* More Dutch updates, thanks to Gandyman.
* Added a debugging log file, which records all files read and written, commands run and more. This can be enabled in the Webmin Configuration module.
#### Version 1.400
* Big Czech translation updates, thanks to Petr Vanek and the Czech translation team.
* All popups in Webmin are now XSS-safe, and thus do not need protection from unknown referers which prevented them from working in some browsers.
* All Webmin session IDs are now stored MD5 hashed, to prevent sessions from being captured if the sessiondb DBM is somehow read by an attacker.
* Many Dutch updates, thanks to Gandyman.
* MD5 encryption for Webmin and Unix passwords can be used on systems that have either the MD5 or Digest::MD5 perl module, or support it in the crypt() function.
#### Version 1.390
* Links from unknown referers are now blocked by default, to prevent XSS attacks. This may break browsers that don't supply a Referer: HTTP header.
#### Version 1.380
* Added a search box to the left frame of the blue theme, for finding modules, config options, help pages and text.
* All images, CSS and other static content served by Webmin has an HTTP Expires for 1 week in the future, to improve cachability.
* Lock files are automatically removed when the process creating them exits.
* NetBSD 4.0 support.
* Italian and Catalan translations contributed for many modules, thanks to Giovanni and Jaume Badiella.
* Changed the error message that appears when Webmin detects a link from another web page, and removed the button to allow the link (which was unreliable anyway).
#### Version 1.370
* Hid the Jabber and Security Sentries modules by default, as the underlying software is no longer supported.
* On Linux systems, sped up the function for finding processes so that it no longer has to launch 'ps' - instead, it reads /proc directly.
* When `read_file_lines` is used to read a file, the Unix or Windows newlines will be preserved when it is written out.
#### Version 1.340
* Added Redhat Enterprise release 5 support.
* Requests to the /unauthenticated URL can never execute CGI programs, to provide an extra layer of security against URL escaping attacks.
* Fixed XSS bugs in `pam_login.cgi`.
#### Version 1.330
* Added more `ui-lib.pl` functions for hidden page sections.
* Fixed another XSS bug in chooser.cgi.
* The Webmin function to get the system's hostname now reads a file instead of calling the hostname comment, which is faster.
* Added an ACL option to the file chooser for additional directories to allow access to.
* Changed the way sizes are displayed, to use a format like 1.32 GB or 8 kB.
* Removed letter images (used by the old theme), and forced the standard header function to always use text titles.
* Added support for Slam64 Linux.
#### Version 1.320
* Fixed XSS bugs in chooser.cgi.
* If the operating system is upgraded after Webmin is installed, a button is displayed on the main page to update Webmin's view of the current OS.
* Improved the tabs API to add an option to put a box around the visible tab, and whitespace around tabs.
* If listening on all specified IP addresses fails, Webmin will fall back to accepting connections on any address.
* All Module Config pages are now generating using new `ui-lib.pl` code, for easier theming.
* Added a global access control option to set the Unix user the file browser lists directories as.
#### Version 1.310
* Module configuration files can now be named based on the real operating system types, such as config-Ubuntu-Linux, which would be used in preference to config-debian-linux.
* When a large file is uploaded, it is no longer read into memory by `miniserv.pl`.
* Update the code that fetches mirror sites from Sourceforge, to handle their new website design.
* Changed the default theme for all installs to the new framed blue theme.
* Updated all rows of links (like select all, invert selection, add something) above tables to use a separator between links.
* Added caching for sudo capable user checks, to avoid excessive slow calls to sudo.
* Fixed a memory leak when running under ActiveState Perl on Windows.
#### Version 1.300
* Fixed the rare bug about renaming the .webmintmp file.
#### Version 1.290
* SELinux security contexts are preserved on files safely modified by Webmin's write-and-rename code.
* Added xmlrpc.cgi program, which provides an XML-RPC interface to all Webmin module functions.
* Tested and improved support for Fedora 5.
#### Version 1.280
* Fixed security holes that allow remote read access to any file on the server for which the path is known.
#### Version 1.270
* Updated almost all modules that use tables to use the new `ui_columns` functions. This allows themes to do highlighting when a row is moved over or selected.
* Added a new 'Simple Blue' theme, which uses fewer images and does table row highlighting.
* Changed the way that Webmin log diff files are stored, so that they are categorized by action and not all in one huge directory.
#### Version 1.260
* Proxy settings made in the Webmin Configuration module are passed on to programs Webmin calls via the `http_proxy` and `ftp_proxy` environment variables.
* Added automatically created UTF-8 translations for simplified and traditional Chinese.
#### Version 1.240
* Fixed a possible security hole caused by a bug in Perl.
#### Version 1.230
* Replaced all calls to the crypt() function with new code that will use the Crypt::UnixCrypt Perl modules on systems for with crypt() is broken.
#### Version 1.220
* Added basic support for running Webmin on Windows system with ActiveState Perl installed. The new `setup.pl` install script must be used, as the setup.sh shell script cannot run on Windows.
* Fixed a bug that could allow a remote attack if the option to use full PAM conversations is enabled.
* Improved the Webmin RPM to not lose the /etc/webmin directory when upgrading from an RPM by another vendor (like Mandrake or DAG).
#### Version 1.210
* Added a new Global ACL control option to limit a user to read-only mode. This does not yet support all modules, but in those that are supported any changes the user makes will simply not take effect.
* Restarting of Webmin is now much faster in some modules that do not need a full configuration reload, due to the addition of a function that justs tells `miniserv.pl` to re-read its config file.
#### Version 1.200
* On Solaris systems that support RBAC, available modules and access rights can now be derived from RBAC for selected users. This can be enabled on a per-user or per-module basic in the Webmin Users module.
#### Version 1.180
* All subheadings have been reduced in size when using the default MSC theme.
* All modules now use a new API for writing to configuration files, which ensures that the file does not get written to or truncated if the system is out of disk space.
#### Version 1.170
* When installing a module from the command line, by it will be granted to the same users who receive new modules when Webmin is upgraded. By default, this is root and admin.
* Added basic support for multiple root directories, so that Webmin modules can be separated into core and third-party on the filesystem.
* When installing or upgrading Webmin, password timeouts are now enabled by default. This protects against brute-force password guessing attacks.
#### Version 1.160
* Added support for Solaris 10.
* Included several additional translations for various languages and modules.
* Added support for config- files that allow a range of OS version numbers, and used this to reduce the number of standard config files.
#### Version 1.150
* Updated the setup.sh script to use MD5 password encryption by default, on systems where Perl supports it.
* Fixed a security hole in the `maketemp.pl` script, used to create the /tmp/.webmin directory at install time. If an un-trusted user creates this directory before Webmin is installed, he could create in it a symbolic link pointing to a critical file on the system, which would be overwritten when Webmin writes to the link filename (CVE bug CAN-2004-0559).
* When PAM is used for Unix authentication, expired passwords are now detected and the user is prompted to select a new password (if this feature is enabled on the Webmin Configuration module).
* Make all functions in `ui-lib.pl` themable, allowing themes to have more detailed control over modules that make use of this library.
* Updated all modules to call `ui_print_header` instead of calling header and printing `<hr>`, so that themes can avoid the `<hr>`. Also updated the MSC theme to do this.
#### Version 1.140
* Fixed a security hole that allowed any user to view the configuration of any module, even those that they should not have access to.
* Fixed a security hole that could allow an attacker to lock valid users by sending a bogus username or password.

53
README-zh.md Normal file
View File

@@ -0,0 +1,53 @@
## 内容
* [更新日志](https://github.com/webmin/webmin/blob/master/CHANGELOG.md)
* [关于](#关于)
* [安装](#安装)[<img src="https://github.com/webmin-devel/webmin/blob/master/media/download-23x14-stable.png?raw=true" title="稳定版">](http://webmin.com/download.html)[<img src="https://github.com/webmin-devel/webmin/blob/master/media/download-23x14-devel.png?raw=true" title="Development Versions">](http://webmin.com/devel.html)
* [文档](#文档)
* [致谢](#致谢)
* [许可](#许可)
## 关于
**Webmin** 是一个基于网页的类Unix服务器系统管理工具全球安装超过 _1,000,000_ 次(没错,事宝藏!)。有了它,运维快人一步!比如用户,磁盘配额,服务或者配置文件,比如更改,控制开源应用,再比如 BIND DNS Server管理 Apache HTTP Server PHP MySQL 还有[许多许多好东西](https://doxfer.webmin.com/Webmin/Introduction)。
[![Quick UI overview 2021](https://user-images.githubusercontent.com/4426533/114315375-61a1c480-9b07-11eb-9aaf-4aa949a39ab7.png)](https://www.youtube.com/watch?v=daYG6O4AsEw)
可通过安装可定制的模块来扩展可用性。 除此之外,还有另外两个扩展其功能的项目:
* [Virtualmin](https://www.virtualmin.com) 是一个强大的,灵活的,最受欢迎的,最全面的 Linux 和 BSD 系统网络托管控制面板,在全球拥有超过 _150,000次_ 安装。它有开源社区支持的版本以及功能更丰富的Premium版本
* [Usermin](https://github.com/webmin/usermin) 顾名思义,呈现和控制以用户为中心的功能子集,而不是管理员级别的任务。
Webmin 包括 _116_ 个[标准模块](https://doxfer.webmin.com/Webmin/Webmin_Modules),并且至少有同样多的第三方模块。
### 系统要求
Perl 5.10 或更高。
## 安装
Webmin 可以两种方法安装:
1. 下载一个预编译包可用于不同的发行版CentOS, Fedora, SuSE, Mandriva, Debian, Ubuntu, Solaris 和 [其他发行版](http://www.webmin.com/support.html))。[下载页面直达车](http://webmin.com/download.html);
<kbd>注:非常建议[在你的系统添加源](https://doxfer.webmin.com/Webmin/Installation),这样可以自动更新</kbd>
2. 下载并解压[源码](https://prdownloads.sourceforge.net/webadmin/webmin-1.996.tar.gz)然后运行[_setup.sh_](http://www.webmin.com/tgz.html) 脚本,无需任何选项,也就是说会直接安装到当前目录。或者使用命令行参数,例如目标目录。
<kbd>注:如果你正在安装 Webmin [到Windows](http://www.webmin.com/windows.html) 系统上,你必须运行 `perl setup.pl` 命令。Windows 版能否正常运行取决于许多程序,和可能不属于标准发行版的模块。你需要 _process.exe_ 命令, _sc.exe_ 命令,以及 _Win32::Daemon_ Perl 模块。</kbd>
## 文档
完整的 Webmin 还有它所有模块的详细配置都在[维基页面](https://doxfer.webmin.com/Webmin/Main_Page).
## 致谢
### 首席开发者
* [Jamie Cameron](http://www.webmin.com/about.html) [![](https://github.com/webmin-devel/webmin/blob/master/media/linkedin-15x15.png?raw=true)](https://www.linkedin.com/in/jamiecameron2)
### 贡献者
* [Joe Cooper](https://github.com/swelljoe)
* [Ilia Rostovtsev](https://github.com/iliajie)
* [Kay Marquardt](https://github.com/gnadelwartz)
* [Nawawi Jamili](https://github.com/nawawi) + [其他无偿奉献的开发者](https://github.com/webmin/webmin/graphs/contributors)
## 许可
Webmin 基于 [BSD 许可](https://github.com/webmin/webmin/blob/master/LICENCE)发布。

View File

@@ -6,6 +6,8 @@
* [Development](#development)
* [License](#license)
* [中文版](https://github.com/webmin/webmin/blob/master/README-zh.md)
## About
**Webmin** is a web-based system administration tool for Unix-like servers, and services with over _1,000,000_ installations worldwide. Using it, it is possible to configure operating system internals, such as users, disk quotas, services or configuration files, as well as modify, and control open-source apps, such as BIND DNS Server, Apache HTTP Server, PHP, MySQL, and [many more](https://doxfer.webmin.com/Webmin/Introduction).
@@ -26,11 +28,11 @@ Perl 5.10 or higher.
## Installation
Webmin can be installed in two different ways:
1. By downloading a pre-built package, available for different distributions (CentOS, Fedora, SuSE, Mandriva, Debian, Ubuntu, Solaris and [other](http://www.webmin.com/support.html)) from our [download page](http://webmin.com/download.html);
1. By downloading a pre-built package, available for different distributions (CentOS, Fedora, SuSE, Mandriva, Debian, Ubuntu, Solaris and [other](http://www.webmin.com/support.html)) under [latest release assets](https://github.com/webmin/webmin/releases/latest) or from our [download page](http://webmin.com/download.html);
<kbd>Note: It is highly recommended to [add repository](https://doxfer.webmin.com/Webmin/Installation) to your system for having automatic updates.</kbd>
2. By downloading, extracting [source file](https://prdownloads.sourceforge.net/webadmin/webmin-1.994.tar.gz), and running [_setup.sh_](http://www.webmin.com/tgz.html) script, with no arguments, which will setup to run it directly from this directory, or with a command-line argument, such as targeted directory.
<kbd>Note: If you are installing Webmin [on Windows](http://www.webmin.com/windows.html) system, you must run the command `perl setup.pl` instead. The Windows version depends on several programs, and modules that may not be part of the standard distribution. You will need _process.exe_ commmand, _sc.exe_ command, and _Win32::Daemon_ Perl module.</kbd>
2. By downloading, extracting [source file](https://prdownloads.sourceforge.net/webadmin/webmin-1.997.tar.gz), and running [_setup.sh_](http://www.webmin.com/tgz.html) script, with no arguments, which will setup to run it directly from this directory, or with a command-line argument, such as targeted directory.
<kbd>Note: If you are installing Webmin [on Windows](http://www.webmin.com/windows.html) system, you must run the command `perl setup.pl` instead. The Windows version depends on several programs, and modules that may not be part of the standard distribution. You will need _process.exe_ command, _sc.exe_ command, and _Win32::Daemon_ Perl module.</kbd>
## Documentation
Complete set of documentation for Webmin and all of its modules can be found at out [Wiki page](https://doxfer.webmin.com/Webmin/Main_Page).
@@ -41,12 +43,14 @@ Complete set of documentation for Webmin and all of its modules can be found at
* [Jamie Cameron](http://www.webmin.com/about.html) [![](https://github.com/webmin-devel/webmin/blob/master/media/linkedin-15x15.png?raw=true)](https://www.linkedin.com/in/jamiecameron2)
### Contributors
* [Joe Cooper](https://github.com/swelljoe)
### Developers
* [Ilia Rostovtsev](https://github.com/iliajie)
* [Joe Cooper](https://github.com/swelljoe)
### Contributors
* [Kay Marquardt](https://github.com/gnadelwartz)
* [Nawawi Jamili](https://github.com/nawawi) + [57 more..](https://github.com/webmin/webmin/graphs/contributors)
* [Nawawi Jamili](https://github.com/nawawi)
* [unknown10777](https://github.com/unknown10777) + [90 more..](https://github.com/webmin/webmin/graphs/contributors)
## License

File diff suppressed because one or more lines are too long

View File

@@ -145,7 +145,7 @@ $self->{'name'} = $name;
}
=head2 get_name()
Returns the name for indentifying this table in HTML
Returns the name for identifying this table in HTML
=cut
sub get_name
{

View File

@@ -402,7 +402,7 @@ $self->{'name'} = $name;
}
=head2 get_name()
Returns the name for indentifying this table in HTML
Returns the name for identifying this table in HTML
=cut
sub get_name
{
@@ -628,7 +628,7 @@ else {
=head2 make_url(sortcol, sortdir, paging, page, [no-searchargs], [no-pagearg])
Returns a link to this table's page, with the defaults for the various state
fields overriden by the parameters (where defined)
fields overridden by the parameters (where defined)
=cut
sub make_url
{

View File

@@ -14,6 +14,8 @@ Library for editing webmin users, passwords and access rights.
BEGIN { push(@INC, ".."); };
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
use WebminCore;
&init_config();
do 'md5-lib.pl';
@@ -1690,10 +1692,17 @@ elsif ($mode == 2) {
return &encrypt_sha512($pass, $salt);
}
else {
# Use Unix DES
&seed_random();
$salt ||= chr(int(rand(26))+65).chr(int(rand(26))+65);
return &unix_crypt($pass, $salt);
# Try detecting system default first
if (&foreign_available('useradmin')) {
&foreign_require('useradmin');
return &useradmin::encrypt_password($pass, $salt, 1);
}
else {
# Use Unix DES
&seed_random();
$salt ||= chr(int(rand(26))+65).chr(int(rand(26))+65);
return &unix_crypt($pass, $salt);
}
}
}

View File

@@ -1,6 +1,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'acl-lib.pl';
our (%text, %in);

View File

@@ -1,6 +1,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require 'acl-lib.pl';
our ($config_directory, %gconfig);

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
&ui_print_header(undef, $text{'cert_title'}, "", undef, undef, undef, undef,

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $module_config_directory, $base_remote_user);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);

View File

@@ -1,6 +1,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'acl-lib.pl';
our (%access);

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $config_directory);
&ReadParse();

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'sync'} && $access{'create'} || &error($text{'convert_ecannot'});

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, %sessiondb);
&ReadParse();

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user, %gconfig);
&ReadParse();

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $config_directory);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'pass'} || &error($text{'pass_ecannot'});

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %gconfig, %access, $module_name, $module_root_directory);
$access{'rbacenable'} || &error($text{'rbac_ecannot'});

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'sql'} || &error($text{'sql_ecannot'});

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'sync'} && $access{'create'} && $access{'delete'} ||

View File

@@ -5,6 +5,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'unix'} && $access{'create'} && $access{'delete'} ||

View File

@@ -4,8 +4,10 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $config_directory, $base_remote_user);
our (%in, %text, %config, %access, $config_directory, $base_remote_user, $remote_user);
&foreign_require("webmin", "webmin-lib.pl");
&ReadParse();
@@ -434,7 +436,7 @@ if ($in{'user'}) {
if (&foreign_available("webminlog")) {
push(@buts, [ "but_log", $text{'edit_log'} ]);
}
if ($access{'switch'} && $main::session_id) {
if ($access{'switch'} && $main::session_id && $in{'user'} ne $remote_user) {
push(@buts, [ "but_switch", $text{'edit_switch'} ]);
}
if ($access{'delete'}) {

View File

@@ -1,6 +1,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'acl-lib.pl';
our ($config_directory);

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&ReadParse();

View File

@@ -354,6 +354,7 @@ sessions_actions=Actions..
sessions_all=All sessions..
sessions_logouts=Also show logged-out sessions..
sessions_state=State
sessions_action=Actions
sessions_this=This login
sessions_in=Logged in
sessions_out=Logged out

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, %sessiondb);
$access{'sessions'} || &error($text{'sessions_ecannot'});

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'acl-lib.pl';
our (%text);

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'pass'} || &error($text{'sql_ecannot'});

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'pass'} || &error($text{'sql_ecannot'});

View File

@@ -1,6 +1,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require 'acl-lib.pl';
our ($config_directory);

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user, %gconfig,
$config_directory);

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $config_directory);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'pass'} || &error($text{'pass_ecannot'});

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'pass'} || &error($text{'sql_ecannot'});

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $module_config_directory);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&foreign_require("webmin");

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
&ReadParse();

View File

@@ -4,6 +4,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $config_directory, $base_remote_user);
&foreign_require("webmin", "webmin-lib.pl");

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access);
$access{'pass'} || &error($text{'sql_ecannot'});

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, %sessiondb);
&ReadParse();

View File

@@ -1,6 +1,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%text, $remote_user, %sessiondb, $module_name);
do 'acl-lib.pl';
@@ -11,7 +13,6 @@ sub list_system_info
my ($data, $in) = @_;
my @rv;
my %miniserv;
my $haslog = &foreign_available("webminlog");
&get_miniserv_config(\%miniserv);
&open_session_db(\%miniserv);
my @logins;
@@ -29,12 +30,12 @@ if (@logins) {
}
my $html = &ui_columns_start([ $text{'sessions_host'},
$text{'sessions_login'},
$text{'sessions_state'} ]);
$text{'sessions_state'},
$text{'sessions_action'} ]);
my $open = 0;
foreach my $l (@logins) {
my $state;
my $candel = 0;
my $nbsp = "&nbsp;&nbsp;&nbsp;";
if ($l->[0] =~ /^\!/) {
$state = $text{'sessions_out'};
}
@@ -51,21 +52,29 @@ if (@logins) {
}
}
$main::theme_allow_make_date = 1;
$html .= &ui_columns_row([ $l->[2] .
($haslog ?
$nbsp . &ui_link("@{[&get_webprefix()]}/webminlog/search.cgi?uall=1&mall=1&tall=1&wall=1&fall=1&sid=$l->[3]",
$text{'sessions_lview'}) : undef) .
($candel ? (!$haslog ? $nbsp : undef) .
&ui_link("@{[&get_webprefix()]}/acl/delete_session.cgi?id=$l->[3]&redirect_ref=1",
$text{'sessions_kill'}) : undef) .
((!$haslog && !$candel ? $nbsp : undef) .
&ui_link("@{[&get_webprefix()]}/acl/list_sessions.cgi",
$text{'sessions_all'}, undef, "title=\"$text{'sessions_title'}\"")),
&make_date($l->[1]),
$state ]);
my @links;
if (&foreign_available("webminlog")) {
push(@links,
&ui_link("@{[&get_webprefix()]}/webminlog/search.cgi?uall=1&mall=1&tall=1&wall=1&fall=1&sid=$l->[3]",
$text{'sessions_lview'}))
}
if ($candel) {
push(@links,
&ui_link("@{[&get_webprefix()]}/acl/delete_session.cgi?id=$l->[3]&redirect_ref=1",
$text{'sessions_kill'}))
}
$html .= &ui_columns_row([
$l->[2],
&make_date($l->[1]),
$state,
&ui_links_row(\@links) ]);
}
$html .= &ui_columns_end();
if (&foreign_available("acl")) {
$html .= &ui_link("@{[&get_webprefix()]}/acl/list_sessions.cgi",
$text{'sessions_all'}, undef,
"title=\"$text{'sessions_title'}\"");
}
push(@rv, { 'type' => 'html',
'desc' => $text{'logins_title'},
'open' => $open,

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './acl-lib.pl';
our (%in, %text, %config, %access, $base_remote_user);
&foreign_require("webmin");

View File

@@ -1,6 +1,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
if (!$main::done_foreign_require{"acl","acl-lib.pl"}) {
do "acl-lib.pl";
}

View File

@@ -1293,7 +1293,7 @@ class QWebWSGIServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
""" QWebWSGIServer
qweb_wsgi_autorun(wsgiapp,ip='127.0.0.1',port=8080,threaded=1)
A WSGI HTTP server threaded or not and a function to automatically run your
app according to the environement (either standalone, CGI or FastCGI).
app according to the environment (either standalone, CGI or FastCGI).
This feature is called QWeb autorun. If you want to To use it on your
application use the following lines at the end of the main application
@@ -1303,7 +1303,7 @@ class QWebWSGIServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
qweb.qweb_wsgi_autorun(your_wsgi_app)
this function will select the approriate running mode according to the
calling environement (http-server, FastCGI or CGI).
calling environment (http-server, FastCGI or CGI).
"""
def __init__(self, wsgiapp, ip, port, threaded=1, log=1):
BaseHTTPServer.HTTPServer.__init__(self, (ip, port), QWebWSGIHandler)

View File

@@ -3,6 +3,8 @@
# a URL that proxies to it
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
BEGIN { push(@INC, ".."); };
use WebminCore;
@@ -70,6 +72,8 @@ while(1) {
close(TEST2);
use strict "subs";
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
# Show the iframe
print "<center>\n";

View File

@@ -2,6 +2,8 @@
# Proxy an Ajaxterm request to the real port
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
BEGIN { push(@INC, ".."); };
use WebminCore;

View File

@@ -1,5 +1,7 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%text, %in);
require 'at-lib.pl';

View File

@@ -1,5 +1,7 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our %config;
do 'at-lib.pl';

View File

@@ -1,5 +1,7 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our %access;
do 'at-lib.pl';

View File

@@ -3,6 +3,8 @@
# Create a new at job
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%access, %text, %in);
require './at-lib.pl';

View File

@@ -2,6 +2,8 @@
# Delete or run an at job
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%text, %in);
require './at-lib.pl';

View File

@@ -2,6 +2,8 @@
# Delete multiple at jobs
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our(%access, %text, %in);
require './at-lib.pl';

View File

@@ -3,6 +3,8 @@
# Display a command for deletion
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%access, %text, %in);
require './at-lib.pl';

View File

@@ -1,6 +1,8 @@
# freebsd-lib.pl
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
no warnings "redefine";
our (%config);

View File

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

View File

@@ -1,6 +1,8 @@
# install_check.pl
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'at-lib.pl';

View File

@@ -1,6 +1,8 @@
# linux-lib.pl
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
no warnings "redefine";
our (%config);

View File

@@ -2,6 +2,8 @@
# Functions for parsing this module's logs
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our %text;
do 'at-lib.pl';

View File

@@ -1,6 +1,8 @@
# macos-lib.pl
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
no warnings "redefine";
our %config;

View File

@@ -2,6 +2,8 @@
# Update allowed or denied At users
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%access, %text, %in);
require './at-lib.pl';

View File

@@ -1,6 +1,8 @@
# solaris-lib.pl
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
no warnings "redefine";
our %config;

View File

@@ -13,6 +13,8 @@ Functions for creating configuration file backups. Some example code :
BEGIN { push(@INC, ".."); };
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
use WebminCore;
our (%text, $module_config_directory, %config);
&init_config();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './backup-config-lib.pl';
our (%in, %text, %config, $module_config_file);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%text, %config, $no_acl_check);
$no_acl_check++;
require './backup-config-lib.pl';

View File

@@ -1,6 +1,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'backup-config-lib.pl';
sub cgi_args

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './backup-config-lib.pl';
our (%in, %text);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './backup-config-lib.pl';
our (%text, %in, %config);
&ReadParse();

View File

@@ -2,21 +2,21 @@ index_title=备份配置文件
index_emods=系统上没有Webmin模块支持配置备份。
index_dest=备份目的地
index_mods=Webmin模块
index_sched=预定的?
index_sched=计划的?
index_when=是, $1
index_count=$1个模块
index_add=添加新的预定备份。
index_none=尚未定义计划的备份
index_add=添加新的备份计划
index_none=无备份计划
index_header=立即备份配置
index_now=立即备份
index_return=计划备份列表
index_return=备份计划列表
index_return2=备份和还原表格
index_header2=立即还原配置
index_now2=立即还原
index_apply=应用配置?
index_test=仅显示将恢复的内容?
index_jobs=预定备份
index_nostrftime=警告-一些备份作业在其文件名中使用但是在“模块配置”页面上未启用strftime替换。
index_nostrftime=警告-一些备份作业在其文件名中使用“%”但是在“模块配置”页面上未启用strftime替换。
index_tabsched=计划备份
index_tabbackup=立即备份
index_tabrestore=立即还原
@@ -68,7 +68,7 @@ backup_enone2=备份中没有所选模块的文件
backup_epre2=模块 $1拒绝还原 $2
backup_err=备份失败
backup_edest=绝对本地文件丢失或无效
backup_edest=绝对路径的文件丢失或无效
backup_eserver1=FTP服务器丢失或无效
backup_eserver2=SSH服务器丢失或无效
backup_epath=FTP服务器上的绝对路径丢失或无效
@@ -80,7 +80,7 @@ backup_esport=缺少或无效的SSH服务器端口
backup_emods=未选择模块
backup_title=备份配置
backup_doing=开始将模块配置文件备份到 $1 ..
backup_failed=..失败了! $1
backup_failed=了! $1
backup_done=..完成。最终备份大小为 $1其中包含 $2个文件。
restore_err=恢复失败
@@ -88,8 +88,8 @@ restore_emods=未选择模块或其他文件
restore_title=恢复配置
restore_doing=从 $1..开始恢复模块配置文件。
restore_testing=从 $1..中提取备份的内容
restore_failed=..失败了! $1
restore_done=..完成。已还原 $1个文件。
restore_failed=了! $1
restore_done=..完成。已恢复 $1个文件。
restore_done2=..备份中的文件是:
nice_ftp=通过FTP在 $1上的 $2
@@ -109,14 +109,14 @@ log_run_backup=已将 $1个模块备份到 $2
run_title=备份配置
run_doing=正在将 $1个模块备份到 $2 ..
run_ok=..备份成功完成。
run_failed=..备份失败!有关原因,请参上面的错误消息。
run_failed=寄了!请参上面的错误消息。
email_mods=模块备份:
email_mods=备份模块
email_failed=到 $1失败
email_ok=到 $1成功。
email_sfailed=$1的配置备份失败
email_sok=$1的配置备份成功
email_sfailed=$1的配置备份失败
email_sok=$1的配置备份成功
email_final=最终备份文件的大小为 $1
email_pre=运行备份前命令 $1 ..
email_post=运行备份后命令 $1 ..
email_prefailed=备份前命令失败
email_prefailed=备份前执行的命令寄了

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'backup-config-lib.pl';
our (%text);

View File

@@ -0,0 +1,2 @@
desc=备份配置文件
longdesc=进行手动或计划备份、恢复Webmin模块的配置文件

View File

@@ -1,2 +0,0 @@
desc_zh=备份配置文件
longdesc_zh=对Webmin模块管理的配置文件执行手动或计划的备份和还原。

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './backup-config-lib.pl';
our (%in, %text, %config, $module_config_file);
&ReadParseMime();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './backup-config-lib.pl';
our (%in, %text, $cron_cmd, $module_name);
&ReadParse();

View File

@@ -3,6 +3,8 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require 'backup-config-lib.pl';
sub module_uninstall

View File

@@ -2,6 +2,7 @@
# disable-proxy - Reverse/remove the configuration options set by enable-proxy.
use strict;
use warnings;
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
use 5.010; # Version in CentOS 6
@@ -129,7 +130,7 @@ Disable proxy-related features in Webmin.
=head1 SYNOPSIS
disable-proxy [options]
webmin disable-proxy [options]
=head1 OPTIONS
@@ -146,14 +147,8 @@ C</etc/webmin>
=back
=head1 EXIT CODES
0 on success
non-0 on error
=head1 LICENSE AND COPYRIGHT
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
<joe@virtualmin.com>.
Copyright 2022 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>

View File

@@ -2,6 +2,7 @@
# disable-twofactor - Disable two-factor authentication for a user.
use strict;
use warnings;
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
use 5.010; # Version in CentOS 6
@@ -87,7 +88,7 @@ second factor (e.g. phone or USB key) has been lost.
=head1 SYNOPSIS
disable-twofactor --user username
webmin disable-twofactor --user username
=head1 OPTIONS
@@ -106,16 +107,13 @@ C</etc/webmin>
Name of the user to disable two-factor authentication for.
=back
=head1 EXIT CODES
0 on successfully replacing configuration options
non-0 on error
=head1 LICENSE AND COPYRIGHT
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
<joe@virtualmin.com>.
Copyright 2022 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>
Ilia Rostovtsev <ilia@virtualmin.com>

View File

@@ -3,6 +3,7 @@
# through a proxy.
use strict;
use warnings;
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
use 5.010; # Version in CentOS 6
@@ -134,7 +135,7 @@ Configure the Webmin web server to be proxied through another web server, like A
=head1 SYNOPSIS
enable-proxy [options]
webmin enable-proxy [options]
=head1 OPTIONS
@@ -161,14 +162,7 @@ domain.tld)
=back
=head1 EXIT CODES
0 on success
non-0 on error
=head1 LICENSE AND COPYRIGHT
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
<joe@virtualmin.com>.
Copyright 2022 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>

View File

@@ -3,6 +3,7 @@
use strict;
use warnings;
use 5.014;
use File::Spec;
@@ -1784,7 +1785,7 @@ Manage Webmin/Usermin module language files (lang|ulang|help|config|uconfig|modu
=head1 SYNOPSIS
language-manager [options]
webmin language-manager [options]
=head1 OPTIONS
@@ -1798,35 +1799,35 @@ Examples of usage:
Synchronize all language keys for Apache module, based on template language. Newly added entries to Apache template language file (def. en), will be translated and inserted into all other machine translated language files, while deleted entries will also be removed on all targets (translations), including human translated files. The value for "defines_desc" will be force re-translated and translation will be done in HTML format.
- language-manager -m=apache -kft=defines_desc -kfh=defines_desc
- webmin language-manager -m=apache -kft=defines_desc -kfh=defines_desc
Synchronize all modules' "help/" language files. Newly added files will be translated and already translated, both human and machine translations, will be kept intact.
- language-manager -w=help
- webmin language-manager -w=help
Check for Software Packages module, all matching escaped HTML "&lt;" and "&gt;" entities in template file (def. en), and if found, make sure that translations (including machine translations) for the same key, contain exact escaped HTML entities, as on template string, rather than "<" or ">". Technically, it's possible to check and replace anything on language files using this command.
- language-manager -vf="&lt;:<,&gt;:>" -m=software
- webmin language-manager -vf="&lt;:<,&gt;:>" -m=software
Translate all available languages, using old-time encoding map, for BIND module, using as type "lang" directory, discarding human translations for Hebrew, keeping original value (not translating) for key "mass_desc", and printing verbose output.
- language-manager -x=full -e=map -m=bind8 -w=lang -se=he -ke=mass_desc
- webmin language-manager -x=full -e=map -m=bind8 -w=lang -se=he -ke=mass_desc
Transcode only and rename all modules' "help/" old-time format files. Old files, such as "ja_JP.euc.html", "ko_KR.euc.html", "zh_TW.Big5.html" and "ru_RU.html" will be automatically renamed and/or deleted.
- language-manager -w=help -e=map -ot
- webmin language-manager -w=help -e=map -ot
Only transcode language files, using old-time encoding map, from files being in different encodings, to new style, where all language files are in "utf-8" encoding, for Apache module. No translations will be made, and no ".auto" files will be created.
- language-manager -x=full -e=map -m=apache -ot
- webmin language-manager -x=full -e=map -m=apache -ot
Repare human translated language files, which stored in "utf-8" encoding already but still have HTML entities.
- language-manager -m=virtual-server -t=no,es -x=transcode
- webmin language-manager -m=virtual-server -t=no,es -x=transcode
Test translations for "index_stopmsg,trusted_warning" keys, in Russian and German languages, in BIND module, print on-screen results and exit.
- language-manager -m=bind8 -t=ru,de -kt=index_stopmsg,trusted_warning
- webmin language-manager -m=bind8 -t=ru,de -kt=index_stopmsg,trusted_warning
=item --mode, -x <sync|full|transcode>

View File

@@ -3,6 +3,7 @@
# module.
use strict;
use warnings;
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
use 5.010; # Version in CentOS 6
@@ -165,7 +166,7 @@ List one or all configuration directives for C<miniserv.conf> or a module C<conf
=head1 SYNOPSIS
list-config [options]
webmin list-config [options]
=head1 OPTIONS
@@ -192,16 +193,11 @@ Specify a single option to display. By default, the entire configuration file wi
Display the description of the option from the module C<config.info> file, instead of it's current value. This option is only available for modules, as miniserv.conf does not have a config.info.
=back
=head1 EXIT CODES
0 on success
non-0 on error
=head1 LICENSE AND COPYRIGHT
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
<joe@virtualmin.com>.
Copyright 2022 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>

View File

@@ -5,9 +5,12 @@ use strict;
use warnings;
use 5.010;
use File::Basename;
use Getopt::Long;
use Pod::Usage;
use Term::ANSIColor qw(:constants);
use lib (dirname(dirname($0)));
use WebminCore;
sub main
{
@@ -15,7 +18,8 @@ sub main
GetOptions('help|h' => \$opt{'help'},
'config|c=s' => \$opt{'config'},
'user|u=s' => \$opt{'user'},
'password|p=s' => \$opt{'password'});
'password|p=s' => \$opt{'password'},
'stdout|o!' => \$opt{'stdout'});
# If username passed as regular param
my $user = scalar(@ARGV) == 1 && $ARGV[0];
@@ -47,28 +51,11 @@ sub change_password
{
my ($optref) = @_;
my ($minserv_uconf_file, %lusers, @users, %uinfos, %ulines);
my $user = $optref->{'user'};
my $pass = $optref->{'password'};
my $confdif = $optref->{'config'};
my $conf = "$confdif/config";
my $mconf = "$confdif/miniserv.conf";
my $encrypt_password = sub {
my ($pass, $gconfig) = @_;
if ($gconfig->{'md5pass'} == 1) {
# Use MD5 encryption
return &encrypt_md5($pass);
} elsif ($gconfig->{'md5pass'} == 2) {
# Use SHA512 encryption
return &encrypt_sha512($pass);
} else {
# Use Unix DES
srand(time() ^ $$);
return crypt($pass, chr(int(rand(26)) + 65) . chr(int(rand(26)) + 65));
}
};
my $user = $optref->{'user'};
my $pass = $optref->{'password'};
my $confdif = $optref->{'config'};
my $conf = "$confdif/config";
my $mconf = "$confdif/miniserv.conf";
my $conf_check = sub {
my ($configs) = @_;
foreach my $config (@{$configs}) {
@@ -79,11 +66,47 @@ sub change_password
}
}
};
my $root = root($confdif, \&$conf_check);
my $root = root($confdif, \&$conf_check);
my $encrypt_password = sub {
my ($pass, $gconfig, $config) = @_;
my $root = root($confdif, \&$conf_check);
# Load libs
do "$root/acl/md5-lib.pl";
do "$root/web-lib-funcs.pl";
# Use pre-defined encryption (forced by Webmin config)
if (!$optref->{'stdout'} &&
($gconfig->{'md5pass'} == 1 ||
$gconfig->{'md5pass'} == 2))
{
do "$root/acl/md5-lib.pl";
# Use MD5 encryption
return &encrypt_md5($pass) if ($gconfig->{'md5pass'}) == 1;
# Use SHA512 encryption
return &encrypt_sha512($pass) if ($gconfig->{'md5pass'}) == 2;
} else {
# Try detecting system default first
my $module = 'useradmin';
if (-d "$root/$module") {
$ENV{'PERLLIB'} = "$root";
$ENV{'WEBMIN_CONFIG'} = "$confdif";
$ENV{'FOREIGN_ROOT_DIRECTORY'} = "$root/$module";
$ENV{'FOREIGN_MODULE_NAME'} = "$module";
chdir("$root/$module");
require "$root/useradmin/user-lib.pl";
# We need to set third parameter to make sure useradmin's config
# won't be used for hashing format, as we need to auto detect it
return &encrypt_password($pass, undef, 'force_system_detection');
} else {
# Use old Unix DES
srand(time() ^ $$);
return crypt($pass, chr(int(rand(26)) + 65) . chr(int(rand(26)) + 65));
}
}
};
# Check for main config and miniserv config files
&$conf_check([$conf, $mconf]);
@@ -138,7 +161,13 @@ sub change_password
}
# Update with new password and store timestamp
$uinfos{$user}->[0] = &$encrypt_password($pass, \%gconfig);
$uinfos{$user}->[0] = &$encrypt_password($pass, \%gconfig, \%config);
# Print the hash and exit
if ($optref->{'stdout'}) {
say $uinfos{$user}->[0];
exit 0;
}
$uinfos{$user}->[5] = time() if ($uinfos{$user}->[5]);
map {$ulines{$_} = join(":", @{ $uinfos{$_} })} keys %uinfos;
@@ -188,15 +217,15 @@ sub root
=head1 NAME
passwd
passwd
=head1 DESCRIPTION
This program allows you to change the password of a user in the Webmin password file
This program allows you to change the password of a user in the Webmin password file
=head1 SYNOPSIS
passwd [options]
webmin passwd [options]
=head1 OPTIONS
@@ -204,37 +233,32 @@ passwd [options]
=item --help, -h
Print this usage summary and exit.
Print this usage summary and exit.
Examples of usage:
- passwd root
- passwd --user root
- passwd --user root --password ycwyMQRVAZY
- passwd --config /usr/local/etc/webmin --user root --password ycwyMQRVAZY
Examples of usage:
- webmin passwd root
- webmin passwd --user root
- webmin passwd --user root --password ycwyMQRVAZY
- webmin passwd --config /usr/local/etc/webmin --user root --password ycwyMQRVAZY
- webmin passwd --config /usr/local/etc/webmin --user root --password ycwyMQRVAZY --stdout
=item --config, -c
Specify the full path to the Webmin configuration directory. Defaults to C</etc/webmin>
Specify the full path to the Webmin configuration directory. Defaults to C</etc/webmin>
=item --user, -u
Existing Webmin user to change password for
Existing Webmin user to change password for
=item --password, -p
Set new user password. Using this option may be unsecure.
=back
=head1 LICENSE AND COPYRIGHT
Copyright 2021 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>
Ilia Rostovtsev <ilia@virtualmin.com>
Copyright 2022 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>
Ilia Rostovtsev <ilia@virtualmin.com>

178
bin/server Executable file
View File

@@ -0,0 +1,178 @@
#!/usr/bin/env perl
# server - control Webmin web-server
use strict;
use warnings;
use 5.010;
use File::Basename;
use Getopt::Long;
use Pod::Usage;
use Term::ANSIColor qw(:constants);
use lib (dirname(dirname($0)));
use WebminCore;
sub main
{
my %opt;
GetOptions('help|h' => \$opt{'help'},
'command|x=s' => \$opt{'command'},
'config|c=s' => \$opt{'config'});
# If username passed as regular param
my $cmd = scalar(@ARGV) == 1 && $ARGV[0];
$cmd = $opt{'command'} if ($opt{'command'});
if ($cmd !~ /^(status|start|stop|restart|reload|force-restart|kill)$/) {
$cmd = undef;
}
# Show usage
pod2usage(0) if ($opt{'help'} || !$cmd);
# Assign defaults
$opt{'config'} ||= "/etc/webmin";
$opt{'cmd'} = $cmd;
# Catch kill signal
my $sigkill = sub {
system("stty echo");
print "\n^C";
print "\n";
exit 1;
};
$SIG{INT} = \&$sigkill;
# Run change password command
run(\%opt);
return 0;
}
exit main(\@ARGV) if !caller(0);
sub run
{
my ($o) = @_;
my $conf_check = sub {
my ($configs) = @_;
foreach my $config (@{$configs}) {
if (!-r $config) {
say BRIGHT_RED, "Error: ", RESET, "Failed to read Webmin essential config file: ", BRIGHT_YELLOW, $config,
RESET, " doesn't exist";
exit 1;
}
}
};
root($o->{'config'}, \&$conf_check);
my $service = ($o->{'config'} =~ /usermin/ ? 'usermin' : 'webmin');
my $systemctlcmd = `which systemctl`;
$systemctlcmd =~ s/\s+$//;
if ($o->{'cmd'} =~ /^(start|stop|restart|reload)$/) {
my $rs = system("$o->{'config'}/$o->{'cmd'} $service");
exit $rs;
}
if ($o->{'cmd'} =~ /^(kill)$/) {
my $rs;
if (-x $systemctlcmd) {
$rs = system("$systemctlcmd stop $service");
$rs = system("$systemctlcmd kill -s SIGTERM $service");
}
$rs = system("$o->{'config'}/.stop-init --kill >/dev/null 2>&1 $service");
exit $rs;
}
if ($o->{'cmd'} =~ /^(force-restart)$/) {
my $rs = system("$o->{'config'}/restart-by-force-kill $service");
exit $rs;
}
if ($o->{'cmd'} =~ /^(status)$/) {
my $rs;
if (-x $systemctlcmd) {
$rs = system("$systemctlcmd status $service");
} else {
$rs = system("service $service status");
}
exit $rs;
}
exit 0;
}
sub root
{
my ($config, $conf_check) = @_;
my $mconf = "$config/miniserv.conf";
$conf_check->([$mconf]);
open(my $CONF, "<", $mconf);
my $root;
while (<$CONF>) {
if (/^root=(.*)/) {
$root = $1;
}
}
close($CONF);
# Does the Webmin root exist?
if ($root) {
die BRIGHT_RED, "Error: ", BRIGHT_YELLOW, $root, RESET, " is not a directory\n" unless (-d $root);
} else {
# Try to guess where Webmin lives, since config file didn't know.
die BRIGHT_RED, "Error: ", RESET, "Unable to determine Webmin installation directory\n";
}
return $root;
}
1;
=pod
=head1 NAME
server
=head1 DESCRIPTION
This program allows you to control Webmin web-server
=head1 SYNOPSIS
webmin server [command]
webmin [command]
=head1 OPTIONS
=over
=item --help, -h
Print this usage summary and exit.
Examples of usage:
- webmin server status
- webmin server restart
- webmin server --config /usr/local/etc/webmin --command start
- webmin status
- webmin restart
=item --config, -c
Specify the full path to the Webmin configuration directory. Defaults to C</etc/webmin>
=item --command, -x
Available commands:
- status
- start
- stop
- restart
- force-restart
- reload
- kill
=back
=head1 LICENSE AND COPYRIGHT
Copyright 2022 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>
Ilia Rostovtsev <ilia@virtualmin.com>

View File

@@ -3,6 +3,7 @@
# restart Webmin to apply the change.
use strict;
use warnings;
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
use 5.010; # Version in CentOS 6
@@ -136,7 +137,7 @@ Set a configuration directive in either C<miniserv.conf> (the core Webmin config
=head1 SYNOPSIS
set-config [options] [--module] --option <option-name> --value <value>
webmin set-config [options] [--module] --option <option-name> --value <value>
=head1 OPTIONS
@@ -180,6 +181,5 @@ already exist in the file, and was added)
=head1 LICENSE AND COPYRIGHT
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
<joe@virtualmin.com>.
Copyright 2022 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>

View File

@@ -12,6 +12,8 @@ use Term::ANSIColor qw(:constants);
use File::Spec;
use File::Basename;
my $a0 = $ARGV[0];
sub main {
my ( %opt, $subcmd );
GetOptions(
@@ -37,6 +39,7 @@ sub main {
);
$opt{'config'} ||= "/etc/webmin";
$opt{'commands'} = $a0;
my @remain = @ARGV;
# List commands?
@@ -203,7 +206,7 @@ sub run_command {
exit 1;
}
my $command_path = get_command_path($root, $subcmd);
my $command_path = get_command_path($root, $subcmd, $optref);
# Merge the options
# Only handling config, right now...
@@ -223,7 +226,7 @@ sub run_command {
}
sub get_command_path {
my ($root, $subcmd) = @_;
my ($root, $subcmd, $optref) = @_;
# Check for a root-level command (in "$root/bin")
my $command_path;
if ($subcmd) {
@@ -256,11 +259,13 @@ sub get_command_path {
}
}
}
if ($command) {
if ($optref->{'commands'} &&
$optref->{'commands'} =~ /^(status|start|stop|restart|reload|force-restart|force-reload|kill)$/) {
exit system("$0 server $optref->{'commands'}");
} elsif ($command) {
return $command;
} else {
die RED, "Unrecognized subcommand: $subcmd", RESET;
die RED, "Unrecognized subcommand: $subcmd", RESET , "\n";
}
}
@@ -325,7 +330,7 @@ sub man_command {
my ($optref, $subcmd) = @_;
my $root = root($optref->{'config'});
my $command_path = get_command_path($root, $subcmd);
my $command_path = get_command_path($root, $subcmd, $optref);
$ENV{'PAGER'} ||= "more";
open(my $PAGER, "|-", "$ENV{'PAGER'}");
@@ -341,7 +346,7 @@ sub man_command {
sub root {
my ($config) = @_;
open(my $CONF, "<", "$config/miniserv.conf") || die RED,
"Failed to open $config/miniserv.conf", RESET;
"Failed to open $config/miniserv.conf", RESET , "\n";
my $root;
while (<$CONF>) {
if (/^root=(.*)/) {
@@ -351,9 +356,9 @@ sub root {
close($CONF);
# Does the Webmin root exist?
if ( $root ) {
die "$root is not a directory. Is --config correct?" unless (-d $root);
die "$root is not a directory. Is --config correct?\n" unless (-d $root);
} else {
die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}";
die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}\n";
}
return $root;
@@ -412,14 +417,11 @@ Returns Webmin and other modules and themes versions installed (only those for w
=head1 EXIT CODES
0 on success
non-0 on error
0 on success ; non-0 on error
=head1 LICENSE AND COPYRIGHT
Copyright 2022
Jamie Cameron <jamie@virtualmin.com>,
Joe Cooper <joe@virtualmin.com>,
Ilia Rostovtsev <ilia@virtualmin.com>.
Copyright 2022 Jamie Cameron <jcameron@webmin.com>
Joe Cooper <joe@virtualmin.com>
Ilia Rostovtsev <ilia@virtualmin.com>

View File

@@ -1,5 +1,7 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require 'bind8-lib.pl';
# Globals from bind8-lib.pl

View File

@@ -1,5 +1,7 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'bind8-lib.pl';
# Globals from bind8-lib.pl

View File

@@ -3,8 +3,9 @@
use strict;
use warnings;
use Time::Local;
no warnings 'redefine';
no warnings 'uninitialized';
use Time::Local;
BEGIN { push(@INC, ".."); };
use WebminCore;
@@ -1298,7 +1299,7 @@ elsif ($type eq "DMARC") {
[ 's', $text{'value_dmarcfos'} ] ]));
}
elsif ($type eq "NSEC3PARAM") {
# NSEC records have a hash type, flags, number of interations, salt
# NSEC records have a hash type, flags, number of iterations, salt
# length and salt
print &ui_table_row($text{'value_NSEC3PARAM1'},
&ui_select("value0", $v[0] || 1,
@@ -1689,7 +1690,7 @@ return $chroot.$_[0];
}
# has_ndc(exclude-mode)
# Returns 2 if rndc is installed, 1 if ndc is instaled, or 0
# Returns 2 if rndc is installed, 1 if ndc is installed, or 0
# Mode 2 = try ndc only, 1 = try rndc only, 0 = both
sub has_ndc
{
@@ -3288,12 +3289,13 @@ else {
}
}
# create_dnssec_key(&zone|&zone-name, algorithm, size, single-key)
# create_dnssec_key(&zone|&zone-name, algorithm, size, single-key,
# [force-regen])
# Creates a new DNSSEC key for some zone, and places it in the same directory
# as the zone file. Returns undef on success or an error message on failure.
sub create_dnssec_key
{
my ($z, $alg, $size, $single) = @_;
my ($z, $alg, $size, $single, $force) = @_;
my $fn = &get_keys_dir($z);
$fn || return "Could not work keys directory!";
my $dom = $z->{'members'} ? $z->{'values'}->[0] : $z->{'name'};
@@ -3329,6 +3331,17 @@ else {
# Check if there are saved keys, and if so use them
my @savedkeys = grep { $_->{'saved'} } &get_dnssec_key($z, 1);
my $out;
if (@savedkeys && $force) {
# Delete any saved keys, to force re-generation
foreach my $key (@savedkeys) {
foreach my $f ('publicfile', 'privatefile') {
if (ref($key) && $key->{$f} && $key->{'saved'}) {
&unlink_file($key->{$f});
}
}
}
@savedkeys = ( );
}
if (@savedkeys) {
# Rename back the saved key files
foreach my $key (@savedkeys) {
@@ -3703,7 +3716,7 @@ return wantarray ? @rv : $rv[0];
}
# compute_dnssec_key_size(algorithm, def-mode, size)
# Given an algorith and size mode (0=entered, 1=average, 2=big), returns either
# Given an algorithm and size mode (0=entered, 1=average, 2=big), returns either
# 0 and an error message or 1 and the corrected size
sub compute_dnssec_key_size
{
@@ -4043,7 +4056,7 @@ sub dt_resign_zone
}
# dt_zskroll_zone(zone-name)
# Initates a zsk rollover operation for the zone
# Initiates a zsk rollover operation for the zone
sub dt_zskroll_zone
{
my ($d) = @_;
@@ -4056,7 +4069,7 @@ sub dt_zskroll_zone
}
# dt_kskroll_zone(zone-name)
# Initates a ksk rollover operation for the zone
# Initiates a ksk rollover operation for the zone
sub dt_kskroll_zone
{
my ($d) = @_;

View File

@@ -1,5 +1,7 @@
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
do 'bind8-lib.pl';
# Globals from bind8-lib.pl

View File

@@ -2,6 +2,8 @@
# Check a zone's records and report problems
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './bind8-lib.pl';
# Globals from bind8-lib.pl

View File

@@ -2,6 +2,8 @@
# Remove some zone from the open list
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
# Globals
our (%in);

View File

@@ -3,6 +3,8 @@
# Display global ACLs
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
# Globals
our (%text, %access);

View File

@@ -2,6 +2,8 @@
# Display NDC control interface options
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
# Globals
our (%text, %access);

View File

@@ -2,6 +2,8 @@
# Show a form to setup DNSSEC key rotation
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
# Globals
our (%text, %access, %config);

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