Compare commits

...

521 Commits
1.831 ... 1.850

Author SHA1 Message Date
Jamie Cameron
9dc7367dd6 Don't set bridge options that aren't defined 2017-06-24 15:39:12 -07:00
Jamie Cameron
1e8caabc50 Merge branch 'master' of git@github.com:webmin/webmin 2017-06-24 14:03:41 -07:00
Jamie Cameron
64720c97ab Don't overwrite old repo name https://github.com/webmin/webmin/issues/603 2017-06-24 14:01:30 -07:00
Jamie Cameron
94cdddf447 Merge pull request #602 from Jaybus2/master
certmgr: Updated view/manage to work with openssl > 0.9.8
2017-06-22 20:01:16 -07:00
Josh Fisher
460ea14a24 Updated view/manage to work with openssl > 0.9.8 2017-06-22 12:11:54 -04:00
Jamie Cameron
dcd0daac42 Error is not a valid warning level 2017-06-21 15:41:57 -07:00
Jamie Cameron
2ae5345117 Remove dupe string 2017-06-21 10:14:25 -07:00
Jamie Cameron
c87b5c6e3d New major version 2017-06-18 17:17:56 -07:00
Jamie Cameron
4fa781805f Further updates for Debian 9 stable 2017-06-18 16:46:52 -07:00
Jamie Cameron
95180b7f9d Completed port forwarding support 2017-06-17 16:23:23 -07:00
Jamie Cameron
379f7aaf0b Creation and deletion of forwards now working 2017-06-17 15:43:47 -07:00
Jamie Cameron
f79d1040f3 More work on firewalld forwarding support 2017-06-17 14:59:51 -07:00
Jamie Cameron
9c0d9268e1 Merge branch 'master' of git@github.com:webmin/webmin 2017-06-17 12:24:54 -07:00
Jamie Cameron
1cbe773f6f Also parse jail.d/*.local files https://github.com/webmin/webmin/issues/599 2017-06-17 12:24:22 -07:00
Jamie Cameron
27c09c00ec Merge pull request #600 from gnadelwartz/master
firewall: minimal support for ipset rules
2017-06-17 11:44:21 -07:00
Kay Marquardt (Gnadelwartz)
e69c6699ac update lang/en lang/de 2017-06-17 20:35:41 +02:00
Kay Marquardt (Gnadelwartz)
c419c339db locallizaion of ipset output 2017-06-17 20:22:08 +02:00
Kay Marquardt (Gnadelwartz)
835175b098 display ipset name, type, number, size 2017-06-17 19:58:01 +02:00
Kay Marquardt (Gnadelwartz)
7ebd6ae4fe read in ipset sets 2017-06-17 19:37:11 +02:00
Kay Marquardt (Gnadelwartz)
89b8c53666 list active ipsets in index.cgi 2017-06-17 18:05:36 +02:00
Kay Marquardt (Gnadelwartz)
94e8f32e47 generalize args processing and localize src dest 2017-06-17 17:26:11 +02:00
Kay Marquardt (Gnadelwartz)
1456de9649 lang string for source and destination 2017-06-17 16:58:44 +02:00
Kay Marquardt (Gnadelwartz)
9a445e00b9 display description for IP-Set Rules 2017-06-17 15:06:11 +02:00
Kay Marquardt (Gnadelwartz)
771050ba7c display description for IP-Set Rules 2017-06-17 15:05:10 +02:00
Jamie Cameron
2de661cfd7 Start of work on port forwarding 2017-06-16 19:47:53 -07:00
Jamie Cameron
0e774af597 Support GPT fdisk partitions 2017-06-16 19:47:28 -07:00
Jamie Cameron
c22e70a0d1 Merge branch 'master' of git@github.com:webmin/webmin 2017-06-16 19:14:17 -07:00
Jamie Cameron
0ee9cd2808 Use /proc/filesystems to check for support https://sourceforge.net/p/webadmin/bugs/4972/ 2017-06-16 18:48:41 -07:00
Joe Cooper
2b92ba535e Merge pull request #598 from swelljoe/master
Fix default zone detection

Merging to insure it makes it into the next release, as it's needed for VM6.
2017-06-15 13:45:36 -05:00
Joe cooper
0a765063c3 Probably don't need to fail if no default 2017-06-15 13:41:56 -05:00
Jamie Cameron
911f9fd46d Use correct zone even for cleanup 2017-06-15 13:30:21 -05:00
Jamie Cameron
c67c945e58 escape some params 2017-06-15 13:30:20 -05:00
Jamie Cameron
91f03a2109 Escape untrusted params 2017-06-15 13:30:20 -05:00
Jamie Cameron
5aed345808 Handle xz compressed files https://sourceforge.net/p/webadmin/bugs/4970/ 2017-06-15 13:30:20 -05:00
Kay Marquardt (Gnadelwartz)
34468b5eed display wrapper config-test results in check_inst.cgi 2017-06-15 13:30:20 -05:00
Kay Marquardt (Gnadelwartz)
6f581fb0f1 more transl check_inst.cgi 2017-06-15 13:30:20 -05:00
Kay Marquardt (Gnadelwartz)
4f497ea7b8 fix index_emdomdir=.. 2017-06-15 13:30:20 -05:00
Jamie Cameron
30577a4161 Use correct zone even for cleanup 2017-06-14 15:10:39 -07:00
Jamie Cameron
c2d4a90639 escape some params 2017-06-12 14:12:39 -07:00
Jamie Cameron
f6706036b9 Merge branch 'master' of git@github.com:webmin/webmin 2017-06-12 14:06:54 -07:00
Jamie Cameron
a330e913ee Escape untrusted params 2017-06-12 14:01:10 -07:00
Jamie Cameron
4b6df81888 Merge pull request #596 from gnadelwartz/master
majordomo: finish check_install-cgi tests
2017-06-11 14:18:27 -07:00
Joe cooper
ff42df7647 Fix default zone detection 2017-06-11 15:38:01 -05:00
Jamie Cameron
cca627a50e Merge branch 'master' of git@github.com:webmin/webmin 2017-06-11 13:29:09 -07:00
Jamie Cameron
6ca8341261 Handle xz compressed files https://sourceforge.net/p/webadmin/bugs/4970/ 2017-06-11 13:28:14 -07:00
Joe Cooper
591981563a Merge pull request #597 from swelljoe/master
More strict/warn fixes
2017-06-11 15:04:04 -05:00
Kay Marquardt (Gnadelwartz)
7737685835 display wrapper config-test results in check_inst.cgi 2017-06-11 21:00:09 +02:00
Kay Marquardt (Gnadelwartz)
efe00dc8e3 more transl check_inst.cgi 2017-06-11 18:52:07 +02:00
Kay Marquardt (Gnadelwartz)
cae85a9ce8 fix index_emdomdir=.. 2017-06-11 17:21:57 +02:00
Jamie Cameron
0ce2ce7236 Merge pull request #592 from gnadelwartz/master
Majordomo: add check_inst.cgi to provide hints about missing/wrong config/installation
2017-06-10 18:49:59 -07:00
Jamie Cameron
041ed3ace4 Fix perl warnings 2017-06-10 12:46:33 -07:00
Kay Marquardt (Gnadelwartz)
375436621e add check config buton to edit_global 2017-06-10 00:31:40 +02:00
Kay Marquardt (Gnadelwartz)
019b0f0625 start translation check_inst.cgi 2017-06-09 19:14:34 +02:00
Kay Marquardt (Gnadelwartz)
24b2bcd81b make some checks only if majordomo is installed 2017-06-09 18:59:33 +02:00
Kay Marquardt (Gnadelwartz)
b7ede39420 add script check_inst.cgi to provide hints what can be wrong 2017-06-09 16:48:25 +02:00
Kay Marquardt (Gnadelwartz)
d41b963859 add fail=Failed to webmin lang file 2017-06-09 13:52:42 +02:00
Kay Marquardt (Gnadelwartz)
fd857573ee index.cgi: ucfirst listname, maito:listname 2017-06-09 13:46:47 +02:00
Jamie Cameron
6389fe1787 Merge pull request #591 from Jaybus2/master
certmgr: Fix signcsr not using configured openssl.cnf
2017-06-08 22:21:24 -07:00
Joe cooper
b67b98f6b5 More strict/warn fixes 2017-06-08 21:26:44 -05:00
Josh Fisher
2ca5006c6c Fix certmgr/signcsr not using configured openssl.cnf 2017-06-08 11:07:26 -04:00
Kay Marquardt (Gnadelwartz)
d7652f88db move check_mdom_conf() to mdom-lib.pl 2017-06-08 14:17:49 +02:00
Jamie Cameron
873519e64e Merge pull request #590 from gnadelwartz/master
majordomo: allow edit and save multi line globals
2017-06-07 15:08:04 -07:00
Kay Marquardt (Gnadelwartz)
e44934a153 remove debug use Data:dump 2017-06-07 17:24:48 +02:00
Kay Marquardt (Gnadelwartz)
8c3ccb1503 fix get_list_config offset 2017-06-07 17:22:26 +02:00
Kay Marquardt (Gnadelwartz)
0e77146a48 allow edit and save multi line globals 2017-06-07 14:58:01 +02:00
Jamie Cameron
1ed3f58598 Handle new quoting of colors in webmin 1.840 https://sourceforge.net/p/webadmin/bugs/4968/ 2017-06-05 18:54:44 -07:00
Jamie Cameron
23873a5c2b Ensure that the most recent cert file is used 2017-06-04 14:36:34 -07:00
Jamie Cameron
a6052e1ae9 Remove tags thhat will be escaped 2017-06-04 12:31:44 -07:00
Jamie Cameron
122c573f94 Also try common cert locations 2017-06-02 16:41:17 -07:00
Jamie Cameron
0de4ab8c29 Merge branch 'master' of git@github.com:webmin/webmin 2017-06-02 15:32:18 -07:00
Jamie Cameron
2ba05ab405 Don't delete temp file for download if it was pre-created in /tmp/.webmin https://virtualmin.com/node/52315 2017-06-02 15:31:51 -07:00
Jamie Cameron
0916b7ad99 Merge pull request #588 from swelljoe/master
Roll back amp change, as HTML5 allows it
2017-06-02 16:36:40 -04:00
Joe cooper
c43c6a4e27 Roll back amp change, as HTML5 allows it 2017-06-02 15:19:47 -05:00
Jamie Cameron
00abf8494a New dev version 2017-06-02 08:55:44 -07:00
Jamie Cameron
529112cd7a German translation updates from Raymond Vetter 2017-06-01 23:16:52 -07:00
Jamie Cameron
6365b6bdcd German translation updates from Raymond Vetter 2017-06-01 23:16:52 -07:00
Jamie Cameron
a395c32ec6 Slave master IPs can contain "key" https://sourceforge.net/p/webadmin/bugs/4966/ 2017-06-01 21:45:04 -04:00
Jamie Cameron
06387a59fa Merge pull request #587 from gnadelwartz/master
german module.info (again and correct)
2017-06-01 21:16:19 -04:00
Jamie Cameron
4cc65beacc Restart FPM server after updating an FPM config file 2017-06-01 12:45:41 -07:00
Jamie Cameron
a2de217c25 Merge pull request #586 from ymulleneers/master
Various minor corrections
2017-06-01 15:13:40 -04:00
Jamie Cameron
f6320c27e2 Merge pull request #563 from qooob/patch-17
`en.UTF8` -> `en` for the upcoming 1.841 to satisfy compiler
2017-06-01 14:49:06 -04:00
Kay Marquardt (Gnadelwartz)
d625028e8f german module.info (again and correct) 2017-06-01 17:39:48 +02:00
Jamie Cameron
7da8c4dd66 Deal with zero-sized filesystems 4c19095949 2017-06-01 07:14:53 -07:00
Jamie Cameron
7b272988e8 Add missed error message 2017-05-31 22:28:14 -07:00
Jamie Cameron
4d47bc8442 Russian fix 2017-05-31 22:27:06 -07:00
Jamie Cameron
2ea940145b Start of work on FPM format support 2017-05-31 22:26:46 -07:00
MUY
377bcacff8 Update web-lib-funcs.pl
quote_escape - usually used to concatenate to string, so the function should always return a string, even if first argument is undef.  The usage of the eq operator on an undef variable cause a warning, in addition '' is evaluated to 'false' in conditions.
2017-06-01 06:43:59 +02:00
MUY
1379d2cc35 Update web-lib-funcs.pl
html_escape hang if first argument is not defined (ex: text('not_defined')) + usually used to concatenate to string, so the function should always returns a string.
2017-06-01 06:37:34 +02:00
MUY
37a5504f51 Update switch_user.cgi
Only ask once the password in Mozilla Firefox 31.
2017-06-01 06:29:57 +02:00
Jamie Cameron
ea8b2fc1bf New dev version bump 2017-05-31 18:57:45 -07:00
Jamie Cameron
2ee32e71cf Code cleanups 2017-05-31 18:52:38 -07:00
Jamie Cameron
08a1f3db74 If speed is reported as Unknown, don't use it 2017-05-31 18:19:27 -07:00
Jamie Cameron
5b0606c9fc Set correct ownership on compressed files 2017-05-31 15:05:20 -07:00
Jamie Cameron
06752583db Add some missing escaping 2017-05-31 14:43:10 -07:00
Jamie Cameron
0d1f01d511 Upload new files with correct ownership, and fix some formatting errors 2017-05-31 14:29:28 -07:00
Jamie Cameron
4f6b28f95c Merge pull request #585 from gnadelwartz/majordomo2
majordomo: fix subs closed, add quotes around tag values
2017-05-31 11:05:59 -04:00
Kay Marquardt (Gnadelwartz)
32ecbaaf02 fix subs closed, add quotes around tag values 2017-05-31 11:05:13 +02:00
Jamie Cameron
f93251569b Clean up code, and set correct owner on downloaded files 2017-05-30 21:56:39 -07:00
Jamie Cameron
3176c4cd45 Merge branch 'master' of git@github.com:webmin/webmin 2017-05-30 20:03:47 -07:00
Jamie Cameron
7ed31959e4 Use correct zone file for www. record 2017-05-30 19:58:49 -07:00
Jamie Cameron
72234a7669 Merge pull request #581 from gnadelwartz/master
convert majordomo final part
2017-05-30 19:32:50 -07:00
Joe Cooper
44822d651a Merge pull request #584 from swelljoe/master
Use escaped ampersand
2017-05-30 21:15:02 -05:00
Joe cooper
cde3eb1bb1 Merge remote-tracking branch 'upstream/master' 2017-05-30 21:13:53 -05:00
Joe cooper
f1c000d1e5 When in doubt, nest more tables 2017-05-30 21:12:53 -05:00
Joe cooper
4f564b9e2a Use escaped ampersand 2017-05-30 20:36:12 -05:00
Joe Cooper
2215ee4cf8 Merge pull request #583 from swelljoe/master
Get rid of about half of validation errors
2017-05-30 20:17:12 -05:00
Joe cooper
483a9a7c5f One last literal quoted 2017-05-30 20:13:36 -05:00
Joe cooper
7e75fdfa16 More validation fixes 2017-05-30 20:08:34 -05:00
Joe cooper
086e38676e Use quoted literals in tag style 2017-05-30 19:33:16 -05:00
Joe Cooper
54c1f071fc Merge pull request #582 from swelljoe/master
HTML 4.01 transitional until we get rid of in-tag styling
2017-05-30 17:56:04 -05:00
Joe cooper
72a6acb7ef HTML 4.01 transitional until we get rid of in-tag styling 2017-05-30 17:54:57 -05:00
Kay Marquardt
abe3a4858b Merge pull request #4 from gnadelwartz/majordomo2
majordomo final part
2017-05-30 17:59:58 +02:00
Kay Marquardt (Gnadelwartz)
a41915611e show subscription rules in edit list 2017-05-30 17:58:12 +02:00
Kay Marquardt (Gnadelwartz)
e4cb1a4af5 fix set_alias 2017-05-30 17:09:30 +02:00
Kay Marquardt (Gnadelwartz)
cf4c57e947 save/load owner from list.owner file 2017-05-30 16:55:26 +02:00
Kay Marquardt (Gnadelwartz)
d5f9824741 first aid: provide download link of patched majordomo version 2017-05-30 14:22:18 +02:00
Kay Marquardt (Gnadelwartz)
5129dfbe79 fix missing dynamic in config.info.de 2017-05-30 12:56:53 +02:00
Kay Marquardt (Gnadelwartz)
4b6f58eac8 config option for save list owner in listname.owner 2017-05-30 12:51:44 +02:00
Kay Marquardt (Gnadelwartz)
e34875ec0b more options for create list 2017-05-30 12:33:06 +02:00
Jamie Cameron
40db0575f6 Create new files with same ownership as parent (and add some missing escaping) 2017-05-29 16:16:14 -07:00
Jamie Cameron
74d463be57 Merge branch 'master' of git@github.com:webmin/webmin 2017-05-29 16:08:44 -07:00
Jamie Cameron
1a99e197dc Create new dirs with same ownership as parent 2017-05-29 16:07:03 -07:00
Jamie Cameron
19e4df6f0e Merge pull request #575 from gnadelwartz/majordomo2
majordomo: finish index, delete_list, edit_members (Part 3)
2017-05-28 22:14:54 -07:00
Jamie Cameron
49d4e0f4f3 Version bump for dev release 2017-05-28 12:11:34 -07:00
Jamie Cameron
504a7d78c7 Merge branch 'master' of git@github.com:webmin/webmin 2017-05-28 12:09:18 -07:00
Jamie Cameron
3ecc241b54 Also check certifate altnames https://sourceforge.net/p/webadmin/bugs/4963/ 2017-05-28 12:08:45 -07:00
Joe Cooper
8160e5f777 Merge pull request #579 from swelljoe/master
default val for $user
2017-05-28 14:06:24 -05:00
Joe cooper
3df2f306f7 default val for 2017-05-28 14:04:45 -05:00
Joe Cooper
3027952e0d Merge pull request #564 from swelljoe/master
Some more cleanups to make deb and rpm
2017-05-28 14:01:48 -05:00
Joe cooper
505d380fbb Merge remote-tracking branch 'upstream/master' 2017-05-28 13:57:00 -05:00
Jamie Cameron
65c28ad2ab Merge branch 'master' of git@github.com:webmin/webmin 2017-05-27 21:42:32 -07:00
Jamie Cameron
da6b642778 Fix saving of usermin category names https://github.com/webmin/usermin/issues/23 2017-05-27 21:41:52 -07:00
Kay Marquardt (Gnadelwartz)
2d49c19716 fix remote(sendmail), convert all <input submit> to &ui_submit() 2017-05-28 00:21:24 +02:00
Kay Marquardt (Gnadelwartz)
b7c85e32c7 edit button for mail settings 2017-05-26 23:37:46 +02:00
Kay Marquardt (Gnadelwartz)
d2283223c3 template for list.info, use sendmail to subscribe, use archive if exist 2017-05-26 23:32:10 +02:00
Kay Marquardt (Gnadelwartz)
10881d9171 move majordomo default list config to /template 2017-05-26 18:25:11 +02:00
Kay Marquardt (Gnadelwartz)
770cc24f57 create majordomo default config template 2017-05-26 18:19:42 +02:00
Kay Marquardt (Gnadelwartz)
7b4f8f5b40 remove wrong lang/edit_list copy 2017-05-26 16:53:39 +02:00
Kay Marquardt (Gnadelwartz)
e5fe901147 finish converting index, delete_list and edit_member 2017-05-26 16:46:34 +02:00
Kay Marquardt (Gnadelwartz)
017e6585b6 convert new list to &ui_button 2017-05-26 14:33:54 +02:00
Kay Marquardt (Gnadelwartz)
81d70f5cc9 adjust headers for edit and delete 2017-05-26 14:14:27 +02:00
Kay Marquardt (Gnadelwartz)
72283092da add file list.owner 2017-05-26 13:21:33 +02:00
Jamie Cameron
0e98b4a40a Merge pull request #574 from gnadelwartz/master
Majordomo conversion Part2
2017-05-25 19:48:44 -07:00
Jamie Cameron
b52d5c9986 Merge branch 'master' of git@github.com:webmin/webmin 2017-05-25 16:48:15 -07:00
Kay Marquardt
47b5ee31c0 Merge pull request #3 from gnadelwartz/majordomo2
Majordomo conversion Part2
2017-05-26 00:12:08 +02:00
Kay Marquardt (Gnadelwartz)
37fe61d6f3 floating buttons and edit icons 2017-05-25 23:57:23 +02:00
Kay Marquardt (Gnadelwartz)
fcaf0ffb35 /usr/local/bin 2017-05-25 23:48:46 +02:00
Kay Marquardt (Gnadelwartz)
cd2cb0f5d6 majordomo conversion part2 2017-05-25 23:43:48 +02:00
Kay Marquardt (Gnadelwartz)
8bb3e372ba adjust lang/de 2017-05-25 18:27:06 +02:00
Kay Marquardt (Gnadelwartz)
581ddd1491 new design for edit list 2017-05-25 18:26:12 +02:00
Jamie Cameron
14610a77f1 Underlying default cannot be switched yet 2017-05-25 08:00:49 -07:00
Joe cooper
c7285f5d11 move t/ removal to the right place 2017-05-24 23:04:33 -05:00
Joe cooper
f1e5428e50 Autoprov to avoid pretending to provide perl modules 2017-05-24 22:53:01 -05:00
Joe cooper
c9a9fdeedf Merge remote-tracking branch 'upstream/master' 2017-05-24 22:50:13 -05:00
Jamie Cameron
7482794f07 Merge pull request #573 from gnadelwartz/master
correct soltion for missing col when chain is filtered
2017-05-24 17:18:34 -07:00
Jamie Cameron
675e9ec513 Remove comment 2017-05-24 16:14:55 -07:00
Jamie Cameron
133b511a75 Encourage use of utf-8 languages 2017-05-24 16:14:20 -07:00
Kay Marquardt
0b1fac9f51 Merge pull request #2 from gnadelwartz/majordomo2
fix: fix missing col, no morelinebraks because of <b> in cell
2017-05-24 09:51:40 +02:00
Kay Marquardt (Gnadelwartz)
989c759036 /usr/LOCAL/bin/perl 2017-05-24 09:48:46 +02:00
Kay Marquardt (Gnadelwartz)
2afd4a1dc5 remove forgotten debug 2017-05-24 09:47:31 +02:00
Kay Marquardt (Gnadelwartz)
e46c7ceb44 replace <b> with <strong> => no <br> in table row 2017-05-24 09:44:28 +02:00
Kay Marquardt (Gnadelwartz)
d9cc4509d2 correct solution for missing 1st col 2017-05-24 09:43:11 +02:00
Jamie Cameron
faa65976d7 Merge branch 'master' of git@github.com:webmin/webmin 2017-05-23 21:54:18 -07:00
Jamie Cameron
53e306860e Version bump 2017-05-23 21:53:39 -07:00
Jamie Cameron
c64c04d3e0 Merge pull request #572 from gnadelwartz/master
majordomo change index view from buttons to list (part 1)
2017-05-23 17:28:01 -07:00
Kay Marquardt
e7c4c3abd9 Merge pull request #1 from gnadelwartz/majordomo2
display list values in overview
2017-05-23 20:52:00 +02:00
Kay Marquardt (Gnadelwartz)
194d48bd9e display list values in overview 2017-05-23 20:48:51 +02:00
Kay Marquardt (Gnadelwartz)
75efeb1d16 remove config.de.UTF-8 2017-05-23 17:08:13 +02:00
Kay Marquardt (Gnadelwartz)
99a63d9295 add postfix config mode to all config.info.* 2017-05-23 17:04:20 +02:00
Kay
ef7e2cd933 change index view from buttons to list (part 1) 2017-05-23 14:05:01 +02:00
Jamie Cameron
ad043d235e Norwegian update from Stein-Aksel Basma 2017-05-22 17:20:43 -07:00
Jamie Cameron
678cc38013 Merge pull request #570 from gnadelwartz/master
add update-from-repo to dist
2017-05-21 18:19:44 -07:00
Jamie Cameron
f6090947ba Merge branch 'master' of git@github.com:webmin/webmin 2017-05-21 11:26:22 -07:00
Jamie Cameron
d53ce67174 Filter out ANY onX= tags in HTML, as the number of possible ways Javascript can be called is unbounded 2017-05-21 11:25:58 -07:00
Kay Marquardt (Gnadelwartz)
0cfb09e436 add update-from-repo to dist 2017-05-21 19:45:08 +02:00
Jamie Cameron
1a4d525ef2 Merge pull request #569 from gnadelwartz/master
add some sanity checks to update-from-repo if alternate repo is given
2017-05-21 10:05:02 -07:00
Kay
8bfaf2b488 fix REPO for sanity check 2017-05-21 15:29:36 +02:00
Kay Marquardt (Gnadelwartz)
af8d5d24a1 add sanity checks if alternate repo given 2017-05-21 15:23:52 +02:00
Kay
af65582191 fix indention and setup.sh not copied in usermin 2017-05-21 14:26:36 +02:00
Jamie Cameron
87fe720d04 Merge pull request #567 from gnadelwartz/master
Update webmin/usermin in place from github.com repo
2017-05-20 12:55:05 -07:00
Jamie Cameron
c74a867652 Fix typo 888b0f27f5 2017-05-20 12:48:07 -07:00
Kay Marquardt
e4738380e1 Update edit_file.cgi 2017-05-20 18:05:06 +02:00
Kay Marquardt
7df549f91d Update edit_file.cgi 2017-05-20 18:04:45 +02:00
Kay Marquardt
7e9905ce3c revert edit-file.cgi wrong repo 2017-05-20 18:04:23 +02:00
Kay Marquardt (Gnadelwartz)
594a874a4b on iso-8859 try a second guess 2017-05-20 17:58:58 +02:00
Kay Marquardt (Gnadelwartz)
b047220417 check for additional standard modules eg majordomo 2017-05-20 10:26:43 +02:00
Kay Marquardt
01165959d3 remove obsolete redirect to file 2017-05-19 17:12:19 +02:00
Jamie Cameron
888b0f27f5 Deal with CPU info that doesn't contact mhz https://github.com/webmin/webmin/pull/565 2017-05-19 07:50:39 -07:00
Kay Marquardt
5e5a7b9cc3 forgot lang and ulang when updateing lang files only 2017-05-19 16:05:15 +02:00
Kay Marquardt
0c25d52a6d shorten version nuber created from last commit date 2017-05-19 15:05:09 +02:00
Kay Marquardt (Gnadelwartz)
d220823080 Update webmin/usermin in place from github.com repo 2017-05-19 14:45:57 +02:00
Jamie Cameron
fa1929966c Put free space in a more consistent location 2017-05-18 21:09:23 -07:00
Jamie Cameron
0effafd397 Catalan updates from Jaume Badiella 2017-05-18 21:07:52 -07:00
Jamie Cameron
01b0a01f90 Catalan updates from Jaume Badiella 2017-05-18 21:07:26 -07:00
Jamie Cameron
9da01f6a70 Ignore missing deps on upgrade https://sourceforge.net/p/webadmin/bugs/4960/ 2017-05-18 17:50:13 -07:00
Jamie Cameron
aafbe392ba Filter out some more javascript 2017-05-17 22:15:01 -07:00
Jamie Cameron
8ca3de3c28 Use safe write function, and simplify error handling 2017-05-16 23:16:46 -07:00
Jamie Cameron
817244241a Filename needs escaping 2017-05-16 23:11:36 -07:00
Joe Cooper
7316d87049 Merge branch 'master' into master 2017-05-16 23:49:07 -05:00
Joe cooper
368d7e0297 handle undefined vars 2017-05-16 23:45:58 -05:00
Joe cooper
721a1f47b3 marge upstream changes to makemodulerpm 2017-05-16 23:27:29 -05:00
Joe cooper
4e668e19cb Merge remote-tracking branch 'upstream/master' 2017-05-16 23:25:55 -05:00
Jamie Cameron
509e01eb90 Move version logic to more comprehensible place 2017-05-16 12:58:20 -07:00
Jamie Cameron
2c1f20fb1d Support exclude flag and set version in .info files 2017-05-16 12:57:18 -07:00
Jamie Cameron
703802065f The uptime command has changed its wording https://github.com/webmin/webmin/issues/498 2017-05-16 12:39:24 -07:00
Jamie Cameron
6243d45f3f Respect check-SSL setting 2017-05-16 12:25:24 -07:00
Ilia Rostovtsev
de2a5e9ff2 en.UTF8 -> en for the upcoming 1.841 to satisfy compiler 2017-05-16 18:19:07 +03:00
Joe cooper
43afab0d84 don't warn on uninitialized 2017-05-16 04:18:13 -05:00
Joe cooper
8d013ec69c More strict/warn fixes 2017-05-16 03:44:59 -05:00
Jamie Cameron
7face4b2be Add flag to exclude files. Also, update version in module.info to match command line, if given 2017-05-15 21:46:07 -07:00
Jamie Cameron
26d05f0437 Add --exclude flag 2017-05-15 18:21:59 -07:00
Jamie Cameron
f7da281d72 Allow disabling of the SSL name check 2017-05-15 16:54:07 -07:00
Jamie Cameron
af33c38d17 Merge branch 'master' of git@github.com:webmin/webmin 2017-05-15 16:35:07 -07:00
Jamie Cameron
5abc9b538b Include SNI host in hostname to check 2017-05-15 16:34:13 -07:00
Jamie Cameron
34781fd651 German translation updates from Raymond Vetter 2017-05-14 21:01:53 -07:00
Jamie Cameron
ea69c0978b German translation updates from Raymond Vetter 2017-05-14 21:01:50 -07:00
Jamie Cameron
7f2c27df29 Merge pull request #561 from gnadelwartz/master
tarnslation adjustements like for usermin
2017-05-14 14:16:07 -07:00
Kay Marquardt
034a3e9f8c adjust trans 2017-05-14 19:57:17 +02:00
Jamie Cameron
fdc689ad5d Merge branch 'master' of git@github.com:webmin/webmin 2017-05-14 10:52:56 -07:00
Kay Marquardt
07c560cdf6 de de.UTF longgdesc 2017-05-14 19:51:37 +02:00
Jamie Cameron
586af08e08 Get and show thin pool usage percentage 2017-05-14 10:49:04 -07:00
Jamie Cameron
7ba6250482 Merge pull request #560 from gnadelwartz/master
german translations converted from UTF-8
2017-05-14 10:05:40 -07:00
Kay Marquardt
f814546239 adjust german translation 2017-05-14 15:09:54 +02:00
Kay Marquardt
191827e425 Create config.info.de.UTF-8 2017-05-14 15:08:38 +02:00
Kay Marquardt
9fef0d060b german translation 2017-05-14 15:06:06 +02:00
Kay Marquardt
acc9f93fef german translations converted from UTF-8 2017-05-14 14:03:38 +02:00
Jamie Cameron
527b8b1467 software packages isn't supported on macos 2017-05-13 15:26:58 -07:00
Jamie Cameron
bf4e69bc54 software packages isn't supported on macos 2017-05-13 15:26:10 -07:00
Jamie Cameron
60351e59c7 Add monitor type for fail2ban https://sourceforge.net/p/webadmin/bugs/4956/ 2017-05-13 15:13:43 -07:00
Jamie Cameron
c031ac4b76 Merge branch 'master' of git@github.com:webmin/webmin 2017-05-12 21:59:22 -07:00
Jamie Cameron
4ffd3753a2 Handle FreeBSD vmstat output https://github.com/webmin/webmin/issues/498 2017-05-12 21:45:56 -07:00
Jamie Cameron
b6a5b4b230 Merge pull request #559 from gnadelwartz/patch-1
ajdust filemin german translations
2017-05-12 17:25:27 -07:00
Jamie Cameron
5a21764743 Warn if saved config is invald 2017-05-12 17:10:15 -07:00
Kay Marquardt
ca6739cda3 Merge pull request #1 from gnadelwartz/patch-2
fix my typos
2017-05-12 22:54:58 +02:00
Kay Marquardt
add5d65a6b Merge branch 'patch-1' into patch-2 2017-05-12 22:54:42 +02:00
Kay Marquardt
55db94413b fix my typos 2017-05-12 22:52:51 +02:00
Kay Marquardt
f21e731422 adjust translations to autehtic-theme translations 2017-05-12 22:50:27 +02:00
Joe cooper
5030fab70e Remove test directory 2017-05-11 23:30:34 -05:00
Joe cooper
0b70e3676e use 5.010 for defined-or 2017-05-11 23:23:36 -05:00
Joe cooper
5f6fe082e2 Even more strict/warn 2017-05-11 23:20:33 -05:00
Joe cooper
6a953d9670 Some more strict/warn cleanups 2017-05-11 23:10:35 -05:00
Jamie Cameron
766ccf57de Deal wth missing findmnt command gracefully https://sourceforge.net/p/webadmin/bugs/4955/ 2017-05-11 20:42:22 -07:00
Jamie Cameron
4e02a9823d Fix incorrect string https://sourceforge.net/p/webadmin/bugs/4953/ 2017-05-10 22:31:39 -07:00
Jamie Cameron
da43d7185c changelog for disk free display 2017-05-10 14:41:44 -07:00
Jamie Cameron
4c19095949 Show filesystems that are almost full 2017-05-10 14:40:12 -07:00
Jamie Cameron
c07dd3cddf Merge branch 'master' of git@github.com:webmin/webmin 2017-05-10 12:54:11 -07:00
Jamie Cameron
9fe942e958 Return list of per-filesystem stats too 2017-05-10 12:53:14 -07:00
Jamie Cameron
7ba14d9de4 Merge pull request #558 from gnadelwartz/add-warning-about-not-active-direct
Add warnings about not active direct and disable edit for filtered rules
2017-05-10 10:52:30 -07:00
Jamie Cameron
c455b93573 Merge pull request #557 from gnadelwartz/hofix-filter_chain
hotfix filter chain #555
2017-05-10 10:49:03 -07:00
Kay Marquardt
ba263882a6 disable edit/delete for filtered rules, unified firewall_message
because we must hold jump to chain rules even if filtered to statisfy iptables-restore, edit and delet these rules is disabled.

replaced shorewall_message, firewalld_message and fail2ban_message by one sub external_firewall_message
2017-05-10 17:39:42 +02:00
Kay Marquardt
f5927981a6 keep -j CHAIN to statisfy iptables-restore 2017-05-10 14:28:54 +02:00
Kay Marquardt
7dcce2a64f Warning about external Firewall programm and no direct mode 2017-05-10 12:18:06 +02:00
Kay Marquardt
f9d1278a00 Warning about external Firewall programm and no direct mode 2017-05-10 12:10:33 +02:00
Kay Marquardt
771e303e37 filter_chain does now work without direct
BUT only if no external firewall configuration is detected, i.e. fail2ban.
In this case a Warning is diplayed to activate direct.
2017-05-10 12:05:44 +02:00
Kay Marquardt
18e165e925 filter_chain works now also without direct
filter_chain works now also without direct but its recommended.
a waning is displayed if you use it with fail2ban detected and without direct mode
2017-05-10 12:02:37 +02:00
Kay Marquardt
09c125ad9a prevent modifiying of filtered chains 2017-05-10 11:54:46 +02:00
Kay Marquardt
7127ac2072 add warning aubout using filter_chain without direct 2017-05-10 11:51:10 +02:00
Kay Marquardt
b9507b0d77 adjust description direct must be active 2017-05-10 10:37:41 +02:00
Kay Marquardt
fe265aa65b add description to mention direct must be active 2017-05-10 10:36:58 +02:00
Kay Marquardt
f003b029b6 hotfix for filter_chain: use only with direct 2017-05-10 10:07:05 +02:00
Jamie Cameron
41c5bd30ea Merge pull request #551 from gnadelwartz/master
filter out chains not managed by firewall and add warning if fail2ban detected
2017-05-09 10:30:53 -07:00
Jamie Cameron
f5549dbe39 Merge branch 'master' of git@github.com:webmin/webmin 2017-05-09 09:17:51 -07:00
Kay Marquardt
0b416e09e8 Merge pull request #1 from gnadelwartz/firewall-f2b-warn
merge branch wadd arning about fail2ban firewalll rules detected
2017-05-09 13:24:55 +02:00
Kay Marquardt
e01770a0a1 adjust translation 2017-05-09 13:23:48 +02:00
Kay Marquardt
bcec484ebf adjust description 2017-05-09 13:22:08 +02:00
Kay Marquardt
314489fae7 more secure matching against chains to filter out 2017-05-09 13:13:43 +02:00
Kay Marquardt
87854875b7 remove default for filter_chain 2017-05-09 13:09:06 +02:00
Kay Marquardt
da0b587b2b add index_fail2ban 2017-05-09 12:31:46 +02:00
Kay Marquardt
3290f4c11f index_fail2ban translation 2017-05-09 12:29:57 +02:00
Kay Marquardt
7a3782a680 detect fail2ban usage 2017-05-09 12:26:33 +02:00
Jamie Cameron
e1d7fc3c14 Don't check fields that don't exist https://github.com/webmin/webmin/issues/553 2017-05-08 19:16:00 -07:00
Kay Marquardt
b5d1826ef7 Update config 2017-05-07 21:14:43 +02:00
Kay Marquardt
41908574ee Update config.info.de 2017-05-07 21:01:14 +02:00
Kay Marquardt
46f5f9715f Update config.info 2017-05-07 20:59:43 +02:00
Kay Marquardt
e9a5ea229c firewall-lib.pl regex to filter out chains
add regex filter to filter out chains not managed by firewall, i.e. fail2ban,
in get_iptables_save()
2017-05-07 20:58:31 +02:00
Jamie Cameron
f8a2f9595d Merge pull request #549 from ymulleneers/master
Indentation
2017-05-06 19:19:16 -07:00
Jamie Cameron
867fda60dc Also import the theme key 2017-05-06 12:07:34 -07:00
Jamie Cameron
04c217c97a Prevent same allowed path being listed twice 2017-05-06 11:41:08 -07:00
Jamie Cameron
e787caf228 Fix path validation when saving files https://github.com/webmin/webmin/issues/548 2017-05-06 11:24:31 -07:00
Jamie Cameron
45d5dec5a3 Fix perl warning 2017-05-05 16:14:24 -07:00
Jamie Cameron
1efb2eb206 Support Virtuozzo linux https://sourceforge.net/p/webadmin/bugs/4877/ 2017-05-05 14:30:12 -07:00
Jamie Cameron
4aceed5c8d Add perl-Encode-Detect dependency 2017-05-05 14:15:57 -07:00
MUY
f046efed20 Merge pull request #1 from ymulleneers/ymulleneers-patch-1
Update sorttable.js
2017-05-05 20:33:52 +02:00
MUY
d7a9fdb431 Update sorttable.js
Indentation
2017-05-05 20:33:19 +02:00
Jamie Cameron
814cf262fe Merge pull request #547 from qooob/patch-16
Check for valid encoding
2017-05-05 10:07:39 -07:00
Jamie Cameron
0ce247a1aa Merge pull request #546 from qooob/patch-15
Let non-unicode users read files in their charset correctly + check f…
2017-05-05 10:07:10 -07:00
Jamie Cameron
82a0a3e5c0 Remove non-ascii chars that aren't allowed in SSL certs https://www.virtualmin.com/node/52077 2017-05-05 09:56:14 -07:00
Jamie Cameron
245709dca0 Only iterate over the last octet network 2017-05-04 23:36:23 -07:00
Ilia Rostovtsev
944b6d728c Check for valid encoding
There are cases when detected `$encoding_name` is not recognized by `decode()` subroutine leading to fatal error.
2017-05-04 15:39:09 +03:00
Ilia Rostovtsev
59b59b2e43 Let non-unicode users read files in their charset correctly + check for valid encoding
In case a user still have old, non-UTF8 setup, they still need to see files in their encoding correctly, thus without converting output to utf-8. The way it is now, breaks things.

Also, there are cases when detected `$encoding_name` is not recognized by `decode()` subroutine.
2017-05-04 15:36:42 +03:00
Jamie Cameron
77c84a7539 Handle case where encoding module is missing 2017-05-03 20:43:38 -07:00
Jamie Cameron
9716326acd Merge pull request #543 from qooob/patch-13
Make editor respect file's initial encoding: Viewer
2017-05-03 20:41:25 -07:00
Jamie Cameron
89331739f3 Merge pull request #545 from amishxda/master
add noportcheck to not to check if port is in use
2017-05-03 19:03:32 -07:00
Amish
2b0e28852e add noportcheck to not to check if port is in use
add variable noportcheck to not to check if port is in use
2017-05-03 14:22:10 +05:30
Jamie Cameron
12ef84ff3e Merge pull request #544 from qooob/patch-14
Make editor respect file's initial encoding: Saver
2017-05-02 21:58:39 -07:00
Ilia Rostovtsev
85e80edf91 Make editor respect file's initial encoding: Saver
An addition to `edit_file.cgi` commit.
2017-05-02 13:26:30 +03:00
Ilia Rostovtsev
8e44c145b9 Make editor respect file's initial encoding: Viewer
This patch will make sure that user, will be able to READ files with different encodings properly and also, will be able to SAVE them without changing the initial encoding.

This awesomeness requires dependencies. However, RHEL has it installed by default but not Debian. New Webmin release should make sure to require/pull dependent packages:

For RHEL: `perl-Encode-Detect`
For Debian: `libencode-detect-perl`

P.S. We should no let user to set non-UTF8 locale anymore. All languages should be displayed unambiguously, like Google does, (Русский, svenska, Deutsche, English (United States) .. ).
2017-05-02 13:23:34 +03:00
Jamie Cameron
a1f53a5a47 Merge pull request #541 from qooob/patch-12
For the future so user could choose encoding in file editor window
2017-05-01 22:27:37 -07:00
Ilia Rostovtsev
b91a867744 For the future so user could choose encoding in file editor window
I think I did it correctly, theoretically looks good. I just don't know if `$in{'encoding'}` has to be escaped anyhow. Other than that, it seems ok, as when user passes encoding, it will tell the script to use one.
2017-05-01 20:49:17 +03:00
Jamie Cameron
dd5fa1295b Merge pull request #540 from qooob/patch-11
Typo, missing ;
2017-05-01 10:24:27 -07:00
Ilia Rostovtsev
6bb5b79d80 Typo, missing ; 2017-05-01 20:12:29 +03:00
Jamie Cameron
1494007307 Merge pull request #539 from qooob/patch-10
Fix for folks not using UTF-8 #52019
2017-05-01 10:09:01 -07:00
Ilia Rostovtsev
edd32a0819 Here is the fix for folks not using UTF-8 #52019
This is more like server side thing.

We expect that everything that is coming from the editor (CodeMirror) is always UTF-8 encoded. In case, global encoding is set to something different, then UTF-8, we must use the user encoding to properly encode the data and have correct file encoding after all.

[#52019](https://www.virtualmin.com/node/52019)
2017-05-01 20:04:27 +03:00
Jamie Cameron
79877df57c Escape output from the init script 2017-04-29 16:56:58 -07:00
Jamie Cameron
641053c5b2 config option fixes 2017-04-29 16:27:39 -07:00
Jamie Cameron
b56761c41b permissons fixes 2017-04-29 16:27:22 -07:00
Jamie Cameron
580578ecbc Use proper version comparison function 2017-04-29 16:26:24 -07:00
Jamie Cameron
813e6dd4ad Use proper version comparison function, so that 2.3 is below 2.11 https://sourceforge.net/p/webadmin/bugs/4937/ 2017-04-29 15:48:03 -07:00
Jamie Cameron
49aa15c138 Use correct hostname in SNI for SSL requests https://virtualmin.com/node/51969 2017-04-29 14:59:03 -07:00
Jamie Cameron
640bc8495c IPv6 addresses need [ ] in the URL https://sourceforge.net/p/webadmin/bugs/4949/ 2017-04-27 23:23:14 -07:00
Jamie Cameron
36ed9b2212 Merge branch 'master' of git@github.com:webmin/webmin 2017-04-27 09:05:27 -07:00
Jamie Cameron
37f0eb519e Detect the browser seen on the galaxy s6 https://www.virtualmin.com/node/51987 2017-04-27 09:04:52 -07:00
Jamie Cameron
0d251ff103 Merge pull request #536 from qooob/patch-9
To look consistent in Account Functions in Usermin
2017-04-25 17:10:22 -07:00
Jamie Cameron
b99637bab3 Merge pull request #535 from qooob/patch-8
When there is no value we need to return 0 but not empty
2017-04-25 17:09:52 -07:00
Jamie Cameron
801a71d172 Merge pull request #344 from qooob/patch-30
Respect module info
2017-04-25 16:55:24 -07:00
Ilia Rostovtsev
d5aac92059 To look consistent in Account Functions in Usermin
Just to beautify the string to look like the rest of them in `Account Functions`.
2017-04-25 14:10:19 +03:00
Ilia Rostovtsev
55d98674b1 When there is no value we need to return 0 but not empty
As reported here, it's true:

https://github.com/qooob/authentic-theme/issues/726
2017-04-25 10:56:58 +03:00
Jamie Cameron
6f0b58ee4d new version bump 2017-04-23 22:33:25 -07:00
Jamie Cameron
63da3c8e39 Fix dupe string 2017-04-23 22:32:41 -07:00
Jamie Cameron
1b21a404bf Merge branch 'master' of git@github.com:webmin/webmin 2017-04-23 20:25:03 -07:00
Jamie Cameron
464bc50e62 Use new API to keep chroot shell 2017-04-23 20:24:56 -07:00
Jamie Cameron
406b3f7bdc Add new option to keep the current shell 2017-04-23 20:20:56 -07:00
Joe Cooper
8b7af771f8 Merge pull request #533 from swelljoe/master
no warnings redefine to prevent confusing warnings
2017-04-23 19:50:12 -05:00
Joe cooper
aa71f4d8e1 no warnings redefine to prevent confusing warnings 2017-04-23 19:41:56 -05:00
Jamie Cameron
a37185b170 Fix code that detects support for mysql.hosts table https://sourceforge.net/p/webadmin/bugs/4945/ 2017-04-23 14:17:51 -07:00
Jamie Cameron
97e40304ac Fix missing space 2017-04-19 22:30:59 -07:00
Jamie Cameron
77e6bc2a00 HTML outside the head or body is too dangerous to include 2017-04-19 18:41:09 -07:00
Jamie Cameron
eaf63ebc48 chroot options for shell module 2017-04-19 13:54:16 -07:00
Jamie Cameron
2c194271fc ref and use columns can collide https://sourceforge.net/p/webadmin/bugs/4939/ 2017-04-18 23:25:21 -07:00
Jamie Cameron
7c0b0f0a9f Merge branch 'master' of git@github.com:webmin/webmin 2017-04-18 22:07:07 -07:00
Jamie Cameron
fe8eb50f2d Fix a couple of small bugs on my system 2017-04-18 22:01:32 -07:00
Jamie Cameron
cb2d221508 Merge pull request #476 from qooob/patch-2
Enable editor for .XSL files
2017-04-17 18:19:54 -07:00
Jamie Cameron
c65de713f7 Merge pull request #531 from qooob/patch-7
path in bookmarks must be URI friendly
2017-04-16 09:45:44 -07:00
Ilia Rostovtsev
2ff3afea6a path in bookmarks must be URI friendly 2017-04-16 09:37:49 +03:00
Jamie Cameron
25d7fe4299 Support both smtpd_recipient_restrictions and smtpd_relay_restrictions, and fix labelling https://sourceforge.net/p/webadmin/bugs/4930/ 2017-04-15 21:30:59 -07:00
Jamie Cameron
42a50ab078 smtp_skip_4xx_greeting is deprecated 2017-04-13 21:27:57 -07:00
Jamie Cameron
bc0eea7a01 onError is also a JS reference 2017-04-11 16:17:30 -07:00
Jamie Cameron
34dbddd616 Check allowed paths in some more cases 2017-04-11 10:38:04 -07:00
Jamie Cameron
785a1186c6 Escape text of command being run 2017-04-11 10:30:57 -07:00
Jamie Cameron
249a205f27 protect against dangerous attachment filenames 2017-04-11 10:26:05 -07:00
Jamie Cameron
7799c6e72f Make disabling referers check warning scarier 2017-04-11 10:22:19 -07:00
Jamie Cameron
960718733a man command supports paths as input, which can be used to read files 2017-04-11 10:19:30 -07:00
Jamie Cameron
da826eaa5f Remove useless print 2017-04-10 23:16:05 -07:00
Jamie Cameron
25a471e4ef simplify_path returns a new path 2017-04-10 15:23:34 -07:00
Jamie Cameron
c387b955b9 Add checkbox to check sig on new module and theme installs 2017-04-09 19:12:04 -07:00
Jamie Cameron
919baa1343 PPTP start script runs the server in the background https://sourceforge.net/p/webadmin/bugs/4876/ 2017-04-09 18:35:15 -07:00
Jamie Cameron
23b966e7da Merge branch 'master' of git@github.com:webmin/webmin 2017-04-09 13:28:39 -07:00
Jamie Cameron
036f695e19 Assume all .cgi scripts with #! lines that reference perl are executable internally 2017-04-08 16:51:41 -07:00
Jamie Cameron
1b32109ae6 Merge pull request #527 from razor2k/master
Added v flag for tar extraction
2017-03-31 08:33:34 -07:00
razor2k
0f895e893c Added v flag for tar extraction
Added the v (verbose) flag when really extracting the backup tar.
If this flag is not set tar will not print the list of files, that are extracted. This leads to an empty output which later leads to an empty @$files when trying to split the output from the untar command.
This then leads to restore.cgi falsely reporting "0 files have been restored".
Tested on Ubuntu 14.04.5
2017-03-31 10:31:05 +02:00
Jamie Cameron
f7691fb715 Include NSEC3PARAM record types when doing DNSSEC signing https://virtualmin.com/node/51485 2017-03-30 18:06:48 -07:00
Jamie Cameron
0c37e2c626 Merge branch 'master' of git@github.com:webmin/webmin 2017-03-29 22:20:30 -07:00
Jamie Cameron
e17abe5e33 Support multiple init scripts https://sourceforge.net/p/webadmin/bugs/4925/ 2017-03-29 21:57:02 -07:00
Jamie Cameron
deb042812b Merge pull request #526 from qooob/patch-5
Excluding bind mounts properly
2017-03-28 20:29:56 -07:00
Jamie Cameron
2b1ee8bc77 Also unmask units when enabling https://www.virtualmin.com/node/45624 2017-03-28 07:56:35 -07:00
Ilia Rostovtsev
9215dde41a Excluding bind mounts properly
Jamie, hi.

I finally had a time to take a look. The fix is simple and straight forward. It works perfectly on my production system. All "bad" mounts are excluded and not listed anymore.
2017-03-28 12:31:02 +03:00
Jamie Cameron
b59f108286 Include JSON::PP in the core webmin package 2017-03-27 21:36:49 -07:00
Jamie Cameron
5708320472 Merge pull request #525 from swelljoe/master
makemodulerpm.pl updates
2017-03-27 16:13:08 -07:00
Joe Cooper
5e8b5ca17b strict/warnings 2017-03-27 04:02:00 -04:00
Joe Cooper
42e3c2c251 COlorize, declare some vars 2017-03-27 03:25:58 -04:00
Joe Cooper
a7123cb069 merge upstream, fix conflicts 2017-03-27 02:51:55 -04:00
Joe Cooper
92b8db19a5 strict/warn, no root needed, colors 2017-03-27 02:40:26 -04:00
Jamie Cameron
a4a6a30234 Rename all config files with stars to use ALL 2017-03-26 22:05:43 -07:00
Jamie Cameron
ebd30bd0ef Rename more star config files 2017-03-26 21:54:55 -07:00
Jamie Cameron
a56772ceba Test rename one star file 2017-03-26 21:54:15 -07:00
Jamie Cameron
0b803265f7 Use default_dir in module.info as final module dir, if set 2017-03-26 21:35:02 -07:00
Jamie Cameron
7774c3cd1f Exclude 'verison' file from packaged modules and themes 2017-03-26 14:25:00 -07:00
Jamie Cameron
e88d7bf265 Snapshots in thinpools don't really have a size 2017-03-26 14:18:10 -07:00
Jamie Cameron
860ae2f15e changelog for thin LV feature 2017-03-26 14:05:58 -07:00
Jamie Cameron
33f6a5d1a2 Link to source of LV snapshots 2017-03-26 14:03:28 -07:00
Jamie Cameron
979aac7178 Snapshots in thin pools don't need a size specified 2017-03-26 13:50:38 -07:00
Jamie Cameron
8bfed13f60 Use formal params 2017-03-26 13:39:47 -07:00
Jamie Cameron
f73482ed0a Deletion warning for thin LVs 2017-03-26 12:06:23 -07:00
Jamie Cameron
80ea8d8b2e Close DH params file to avoid FS leakage 2017-03-26 11:54:37 -07:00
Jamie Cameron
9c831d62f8 Show LV members 2017-03-26 11:54:14 -07:00
Jamie Cameron
8019ac7cab Add return link from mkfs form 2017-03-26 10:36:20 -07:00
Jamie Cameron
ae2e6d4df2 thin pool creation now working 2017-03-26 10:26:11 -07:00
Jamie Cameron
2f85ff61de German translation updates from Raymond Vetter 2017-03-26 09:38:00 -07:00
Jamie Cameron
0372fdcc2c German translation updates from Raymond Vetter 2017-03-26 09:37:54 -07:00
Jamie Cameron
74db8b7542 More work on supporting thin pools in the UI 2017-03-24 17:51:22 -07:00
Jamie Cameron
dad7e2f052 Function to create a thin pool 2017-03-24 17:32:04 -07:00
Jamie Cameron
01dcde3e62 CGI to create a thin pool 2017-03-24 16:27:44 -07:00
Jamie Cameron
dcd57e44c0 LVM thin pool form 2017-03-24 16:13:40 -07:00
Jamie Cameron
5a69c9ddbd Set new DNSSEC key ownership correctly https://sourceforge.net/p/webadmin/bugs/4923/ 2017-03-24 13:56:38 -07:00
Jamie Cameron
1db625a87e Fix some perl warnings https://sourceforge.net/p/webadmin/bugs/4921/ 2017-03-23 17:11:50 -07:00
Jamie Cameron
1ec2127363 Pass in password on the command line https://www.virtualmin.com/node/50338 2017-03-22 21:03:48 -07:00
Jamie Cameron
fdcfb5495e Make source/dest IP fields nicer https://www.virtualmin.com/node/51219 2017-03-22 17:33:38 -07:00
Jamie Cameron
46814d9e2f Preserve spaces when editing directives https://github.com/virtualmin/virtualmin/issues/35 2017-03-22 16:58:20 -07:00
Jamie Cameron
4f1b8c0ae0 Add missing string 2017-03-20 17:00:22 -07:00
Jamie Cameron
3f65039494 Use normal form API https://github.com/qooob/authentic-theme/issues/680 2017-03-19 13:42:16 -07:00
Jamie Cameron
837e04945b Get interfaces early on so that any error doesn't appear in the middle of a table https://github.com/qooob/authentic-theme/issues/679 2017-03-19 10:02:01 -07:00
Jamie Cameron
a80b49b01c Merge branch 'master' of git@github.com:webmin/webmin 2017-03-19 10:00:58 -07:00
Jamie Cameron
12fe0f611b Blank isn't an allowed option for mynetworks_style 2017-03-19 09:57:38 -07:00
Jamie Cameron
99400d02d8 Merge pull request #519 from qooob/patch-4
Let a function to accept non numeric value
2017-03-18 17:16:53 -07:00
Ilia Rostovtsev
e9dc1726ae Let a function to accept non numeric value
In case the way it is now, there is no use in custom values for radio buttons. For example it will never let it set to `false` or `true` (as a string), thus always passing an integer to the `ui_radio()`.
2017-03-18 17:16:20 +03:00
Jamie Cameron
ad0bddd300 German translation updates from Raymond Vetter 2017-03-17 20:20:21 -07:00
Jamie Cameron
d0b19dbb75 Fix more unescaped paths 2017-03-16 22:54:36 -07:00
Jamie Cameron
7fa58e88c1 Don't trust path elements 2017-03-15 23:22:47 -07:00
Jamie Cameron
65e99558ad Fix return link 2017-03-15 23:19:49 -07:00
Jamie Cameron
8f1441ae54 Fix return link 2017-03-15 23:17:13 -07:00
Jamie Cameron
c3a5efb914 Don't include error messages in the output from mysqldump https://www.virtualmin.com/node/50156 2017-03-14 20:40:22 -07:00
Jamie Cameron
005a90c79d Username can be edited https://github.com/webmin/webmin/issues/513 2017-03-13 20:32:08 -07:00
Jamie Cameron
4dc9188d86 Clear module.infos in new location too 2017-03-13 19:42:36 -07:00
Jamie Cameron
2dc7d94a74 Remove un-necessary cache clearing 2017-03-13 19:41:59 -07:00
Jamie Cameron
85aada310a Version bump 2017-03-12 20:29:07 -07:00
Jamie Cameron
5a19fe2e6c Deal with older Net::SSLeay versions 2017-03-12 18:02:02 -07:00
Jamie Cameron
55688e6be4 Fedora 25 uses mariaDB 2017-03-12 17:44:02 -07:00
Jamie Cameron
24cf47dde0 Completed webmin per-domain cert support 2017-03-12 17:42:03 -07:00
Jamie Cameron
33d45b19d4 Use formal params 2017-03-12 17:16:11 -07:00
Jamie Cameron
95b846c6e5 Allow hostnames to be entered as well as IPs 2017-03-12 15:36:15 -07:00
Jamie Cameron
0ba71128f1 Allow hostnames to be entered as well as IPs 2017-03-12 15:34:30 -07:00
Jamie Cameron
258490b256 Don't log empty sessions 2017-03-11 13:10:43 -08:00
Jamie Cameron
b29bda4f93 Suppress redefined function warnings https://www.virtualmin.com/node/46831 2017-03-11 13:04:56 -08:00
Jamie Cameron
c7a941c9af Fix bug where a sub-directory with the same name cannot be linked to 2017-03-10 19:05:07 -08:00
Jamie Cameron
97c410db42 Dev version bump 2017-03-09 22:40:33 -08:00
Jamie Cameron
1ff6413c04 Allow : in redirect URL 2017-03-09 17:50:47 -08:00
Jamie Cameron
34de35e281 Fix perl warning https://sourceforge.net/p/webadmin/bugs/4920/ 2017-03-09 17:29:00 -08:00
Jamie Cameron
9aa6081cd8 keep changelog.md in distro 2017-03-09 08:59:30 -08:00
Jamie Cameron
947187c0c2 German translation updates from Raymond Vetter 2017-03-08 22:16:20 -08:00
Jamie Cameron
47611a5fb7 German translation updates from Raymond Vetter 2017-03-08 22:16:20 -08:00
Jamie Cameron
2cf8380a52 Fix typo 2017-03-08 22:14:01 -08:00
Jamie Cameron
2b2b2d55e7 Clarifiy meaning of filemanger ACL 2017-03-08 22:08:11 -08:00
Jamie Cameron
a1c5db779d Skip duplicate themes (like blue and gray) https://sourceforge.net/p/webadmin/bugs/4917/ 2017-03-08 21:21:20 -08:00
Jamie Cameron
f559c1a078 Handle version parts like deb8u9 and deb8u10 https://sourceforge.net/p/webadmin/bugs/4911/ 2017-03-07 20:53:17 -08:00
Jamie Cameron
cbec150213 Handle allow-hotplug lnine https://www.virtualmin.com/node/43038 2017-03-07 20:00:14 -08:00
Jamie Cameron
b1c0c16f4b Fix handling of allow-transfer lines with a key https://github.com/webmin/webmin/issues/506 2017-03-06 20:02:23 -08:00
Jamie Cameron
8cb1f61426 German translation updates from Raymond Vetter 2017-03-06 19:56:16 -08:00
Jamie Cameron
1ca22a3c10 Merge branch 'master' of git@github.com:webmin/webmin 2017-03-05 13:45:31 -08:00
Jamie Cameron
db801188ab Page to manually edit cron jobs 2017-03-05 13:45:16 -08:00
Jamie Cameron
9fe8bd9f93 Merge pull request #502 from jjinno/master
enable/disable cluster-useradmin features & fix visual bugs
2017-03-01 16:54:49 -08:00
jjinno
6ea05708b9 fixed icons & implemented link-disable option
Fixed missing icons link due to bad path.
Implemented use of "conf_host_links" option to enable/disable links to the "edit host" page.
2017-03-01 01:05:34 -08:00
jjinno
3c90c1465a fixed icons & table view
Fixed missing icons link due to bad path.
Ported "table view" from index.cgi... because there is just one module-global option to use "table view"... so it should probably apply module-globally?
2017-03-01 00:59:43 -08:00
jjinno
f546f23f91 fixed HTML table error
there was a missing TD tag causing serious layout issues.
2017-03-01 00:54:51 -08:00
jjinno
2322feb9ae icons & table view
Fixed missing icons link due to bad path.
Ported "table view" from index.cgi... because there is just one module-global option to use "table view"... so it should probably apply module-globally?
2017-03-01 00:50:34 -08:00
jjinno
91273bfe18 configure host-as-a-link
ability to disable host links (looks best in table view) so that users/groups are not visible
2017-03-01 00:44:47 -08:00
jjinno
c2b396cfbd add host-as-a-link option default
ability to disable host links (looks best in table view) so that users/groups are not visible
2017-03-01 00:43:44 -08:00
jjinno
c3f3db868e update default config
turned on all features by default (keeps existing behavior)
2017-02-28 23:23:13 -08:00
jjinno
c0a43d0aa5 reorder config options
reordered config options to match displayed order
2017-02-28 23:21:54 -08:00
jjinno
b5243ac90b enable/disable features
config options for enabling/disabling:
 - Add user
 - Add group
 - Find user
 - Find group
 - Refresh cache
 - Synchronize

The idea was to allow an administrator the ability to provide refresh & sync without needing to provide access to the cluster-module's inferior version of the users/groups tools... but I have broken out the enable/disable on each feature individually, should one want to manage at that level.
2017-02-28 23:10:17 -08:00
jjinno
bb3f72cf85 add enable/disable for features
Adding config options for enabling/disabling:
 - Add user
 - Add group
 - Find user
 - Find group
 - Refresh cache
 - Synchronize
2017-02-28 22:51:52 -08:00
Jamie Cameron
082c0644d6 Remove message about timeout of logged out user 2017-02-27 19:26:03 -08:00
Jamie Cameron
7a67864827 Clarify what ssl_ca is for 2017-02-26 21:12:44 -08:00
Jamie Cameron
bdb22b37dc Fix perl warnings https://sourceforge.net/p/webadmin/bugs/4907/ 2017-02-26 14:11:32 -08:00
Jamie Cameron
cb24e776b8 Fix perl warnings https://sourceforge.net/p/webadmin/bugs/4907/ 2017-02-26 14:08:41 -08:00
Jamie Cameron
c816d1385f Detect missing IMAP handle better https://virtualmin.com/node/48616 2017-02-25 13:33:28 -08:00
Jamie Cameron
a0618b3650 Support detecting CPU load and model on FreeBSD https://github.com/webmin/webmin/issues/498 2017-02-24 16:24:04 -08:00
Jamie Cameron
a01ceec394 Merge branch 'master' of git@github.com:webmin/webmin 2017-02-24 16:04:59 -08:00
Jamie Cameron
99f73bd80f Filter out template units, which cause the subsequent call to systemctl show to fail https://github.com/webmin/webmin/issues/430: 2017-02-24 16:04:21 -08:00
Jamie Cameron
ab522f84fc Merge pull request #499 from jjinno/master
Enable/Disable for Winbind & File/Printer Share buttons
2017-02-23 22:37:26 -07:00
jjinno
4d77d319dc code refactor + new use of conf_fs/conf_ps
Refactor complicated "Global Configuration" table to be simpler code... just like the "Samba Users" table created just below it...

instead of misusing permissions bits from ACLfs_global/ACLps_global, using conf_fs/conf_ps respectively to determine whether or not the File/Printer share buttons should be displayed.
2017-02-23 14:54:51 -08:00
jjinno
e184759e85 default values
added for conf_fs/conf_ps
2017-02-23 14:47:38 -08:00
jjinno
1ed16816de new variables
default values
conf_fs=0,conf_ps=0
2017-02-23 14:45:07 -08:00
jjinno
4f51ed32a6 new admin enable/disable options
Added a radio button to disable (hide) the "Winbind Options" button.
Added 2 new variables ("conf_fs" & "conf_ps") that are defined as:
    0 when ALL of create/read/write permissions are denied for file/print shares (respectively)
    1 when ANY of create/read/write permissions are given to file/print shares (respectively)

These values will be picked up by index.cgi
2017-02-23 14:43:37 -08:00
jjinno
4b664a541d add lang for disable winbind button
self explanatory
2017-02-23 12:26:15 -08:00
Jamie Cameron
dbd99caaee Path needs to be escaped in footer 2017-02-19 17:30:10 -08:00
Jamie Cameron
54fc94e32b Fix XSS vulnerability in path 2017-02-19 17:28:39 -08:00
Jamie Cameron
b8333ec442 Fedora 25 uses mariadb 2017-02-18 21:22:29 -08:00
Jamie Cameron
f99d1d20e0 Allow all types of ICMPv6 traffic https://sourceforge.net/p/webadmin/bugs/4900/ 2017-02-18 14:14:10 -08:00
Jamie Cameron
c1ebe147ac BIND mounts can't have quotas https://github.com/webmin/webmin/issues/493 2017-02-16 21:48:32 -08:00
Jamie Cameron
1348fd1ef6 Suppress duplicate definition warnings, which can happen in some cases where the theme calls this library https://www.virtualmin.com/node/46831 2017-02-15 20:01:21 -08:00
Jamie Cameron
71fb93f840 Fix perl warnings https://sourceforge.net/p/webadmin/bugs/4895/ 2017-02-12 10:01:46 -08:00
Jamie Cameron
236c09f3c0 Flag is info and not --info e50c011c08 2017-02-12 09:53:21 -08:00
Jamie Cameron
54bb4804fc Debian 8 has changed the squid package name https://sourceforge.net/p/webadmin/bugs/4894/ 2017-02-10 15:58:01 -08:00
Jamie Cameron
0ebbe5660a Deal with silly version numbers like 2.11 https://www.virtualmin.com/node/46799 2017-02-10 15:52:32 -08:00
Jamie Cameron
155f98977a Move version comparison code up to global 2017-02-10 15:47:35 -08:00
Jamie Cameron
24f731aac8 IP to ignore can be a hostname https://sourceforge.net/p/webadmin/bugs/4893/ 2017-02-10 15:38:33 -08:00
Jamie Cameron
6a8df969d7 Fix option name https://sourceforge.net/p/webadmin/bugs/4892/ 2017-02-07 21:06:26 -08:00
Jamie Cameron
3300164e7e Catalan update from Jaume Badiella 2017-02-05 20:36:27 -08:00
Jamie Cameron
207e0a6dce Catalan update from Jaume Badiella 2017-02-05 20:36:00 -08:00
Jamie Cameron
f95f2cef79 Include DNS validation timeout 2017-02-05 15:13:27 -08:00
Jamie Cameron
6dc037a271 TTL should be lower for let's encrypt validation record 2017-02-05 15:05:25 -08:00
Jamie Cameron
1379dc8288 Don't wait forever for validation 2017-02-05 15:03:38 -08:00
Jamie Cameron
28ac57ac21 dev version bump 2017-02-05 14:23:28 -08:00
Jamie Cameron
1f906be5cb changelog for let's encrypt 2017-02-05 14:18:52 -08:00
Jamie Cameron
2312f3379d DNS validation support in acme_tiny via hook script 2017-02-05 13:18:34 -08:00
Jamie Cameron
adb526466a German translation updates from Raymond Vetter 2017-02-05 10:40:31 -08:00
Jamie Cameron
88d914721b Some older Apache versionsdon't support AuthType https://www.virtualmin.com/node/45842 2017-02-05 10:25:57 -08:00
Jamie Cameron
ce18bbe753 Add missing source columns properly https://github.com/qooob/authentic-theme/issues/661 2017-02-04 21:31:04 -08:00
Jamie Cameron
3edbc9b90f Don't rotate a non-existent file, as this can cause it to be created with the wrong ownership https://sourceforge.net/p/webadmin/bugs/4890/ 2017-02-04 20:53:51 -08:00
Jamie Cameron
2b362c05b1 Merge branch 'master' of git@github.com:webmin/webmin 2017-02-01 14:50:16 -08:00
Jamie Cameron
8acd741d78 Add allow-transfer block for slave domains https://github.com/webmin/webmin/issues/487 2017-02-01 14:39:28 -08:00
Jamie Cameron
d74d8f045c Merge pull request #488 from mnoorenberghe/patch-2
Don't blank the password field on the login page
2017-02-01 14:17:53 -08:00
Jamie Cameron
e078bbc930 Detect if a zero-sized cert was created https://www.virtualmin.com/node/45801 2017-02-01 10:10:31 -08:00
Matt N
30dd9d1fb4 Don't blank the password field on the login page
This interferes with password managers and the general consensus from the security community is that password managers improve security by encouraging stronger passwords and reducing password re-use.
2017-02-01 01:33:30 -08:00
Jamie Cameron
8b8b196d31 SSSD also indicates LDAP is in use https://www.virtualmin.com/node/45780 2017-01-31 23:07:57 -08:00
Jamie Cameron
f8e042beac ALways use only list of subnets and hosts that are visible 2017-01-31 22:56:46 -08:00
Jamie Cameron
b45191de98 Fixes to get DNS validation integration with certbot working 2017-01-31 17:42:29 -08:00
Jamie Cameron
21fc5ebd2c Merge branch 'master' of git@github.com:webmin/webmin 2017-01-31 15:45:08 -08:00
Jamie Cameron
ca79327451 Work on DNS-based validation for let's encrypt 2017-01-31 15:44:38 -08:00
Jamie Cameron
49c927ae80 Merge pull request #486 from qooob/patch-3
Make sure that new dropdown always visible
2017-01-31 12:54:35 -08:00
Ilia Rostovtsev
81e89ae384 Make sure that new dropdown always visible
To make sure it doesn't happen.
https://github.com/qooob/authentic-theme/issues/660
2017-01-31 12:48:07 +03:00
Jamie Cameron
52cb2b38e0 Fix wrong text string https://www.virtualmin.com/node/45713 2017-01-29 15:44:20 -08:00
Jamie Cameron
9c77c762b1 Hook scripts needed for Let's Encrypt DNS validation 2017-01-29 11:21:22 -08:00
Jamie Cameron
5a234fce9e Use formal parameters 2017-01-29 11:07:19 -08:00
Jamie Cameron
8f49a258b6 Move code for DNF into the right place e50c011c08 2017-01-27 17:18:30 -08:00
Jamie Cameron
7e06a2382e Fix labels for SSHFP support 2017-01-27 16:41:36 -08:00
Jamie Cameron
dee77082ff SSHFP types are 1-based 2017-01-26 22:45:46 -08:00
Jamie Cameron
0fd3627e96 SSHFP record support 2017-01-26 21:27:33 -08:00
Jamie Cameron
e17ee3cc8c Legit HTML can appear outside the body in corrupt emails 2017-01-24 21:56:22 -08:00
Jamie Cameron
aec4a83306 Don't try IPv6 resolution if not enabled 2017-01-23 18:48:32 -08:00
Jamie Cameron
a02935d9e4 Add Springdale as a Redhat clone https://sourceforge.net/p/webadmin/bugs/4877/ 2017-01-23 10:21:53 -08:00
Jamie Cameron
5bd77486d9 Catch failure of the mysqldump command in the pipeline https://sourceforge.net/p/webadmin/bugs/4878/ 2017-01-22 19:39:39 -08:00
Jamie Cameron
ee35b62079 Add core function to check if bash is being used 2017-01-22 16:16:46 -08:00
Jamie Cameron
21bb772fd3 DNF uses a different changelog command e50c011c08 2017-01-22 09:24:40 -08:00
Jamie Cameron
87994b0e6a Also do regular encoding french 2017-01-19 21:05:30 -08:00
Jamie Cameron
be87b67857 French translation from Laurent Coignet 2017-01-19 20:58:00 -08:00
Jamie Cameron
cb195701b3 French translation from Laurent Coignet 2017-01-19 20:57:45 -08:00
Jamie Cameron
dd8bb9bb15 French translation from Laurent Coignet 2017-01-19 20:57:26 -08:00
Jamie Cameron
ed72b57c4a Fix group membership checks https://sourceforge.net/p/webadmin/bugs/4875/ 2017-01-19 16:46:15 -08:00
Jamie Cameron
6bc9041a52 CentOS 7 uses 1000 as the base UID/GID https://sourceforge.net/p/webadmin/bugs/4874/ 2017-01-18 16:51:19 -08:00
Jamie Cameron
36b15f2615 Properly identify other bridge types https://github.com/webmin/webmin/issues/482 2017-01-18 15:45:13 -08:00
Jamie Cameron
ce0da729ee Handle case where getaddrinfo is not available 2017-01-18 15:27:21 -08:00
Jamie Cameron
84c6b0d831 Give DNSSEC key files the right ownership https://github.com/webmin/webmin/issues/471 2017-01-15 20:50:00 -08:00
Jamie Cameron
e50c011c08 Use DNF instrnstead of YUM if installed https://github.com/webmin/webmin/issues/480 2017-01-15 20:27:53 -08:00
Jamie Cameron
6df7e9b67c GPT disks can have more than 4 primary partitions https://sourceforge.net/p/webadmin/bugs/4872/ 2017-01-13 15:16:32 -08:00
Jamie Cameron
1dd3d51333 Fix perl warning if module is undef https://sourceforge.net/p/webadmin/bugs/4867/ 2017-01-11 16:20:51 -08:00
Jamie Cameron
16c4ca3740 Add clone button to backups https://github.com/webmin/webmin/issues/477 2017-01-10 12:46:12 -08:00
Ilia Rostovtsev
f6634503dd Enable editor for .XSL files
https://github.com/qooob/authentic-theme/issues/629#issuecomment-271280127
2017-01-10 12:21:27 +03:00
Jamie Cameron
4f386ddc84 New DNSSEC key types https://www.virtualmin.com/node/45306 2017-01-09 15:54:51 -08:00
Jamie Cameron
5bf35ef9cd Norwegian update from Stein-Aksel Basma 2017-01-09 15:32:59 -08:00
Ilia Rostovtsev
c273cf02f2 Respect module info 2016-05-11 13:58:40 +04:00
576 changed files with 9712 additions and 2639 deletions

2797
JSON/PP.pm Normal file

File diff suppressed because it is too large Load Diff

2
README
View File

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

File diff suppressed because one or more lines are too long

View File

@@ -1672,8 +1672,9 @@ authenticate as, as array references.
=cut
sub get_unixauth
{
my ($miniserv) = @_;
my @rv;
my @ua = split(/\s+/, $_[0]->{'unixauth'});
my @ua = $miniserv->{'unixauth'} ? split(/\s+/, $miniserv->{'unixauth'}) : ( );
foreach my $ua (@ua) {
if ($ua =~ /^(\S+)=(\S+)$/) {
push(@rv, [ $1, $2 ]);

5
acl/config.info.fr.UTF-8 Normal file
View File

@@ -0,0 +1,5 @@
order=Trier les utilisateurs et les groupes par,1,0-Ordre dans le fichier,1-Nom
line1=Options configurables,11
ssleay=Chemin d'acc&#232;s au programme openssl ou ssleay,3,Automatique
line2=Configuration du syst&#232;me,11
display=Mode d'affichage des utilisateurs et des groupes,1,1-Noms seulement,0-Noms et modules

View File

@@ -16,6 +16,7 @@ print &ui_table_start($text{'sql_header'}, undef, 2);
my ($proto, $user, $pass, $host, $prefix, $args) =
&split_userdb_string($miniserv{'userdb'});
$proto ||= '';
# Build inputs for MySQL backend
my @mysqlgrid = ( );
@@ -91,7 +92,7 @@ print &ui_table_row(undef,
[ 'ldap', $text{'sql_ldap'}, $ldapgrid ] ]), 2);
print &ui_table_row(undef,
&ui_radio("addto", int($miniserv{'userdb_addto'}),
&ui_radio("addto", int($miniserv{'userdb_addto'} || 0),
[ [ 0, $text{'sql_addto0'} ],
[ 1, $text{'sql_addto1'} ] ]), 2);

View File

@@ -30,7 +30,8 @@ my @webmins = map { [ $_->{'name'} ] }
sort { $a->{'name'} cmp $b->{'name'} } &list_users();
foreach my $ua (@unixauth, [ ], [ ]) {
$utable .= &ui_columns_row([
&ui_select("mode_$i", $ua->[0] eq "" ? 0 :
&ui_select("mode_$i", !defined($ua->[0]) ? 0 :
$ua->[0] eq "" ? 0 :
$ua->[0] eq "*" ? 1 :
$ua->[0] =~ /^\@/ ? 2 : 3,
[ [ 0, " " ],

View File

@@ -110,7 +110,7 @@ if ($miniserv{'extauth'}) {
push(@opts, [ 5, $text{'edit_extauth'} ]);
}
push(@opts, [ 4, $text{'edit_lock'} ]);
my ($lockbox, $tempbox);
my ($lockbox, $tempbox) = ("", "");
if ($passmode == 1) {
$lockbox = &ui_checkbox("lock", 1, $text{'edit_templock'},
$user{'pass'} =~ /^\!/ ? 1 : 0);
@@ -152,7 +152,7 @@ print &ui_table_row($text{'edit_real'},
# Storage type
if ($in{'user'}) {
print &ui_table_row($text{'edit_proto'},
$text{'edit_proto_'.$user{'proto'}});
$text{'edit_proto_'.($user{'proto'} || '')});
}
print &ui_hidden_table_end("rights");
@@ -186,7 +186,7 @@ if ($access{'lang'}) {
if ($access{'cats'}) {
# Show categorized modules?
print &ui_table_row($text{'edit_notabs'},
&ui_radio("notabs", int($user{'notabs'}),
&ui_radio("notabs", $user{'notabs'} || 0,
[ [ 1, $text{'yes'} ],
[ 2, $text{'no'} ],
[ 0, $text{'default'} ] ]));
@@ -262,8 +262,8 @@ if ($access{'ips'}) {
[ 1, $text{'edit_allow'}."<br>" ],
[ 2, $text{'edit_deny'}."<br>" ] ]).
&ui_textarea("ips",
join("\n", split(/\s+/, $user{'allow'} ? $user{'allow'}
: $user{'deny'})),
join("\n", split(/\s+/, $user{'allow'} ||
$user{'deny'} || "")),
4, 30));
}
@@ -277,7 +277,7 @@ if (&supports_rbac() && $access{'mode'} == 0) {
if ($access{'times'}) {
# Show allowed days of the week
my %days = map { $_, 1 } split(/,/, $user{'days'});
my %days = map { $_, 1 } split(/,/, $user{'days'} || '');
my $daysels = "";
for(my $i=0; $i<7; $i++) {
$daysels .= &ui_checkbox("days", $i, $text{'day_'.$i},
@@ -290,10 +290,10 @@ if ($access{'times'}) {
$daysels);
# Show allow hour/minute range
my ($hf, $mf) = split(/\./, $user{'hoursfrom'});
my ($ht, $mt) = split(/\./, $user{'hoursto'});
my ($hf, $mf) = split(/\./, $user{'hoursfrom'} || '');
my ($ht, $mt) = split(/\./, $user{'hoursto'} || '');
print &ui_table_row($text{'edit_hours'},
&ui_radio("hours_def", $user{'hoursfrom'} eq '' ? 1 : 0,
&ui_radio("hours_def", $hf eq '' ? 1 : 0,
[ [ 1, $text{'edit_allhours'} ],
[ 0, &text('edit_selhours',
&ui_textbox("hours_hfrom", $hf, 2),
@@ -337,14 +337,14 @@ my @mlist = grep { $access{'others'} || $has{$_->{'dir'}} ||
$mcan{$_->{'dir'}} } &list_module_infos();
my @links = ( &select_all_link("mod", 0, $text{'edit_selall'}),
&select_invert_link("mod", 0, $text{'edit_invert'}) );
my @cats = &unique(map { $_->{'category'} || "" } @mlist);
my @cats = &unique(map { $_->{'category'} || '' } @mlist);
my %catnames;
&read_file("$config_directory/webmin.catnames", \%catnames);
my $grids = "";
foreach my $c (sort { $b cmp $a } @cats) {
my @cmlist = grep { $_->{'category'} eq $c } @mlist;
my @cmlist = grep { ($_->{'category'} || '') eq $c } @mlist;
$grids .= "<b>".($catnames{$c} ||
$text{'category_'.$c})."</b><br>\n";
$text{'category_'.$c})."</b><br>\n";
my @grid = ( );
my $sw = 0;
foreach my $m (@cmlist) {

View File

@@ -0,0 +1,5 @@
<header>Contrôle d'accès IP</header>
Le contrôle d'accès utilisateur par adresse IP fonctionne de la même manière que le contrôle d'accès IP global dans le module Configuration de Webmin. Seul un utilisateur ayant passé le contrôle global sera vérifié de nouveau avec ces règles.
<footer>

View File

@@ -1,348 +1,358 @@
acl_acl=Peut modifier le contr&#244;le d'acc&#232;s au module ?
acl_acl=Peut modifier le contrôle d'accès au module ?
acl_all=Tous les modules
acl_cats=Peut changer de cat&#233;gorie ?
acl_cats=Peut changer de catégorie ?
acl_cert=Peut demander un certificat ?
acl_chcert=Peut changer le nom du certificat SSL ?
acl_config=Peut modifier la configuration du module ?
acl_create=Peut cr&#233;er de nouveaux utilisateurs ?
acl_create=Peut créer de nouveaux utilisateurs ?
acl_delete=Peut supprimer des utilisateurs ?
acl_egroup=Vous n'&#234;tes pas autoris&#233; &#224; modifier les ACL des groupes
acl_emod=Vous n'&#234;tes pas autoris&#233; &#224; modifier le contr&#244;le d'acc&#232;s de ce module
acl_err=Impossible d'enregistrer les contr&#244;les d'acc&#232;s
acl_euser=Vous n'&#234;tes pas autoris&#233; &#224; modifier le contr&#244;le d'acc&#232;s pour cet utilisateur
acl_egroup=Vous n'êtes pas autorisé à modifier les ACL des groupes
acl_emod=Vous n'êtes pas autorisé à modifier le contrôle d'accès de ce module
acl_err=Impossible d'enregistrer les contrôles d'accès
acl_euser=Vous n'êtes pas autorisé à modifier le contrôle d'accès pour cet utilisateur
acl_gall=Tous les groupes
acl_gassign=Peut affecter des utilisateurs &#224; des groupes
acl_gassign=Peut affecter des utilisateurs à des groupes
acl_gnone=Aucun
acl_gr=Membres de $1
acl_groups=Peut modifier des groupes ?
acl_gsel=S&#233;lectionn&#233;s...
acl_ips=Peut changer le contr&#244;le d'acc&#232;s IP ?
acl_gsel=Sélectionnés...
acl_ips=Peut changer le contrôle d'accès IP ?
acl_lang=Peut changer de langue ?
acl_mods=Peut accorder un acc&#232;s &#224;
acl_options=Options du contr&#244;le d'acc&#232;s du module $1
acl_mods=Peut accorder un accès ?
acl_options=Options du contrôle d'accès du module $1
acl_others=Peut voir les modules inaccessibles ?
acl_own=Seulement ses propres modules
acl_pass=Peut modifier les restrictions du mot de passe ?
acl_perms=Les utilisateurs r&#233;cemment cr&#233;&#233;s obtiennent
acl_perms_0=Contr&#244;le d'acc&#232;s au module par d&#233;faut (sans restriction)
acl_perms_1=M&#234;me contr&#244;le d'acc&#232;s au module que le cr&#233;ateur
acl_rbac=R&#233;cup&#233;rer les param&#232;tres de contr&#244;le d'acc&#232;s depuis RBAS ?
acl_rbacyes=Oui (remplace les param&#232;tres ci-dessous)
acl_perms=Les utilisateurs récemment créés obtiennent
acl_perms_0=Contrôle d'accès au module par défaut (sans restriction)
acl_perms_1=Même contrôle d'accès au module que le créateur
acl_rbac=Récupérer les paramètres de contrôle d'accès depuis RBAS ?
acl_rbacyes=Oui (remplace les paramètres ci-dessous)
acl_rename=Peut renommer des utilisateurs ?
acl_reset=R&#233;initialiser en mode plein acc&#232;s
acl_sel=Modules s&#233;lectionn&#233;s...
acl_reset=Réinitialiser en mode plein accès
acl_sel=Modules sélectionnés...
acl_sessions=Peut afficher et annuler des sessions de connexion ?
acl_sql=peut configurer la base de donn&#233;e du groupe et de l'utilisateur ?
acl_sql=peut configurer la base de donnée du groupe et de l'utilisateur ?
acl_switch=Peut basculer vers d'autres utilisateurs ?
acl_sync=Peut configurer la synchronisation des utilisateurs ?
acl_theme=Peut changer le th&#232;me personnel ?
acl_times=Peut changer les heures de connexion autoris&#233;es ?
acl_title=Contr&#244;le d'acc&#232;s du module
acl_theme=Peut changer le thème personnel ?
acl_times=Peut changer les heures de connexion autorisées ?
acl_title=Contrôle d'accès du module
acl_title2=$2 pour l'utilisateur $1
acl_title3=du groupe $2 pour l'utilisateur $1
acl_uall=Tous les utilisateurs
acl_unix=Peut configurer l'authentification Unix ?
acl_usel=Utilisateurs s&#233;lectionn&#233;s...
acl_users=Utilisateurs pouvant &#234;tre modifi&#233;s
acl_usel=Utilisateurs sélectionnés...
acl_users=Utilisateurs pouvant être modifiés
acl_uthis=Cet utilisateur
cert_already=<b>Avertissement</<b> : vous utilisez d&#233;j&#224; le certificat $1.
cert_already=<b>Avertissement</<b> : vous utilisez déjà le certificat $1.
cert_c=Code du pays
cert_cn=Votre nom
cert_done=Votre certificat pour $1 a &#233;t&#233; g&#233;n&#233;r&#233; avec succ&#232;s.
cert_ebrowser=Webmin ne sait pas comment &#233;mettre des certificats client pour votre navigateur ( $1 )
cert_eca=Impossible de configurer l'Autorit&#233; de Certification : $1
cert_ekey=Une nouvelle cl&#233; SSL n'a pas &#233;t&#233; soumise par votre navigateur : peut-&#234;tre ne g&#232;re-t-il pas les certificats client SSL.
cert_email=Adresse &#233;lectronique
cert_header=D&#233;tails du nouveau certificat
cert_done=Votre certificat pour $1 a été généré avec succès.
cert_ebrowser=Webmin ne sait pas comment émettre des certificats client pour votre navigateur ( $1 )
cert_eca=Impossible de configurer l'Autorité de Certification : $1
cert_ekey=Une nouvelle clé SSL n'a pas été soumise par votre navigateur : peut-être ne gère-t-il pas les certificats client SSL.
cert_email=Adresse électronique
cert_header=Détails du nouveau certificat
cert_install=Installez votre certificat dans le navigateur
cert_issue=&#201;mettre un certificat
cert_key=Taille de la cl&#233;
cert_msg=Ce formulaire vous permet de demander un certificat SSL client qui servira ensuite &#224; vous accorder l'acc&#232;s &#224; Webmin au lieu de vos nom d'utilisateur et mot de passe. Cette m&#233;thode est plus s&#251;re, mais comme l'authentification est automatique, vous ne pourrez plus changer d'utilisateur quand vous ferez appel au certificat.
cert_issue=Émettre un certificat
cert_key=Taille de la clé
cert_msg=Ce formulaire vous permet de demander un certificat SSL client qui servira ensuite à vous accorder l'accès à Webmin au lieu de vos nom d'utilisateur et mot de passe. Cette méthode est plus sûre, mais comme l'authentification est automatique, vous ne pourrez plus changer d'utilisateur quand vous ferez appel au certificat.
cert_o=Organisation
cert_ou=D&#233;partement
cert_pickup=<a href='$1'>Cliquez ici pour s&#233;lectionner votre certificat et l'installer dans votre navigateur</a>
cert_sp=&#201;tat
cert_ou=Département
cert_pickup=<a href='$1'>Cliquez ici pour sélectionner votre certificat et l'installer dans votre navigateur</a>
cert_sp=État
cert_title=Demande de certificat
convert_0=Tous les utilisateurs
convert_1=Seulement les utilisateurs
convert_2=Tous sauf les utilisateurs
convert_3=Utilisateurs du groupe
convert_4=Utilisateurs dont l'UID est dans l'intervalle
convert_added=$1 est ajout&#233;
convert_desc=Ce formulaire vous permet de convertir des utilisateurs Unix existants en utilisateurs Webmin. Les droits d'acc&#232;s de chaque nouvel utilisateur Webmin seront d&#233;termin&#233;s par le groupe s&#233;lectionn&#233; ci-dessous.
convert_ecannot=Vous n'&#234;tes pas autoris&#233; &#224; convertir un utilisateur Unix
convert_added=$1 est ajouté
convert_desc=Ce formulaire vous permet de convertir des utilisateurs Unix existants en utilisateurs Webmin. Les droits d'accès de chaque nouvel utilisateur Webmin seront déterminés par le groupe sélectionné ci-dessous.
convert_ecannot=Vous n'êtes pas autorisé à convertir un utilisateur Unix
convert_egroup=Le groupe Unix n'existe pas
convert_emax=UID maximal invalide
convert_emin=UID minimal invalide
convert_err=Impossible de convertir les utilisateurs
convert_eusers=Aucun utilisateur &#224; convertir saisi
convert_eusers=Aucun utilisateur à convertir saisi
convert_ewgroup=Pas de groupe Webmin de ce type
convert_ewgroup2=Vous n'&#234;tes pas autoris&#233; &#224; affecter de nouveaux utilisateurs &#224; ce groupe
convert_exists=$1 existe d&#233;j&#224;
convert_ewgroup2=Vous n'tes pas autorisé à affecter de nouveaux utilisateurs à ce groupe
convert_exists=$1 existe déjà
convert_group=Affecter de nouveaux utilisateurs au groupe Webmin
convert_invalid=$1 n'est pas un nom d'utilisateur Webmin valide
convert_msg=Conversion des utilisateurs Unix en cours...
convert_nogroups=Aucun groupe Webmin n'a &#233;t&#233; d&#233;fini sur votre syst&#232;me. Vous devez cr&#233;er au moins un groupe avant d'effectuer la conversion, afin de d&#233;finir des droits d'acc&#232;s pour les utilisateurs convertis.
convert_nogroups=Aucun groupe Webmin n'a été défini sur votre système. Vous devez créer au moins un groupe avant d'effectuer la conversion, afin de définir des droits d'accès pour les utilisateurs convertis.
convert_ok=Convertir maintenant
convert_skip=$1 est ignor&#233;
convert_sync=Utiliser &#224; l'avenir le m&#234;me mot de passe que l'utilisateur Unix ?
convert_skip=$1 est ignoré
convert_sync=Utiliser à l'avenir le même mot de passe que l'utilisateur Unix ?
convert_title=Conversion des utilisateurs
cpass_dict=est un mot du dictionnaire
cpass_minsize=Doit avoir $1 lettre de long au minimum
cpass_name=Contient le nom de l'utilisateur
cpass_notre=Corresponds &#224; un mod&#232;le non permis
cpass_old=Les vieux mots de passes ne peuvent pas &#234;tre r&#233;utilis&#233;s
cpass_re=Ne corresponds pas au mod&#232;le requis
cpass_spellcmd=Ni les commandes $1 ni $2 requises pour v&#233;rifier les mots du dictionnaires ne sont install&#233;es
delete_ecannot=Vous n'&#234;tes pas autoris&#233; &#224; supprimer des utilisateurs
cpass_notre=Corresponds à un modèle non permis
cpass_old=Les vieux mots de passes ne peuvent pas être réutilisés
cpass_re=Ne correspond pas au modèle requis
cpass_spellcmd=Ni les commandes $1 ni $2 requises pour vérifier les mots du dictionnaires ne sont installées
delete_ecannot=Vous n'êtes pas autorisé à supprimer des utilisateurs
delete_err=Impossible de supprimer cet utilisateur
delete_eself=Vous ne pouvez pas vous supprimer vous-m&#234;me
delete_euser=Vous n'&#234;tes pas autoris&#233; &#224; supprimer cet utilisateur
edit_all=Autoriser &#224; partir de toutes les adresses
delete_eself=Vous ne pouvez pas vous supprimer vous-même
delete_euser=Vous n'êtes pas autorisé à supprimer cet utilisateur
edit_all=Autoriser à partir de toutes les adresses
edit_alldays=Tous les jours
edit_allhours=Tout le temps
edit_allow=Autoriser uniquement &#224; partir des adresses r&#233;pertori&#233;es
edit_allow=Autoriser uniquement à partir des adresses répertoriées
edit_cert=Nom du certificat SSL
edit_chars=Lettres
edit_clone=Cloner
edit_cloneof=Cl&#244;ner l'utilisateur Webmin
edit_days=Jours autoris&#233;s dans la semaine
edit_deny=Interdire &#224; partir des adresses r&#233;pertori&#233;es
edit_dont=Inchang&#233;
edit_ecreate=Vous n'&#234;tes pas autoris&#233; &#224; cr&#233;er des utilisateurs
edit_egone=L'utilisateur s&#233;lectionn&#233; n'existe plus !
edit_euser=Vous n'&#234;tes pas autoris&#233; &#224; modifier cet utilisateur
edit_cloneof=Clôner l'utilisateur Webmin
edit_days=Jours autorisés dans la semaine
edit_deny=Interdire à partir des adresses répertoriées
edit_dont=Inchangé
edit_ecreate=Vous n'êtes pas autorisé à créer des utilisateurs
edit_egone=L'utilisateur sélectionné n'existe plus !
edit_euser=Vous n'êtes pas autorisé à modifier cet utilisateur
edit_extauth=Programme d'authentification externe
edit_global=Permissions pour tout les modules
edit_group=Membre du groupe
edit_groupmods=(en plus des modules du groupe)
edit_hide=Masquer si inutilis&#233;
edit_hours=Heures autoris&#233;es dans la journ&#233;e
edit_invert=Inverser la s&#233;lection
edit_ipdesc=Le contr&#244;le d'acc&#232;s IP utilisateur fonctionne de la m&#234;me mani&#232;re que le contr&#244;le d'acc&#232;s IP global du module de configuration de
edit_ips=Contr&#244;le d'acc&#232;s IP
edit_hide=Masquer si inutilisé
edit_hours=Heures autorisées dans la journée
edit_invert=Inverser la sélection
edit_ipdesc=Le contrôle d'accès IP utilisateur fonctionne de la même manière que le contrôle d'accès IP global du module de configuration de
edit_ips=Contrôle d'accès IP
edit_lang=Langue
edit_lock=Aucun mot de passe accept&#233;
edit_lock=Aucun mot de passe accepté
edit_log=Voir les journaux
edit_logout=Dur&#233;e d'inactivit&#233; avant d&#233;connexion
edit_logout=Durée d'inactivité avant déconnexion
edit_mins=minutes
edit_minsize=Langueur minimum du mot de passe
edit_mods=Les modules Webmin disponibles
edit_modsg=Les modules Webmin disponibles (en y ajoutant ceux du groupe)
edit_modules=Modules
edit_none=Aucun
edit_notabs=Classer les modules par cat&#233;gories ?
edit_overlayglobal=Aucun - utiliser les th&#232;me par d&#233;faut
edit_notabs=Classer les modules par catégories ?
edit_overlayglobal=Aucun - utiliser les thème par défaut
edit_pam=Authentification PAM
edit_pass=Mot de passe
edit_passlocked=le mot de passe n'a pas &#233;t&#233; modifier depuis $1 jours - le compte est verrouill&#233; !
edit_passmax=le mot de passe n'a pas &#233;t&#233; modifier depuis $1 jours -il doit etre modifier &#224; la prochaine connexion.
edit_passlocked=le mot de passe n'a pas été modifier depuis $1 jours - le compte est verrouillé !
edit_passmax=le mot de passe n'a pas été modifier depuis $1 jours -il doit etre modifier à la prochaine connexion.
edit_proto_ldap=Le serveur LDAP
edit_proto_mysql=La base de donn&#233;e MySQL
edit_proto_postgresql=La base de donn&#233;e PostgreSQL
edit_rbacdeny=Mode d'acc&#232;s RBAC
edit_rbacdeny0=RBAC ne contr&#244;le que le module ACLs s&#233;lectionn&#233;
edit_rbacdeny1=RBAC contr&#244;le tous les modules et les ACLs
edit_readonly=Cet utilisateur Webmin ne doit pas &#234;tre &#233;dit&#233; car il est g&#233;r&#233; directement par le module $1. <a href='$2'>Cliquez ici</a> pour ignorer cet avertissement et &#233;diter tout de m&#234;me cet utilisateur, mais attention car tous les changements manuels peuvent &#234;tre red&#233;finis !
edit_real=Nom r&#233;el
edit_return=&#224; l'utilisateur Webmin
edit_proto_mysql=La base de donnée MySQL
edit_proto_postgresql=La base de donnée PostgreSQL
edit_rbacdeny=Mode d'accès RBAC
edit_rbacdeny0=RBAC ne contrôle que le module ACLs sélectionné
edit_rbacdeny1=RBAC contrôle tous les modules et les ACLs
edit_readonly=Cet utilisateur Webmin ne doit pas être édité car il est géré directement par le module $1. <a href='$2'>Cliquez ici</a> pour ignorer cet avertissement et éditer tout de même cet utilisateur, mais attention car tous les changements manuels peuvent être redéfinis !
edit_real=Nom réel
edit_return=à l'utilisateur Webmin
edit_return2=Groupe Webmin
edit_rights=Droits d'acc&#232;s de l'utilisateur Webmin
edit_rights=Droits d'accès de l'utilisateur Webmin
edit_risk=Niveau de risque
edit_risk_high=Super-utilisateur
edit_risk_low=Utilisateur normal
edit_risk_medium=Utilisateur administrateur
edit_same=Identique au mot de passe Unix
edit_selall=Tout s&#233;lectionner
edit_seldays=Uniquement les jours s&#233;lectionn&#233;s
edit_selhours=De $1:$2 &#224; $3:$4
edit_selall=Tout sélectionner
edit_seldays=Uniquement les jours sélectionnés
edit_selhours=De $1:$2 à $3:$4
edit_set=Remplacer par
edit_skill=Niveau de comp&#233;tence
edit_skill=Niveau de compétence
edit_switch=Changer d'utilisateur
edit_templock=Verrouill&#233; temporairement
edit_theme=Th&#232;me personnel
edit_themedef=Ancien th&#232;me Webmin
edit_themeglobal=&#192; partir de la configuration Webmin
edit_templock=Verrouillé temporairement
edit_theme=Thème personnel
edit_themedef=Ancien thème Webmin
edit_themeglobal=à partir de la configuration Webmin
edit_title=Modification d'un utilisateur Webmin
edit_title2=Cr&#233;ation d'un utilisateur Webmin
edit_title2=Création d'un utilisateur Webmin
edit_ui=les option de l'interface utilisateur
edit_unix=Authentification Unix
edit_user=Nom d'utilisateur
gdelete_desc=Voulez-vous vraiment supprimer le groupe $1 et les utilisateurs qui en sont membres : $2 ?
gdelete_ecannot=Vous n'&#234;tes pas autoris&#233; &#224; supprimer des groupes
gdelete_ecannot=Vous n'êtes pas autorisé à supprimer des groupes
gdelete_err=Impossible de supprimer le groupe
gdelete_esub=Les groupes comportant des sous-groupes ne peuvent pas &#234;tre supprim&#233;s
gdelete_esub=Les groupes comportant des sous-groupes ne peuvent pas être supprimés
gdelete_euser=Vous ne pouvez pas supprimer votre propre groupe
gdelete_ok=Supprimer le groupe
gdelete_title=Suppression d'un groupe
gdeletes_err=Echec de suppression des groupes
gdeletes_ok=Effacer les groupes
gdeletes_rusure=Etes-vous sur de vouloir effacer les $1 groupes s&#233;lectionn&#233;s, et les $2 utilisateurs qu'ils contiennent ? Tous leurs param&#232;tres de contr&#244;le d'acc&#232;s et leurs personnalisations seront perdus.
gdeletes_rusure=Etes-vous sur de vouloir effacer les $1 groupes sélectionnés, et les $2 utilisateurs qu'ils contiennent ? Tous leurs paramètres de contrôle d'accès et leurs personnalisations seront perdus.
gdeletes_title=Effacer les groupes
gdeletes_users=Groupes s&#233;lectionn&#233;s : $1
gdeletes_users=Groupes sélectionnés : $1
gedit_desc=Description du Groupe
gedit_ecannot=Vous n'&#234;tes pas autoris&#233; &#224; modifier des groupes
gedit_egone=Le Groupe s&#233;lectionn&#233; n'existe plus !
gedit_ecannot=Vous n'êtes pas autorisé à modifier des groupes
gedit_egone=Le Groupe sélectionné n'existe plus !
gedit_group=Nom du groupe
gedit_members=Membre des utilisateurs et des groupes
gedit_modules=Modules des membres
gedit_rights=Droits d'acc&#232;s du groupe Webmin
gedit_rights=Droits d'accèês du groupe Webmin
gedit_title=Modification d'un groupe Webmin
gedit_title2=Cr&#233;ation d'un groupe Webmin
gsave_edesc=Description Invalide - le caract&#232;re : n'est pas permis
gsave_edup=Ce nom de groupe est d&#233;j&#224; utilis&#233;
gedit_title2=Création d'un groupe Webmin
gsave_edesc=Description Invalide - le caractère : n'est pas permis
gsave_edup=Ce nom de groupe est déjà utilisé
gsave_ename=Nom du groupe manquant ou invalide
gsave_enamewebmin=Le nom de groupe 'webmin' est r&#233;serv&#233; pour une utilisation interne
gsave_enamewebmin=Le nom de groupe 'webmin' est réservé pour une utilisation interne
gsave_err=Impossible d'enregistrer le groupe
hide_clone=(Cloner $1)
hide_desc=Les modules suivants seront supprim&#233;s de la liste d'acc&#232;s des modules pour $1 car leurs serveurs correspondants ne sont pas install&#233;s sur votre syst&#232;me...
hide_desc2=Soyez conscient que ces modules ne r&#233;appara&#238;tront pas automatiquement si les serveurs correspondants sont install&#233;s. Vous devrez accorder l'acc&#232;s manuellement &#224; l'aide de ce module.
hide_none=Rien &#224; masquer - $1 n'a acc&#232;s &#224; aucun module dont les serveurs correspondants ne sont pas install&#233;s sur votre syst&#232;me.
hide_desc=Les modules suivants seront supprimés de la liste d'accès des modules pour $1 car leurs serveurs correspondants ne sont pas installés sur votre système...
hide_desc2=Soyez conscient que ces modules ne réapparaîotront pas automatiquement si les serveurs correspondants sont installés. Vous devrez accorder l'accès manuellement à l'aide de ce module.
hide_none=Rien à masquer - $1 n'a accès à aucun module dont les serveurs correspondants ne sont pas installés sur votre système.
hide_ok=Masquer les modules maintenant
hide_title=Masquage des modules inutilis&#233;s
hide_title=Masquage des modules inutilisés
index_cert=Demander un certificat SSL
index_certmsg=Cliquez sur ce bouton pour demander un certificat SSL qui vous permettra de vous connecter &#224; Webmin de mani&#232;re s&#251;re sans avoir besoin de saisir un nom d'utilisateur et un mot de passe.
index_certmsg=Cliquez sur ce bouton pour demander un certificat SSL qui vous permettra de vous connecter à Webmin de manière sûre sans avoir besoin de saisir un nom d'utilisateur et un mot de passe.
index_convert=Convertir des utilisateurs Unix en utilisateurs Webmin
index_create=Cr&#233;er un nouvel utilisateur Webmin
index_delete=Effacer la s&#233;lection
index_create=Créer un nouvel utilisateur Webmin
index_delete=Effacer la sélection
index_edit=Modifier l'ACL du module :
index_gcreate=Cr&#233;er un nouveau groupe d'utilisateurs
index_gcreate=Créer un nouveau groupe d'utilisateurs
index_global=ACL globale
index_group=Groupe
index_groups=Groupes Webmin
index_members=Membres
index_modgroups=Modules du groupe $1
index_modules=Modules
index_nogroups=Aucun groupe Webmin modifiable n'est d&#233;fini
index_nogroups=Aucun groupe Webmin modifiable n'est défini
index_none=Aucun
index_nousers=Aucun utilisateur Webmin modifiable n'est d&#233;fini
index_nousers=Aucun utilisateur Webmin modifiable n'est défini
index_rbac=Configuration RBAC
index_rcreate=Cr&#233;er un nouvel utilisateur &#224; niveau de risque
index_return=&#224; la liste des utilisateurs
index_rcreate=Créer un nouvel utilisateur à niveau de risque
index_return=à la liste des utilisateurs
index_sessions=Afficher les sessions de connexion
index_sync=Configurer la synchronisation des utilisateurs Unix
index_title=Utilisateurs Webmin
index_unix=Configurer l'authentification des utilisateurs Unix
index_user=Utilisateur
index_users=Utilisateurs Webmin
log_acl=Mis &#224; jour l'acc&#232;s de l'$1 pour l'utilisateur $2
log_cert=&#201;mis un certificat pour l'utilisateur $1
log_clone=Clon&#233; l'utilisateur Webmin $1 en $2
log_create=Cr&#233;&#233; l'utilisateur Webmin $1
log_create_g=Cr&#233;&#233; le groupe Webmin $1
log_delete=Supprim&#233; l'utilisateur Webmin $1
log_delete_g=Supprim&#233; le groupe Webmin $1
log_delete_groups=$1 est effac&#233; des groupes Webmin
log_delete_users=$1 est effac&#233; des utilisateurs Webmin
log_modify=Modifi&#233; l'utilisateur Webmin $1
log_modify_g=Modifi&#233; le groupe Webmin $1
log_rename=Renomm&#233; l'utilisateur Webmin $1 en $2
log_rename_g=Renomm&#233; le groupe Webmin $1 en $2
log_reset=R&#233;initialis&#233; l'acc&#232;s de l'$1 pour l'utilisateur $2
log_switch=Bascul&#233; vers l'utilisateur Webmin $1
log_acl=Mis à jour l'accès de l'$1 pour l'utilisateur $2
log_cert=émis un certificat pour l'utilisateur $1
log_clone=Cloné l'utilisateur Webmin $1 en $2
log_create=Créé l'utilisateur Webmin $1
log_create_g=Créé le groupe Webmin $1
log_delete=Supprimé l'utilisateur Webmin $1
log_delete_g=Supprimé le groupe Webmin $1
log_delete_groups=$1 est effacé des groupes Webmin
log_delete_users=$1 est effacé des utilisateurs Webmin
log_modify=Modifié l'utilisateur Webmin $1
log_modify_g=Modifié le groupe Webmin $1
log_rename=Renommé l'utilisateur Webmin $1 en $2
log_rename_g=Renommé le groupe Webmin $1 en $2
log_reset=Réinitialiser l'accès de l'$1 pour l'utilisateur $2
log_switch=Basculé vers l'utilisateur Webmin $1
make_done=... accompli
make_err=l'op&#233;ration de cr&#233;ation des tables pour l'utilisateur et le groupe a &#233;chou&#233;e.
make_failed=... &#201;chec de la cr&#233;ation : $1
make_still=Quelques probl&#232;mes ont &#233;t&#233;s rencontr&#233;s m&#234;me apr&#232;s la cr&#233;ation de la table : $1
make_title=cr&#233;ation des Tables de Utilisateur et des Groupes
make_err=l'opération de création des tables pour l'utilisateur et le groupe a échoué.
make_failed=... échec de la création : $1
make_still=Quelques problèmes ont étés rencontrés même après la création de la table : $1
make_title=création des Tables de Utilisateur et des Groupes
makedn_done=... accompli
makedn_title=Cr&#233;ation de LDAP DN
makedn_title=Création de LDAP DN
pass_days=jours
pass_ecannot=Vous n'&#234;tes pas autoris&#233; &#224; &#233;diter les restrictions des mots de passes
pass_nooldblock=R&#233;utilisation du mot de passe illimit&#233;e
pass_pass=mots de passes
pass_ecannot=Vous n'êtes pas autorisé à éditer les restrictions des mots de passes
pass_nooldblock=Réutilisation illimitée du mot de passe
pass_pass=mots de passe
pass_title=Restrictions de mot de passe
rbac_desc=L'int&#233;gration RBAC dans Webmin offre la possibilit&#233; pour un module utilisateur de d&#233;terminer les permissions ACL depuis une base de donn&#233;es RBAC (Role Based Access Control), plut&#244;t que depuis les fichiers de configuration de Webmin. Une fois que le support RBAC est activ&#233;, tout utilisateur pour qui <b>$edit_rbacdeny1</b> l'option est s&#233;lectionn&#233;e verra ses possibilit&#233;s d&#233;termin&#233;e par RBAC plut&#244;t que par les param&#232;tres de cont&#244;le d'acc&#232;s de Webmin.
rbac_ecpan=Vous n'avez pas acc&#232;s &#224; la page de modules Perl de Webmin pour installer le module $1 n&#233;cessaire pour l'int&#233;gration de RBAC.
rbac_eperl=Le module Perl $1 n&#233;cessaire pour l'int&#233;gration RBAC n'est pas install&#233;. <a href='$2'>Cliquez ici</a> pour l'installer maintenant.
rbac_esolaris=RBAC n'est support&#233; actuellement que sur Solaris, et ne peut pas &#234;tre utilis&#233; sur ce syst&#232;me $1.
rbac_ok=L'int&#233;gration de RBAC est disponible sur ce syt&#232;me et peut &#234;tre activ&#233;e pour les utilisateurs en &#233;ditant la page "Utilisateur Webmin".
rbac_desc=L'intégration RBAC dans Webmin offre la possibilité pour un module utilisateur de déterminer les permissions ACL depuis une base de données RBAC (Role Based Access Control), plutôt que depuis les fichiers de configuration de Webmin. Une fois que le support RBAC est activé, tout utilisateur pour qui <b>$edit_rbacdeny1</b> l'option est sélectionnée verra ses possibilités déterminée par RBAC plutôt que par les paramètres de contôle d'accès de Webmin.
rbac_ecpan=Vous n'avez pas accès à la page de modules Perl de Webmin pour installer le module $1 nécessaire pour l'intégration de RBAC.
rbac_eperl=Le module Perl $1 nécessaire pour l'intégration RBAC n'est pas installé. <a href='$2'>Cliquez ici</a> pour l'installer maintenant.
rbac_esolaris=RBAC n'est supporté actuellement que sur Solaris, et ne peut pas être utilisé sur ce système $1.
rbac_ok=L'intégration de RBAC est disponible sur ce sytème et peut être activée pour les utilisateurs en éditant la page "Utilisateur Webmin".
rbac_title=Configuration RBAC
save_ecolon=Les mots de passe ne peuvent pas contenir le caract&#232;re &#171; : &#187;
save_ecreate=Vous n'&#234;tes pas autoris&#233; &#224; cr&#233;er des utilisateurs
save_edays=Pas de jours autoris&#233;s s&#233;lectionn&#233;s
save_edeny=Vous ne pouvez pas vous interdire d'avoir acc&#232;s au module de configuration des utilisateurs Webmin
save_edup=L'utilisateur '$1' existe d&#233;j&#224;
save_egroup=Vous n'&#234;tes pas autoris&#233; &#224; affecter quoi que ce soit &#224; ce groupe
save_ecolon=Les mots de passe ne peuvent pas contenir le caractère " : "
save_ecreate=Vous n'êtes pas autoris" à créer des utilisateurs
save_edays=Pas de jours autorisés sélectionnés
save_edeny=Vous ne pouvez pas vous interdire d'avoir accès au module de configuration des utilisateurs Webmin
save_edup=L'utilisateur '$1' existe déjà
save_egroup=Vous n'êtes pas autorisé à affecter quoi que ce soit à ce groupe
save_ehost=Impossible de trouver une adresse IP pour '$1'
save_ehours=Heures autoris&#233;es manquantes ou incorrectes
save_ehours2=L'heure de d&#233;but de l'autorisation doit &#234;tre avant l'heure de fin
save_eip='$1' n'est pas une adresse IP ou une adresse r&#233;seau compl&#232;te
save_elogouttime=Temporisation de d&#233;connexion manquante ou non num&#233;rique
save_emask='$1' n'est pas un masque r&#233;seau valide
save_ehours=Heures autorisées manquantes ou incorrectes
save_ehours2=L'heure de début de l'autorisation doit être avant l'heure de fin
save_eip='$1' n'est pas une adresse IP ou une adresse réseau complète
save_elogouttime=Temporisation de déconnexion manquante ou non numérique
save_emask='$1' n'est pas un masque réseau valide
save_emd5=Il n'est pas possible de cocher l'option <b>Mot de passe identique au mot de passe UNIX</b> avec le chiffrement MD5
save_emod=Vous ne pouvez pas accorder d'acc&#232;s au module '$1'
save_emod=Vous ne pouvez pas accorder d'accès au module '$1'
save_ename='$1' n'est pas un nom d'utilisateur valide
save_enamewebmin=Le nom d'utilisateur 'webmin' est r&#233;serv&#233; pour une utilisation interne
save_enet='$1' n'est pas une adresse r&#233;seau valide
save_enamewebmin=Le nom d'utilisateur 'webmin' est réservé pour une utilisation interne
save_enet='$1' n'est pas une adresse réseau valide
save_enone=Pas d'adresse saisie
save_eos=Votre syst&#232;me d'exploitation ne g&#232;re pas l'option <b>Mot de passe identique au mot de passe Unix</b>.
save_epam=L'authentification PAM n'est pas disponible car le module Perl <tt>Authen::PAM</tt> n'est pas install&#233; ou ne fonctionne pas correctement.
save_epam2=Vous pouvez utiliser le module <b>Modules Perl</b> de Webmin pour <a href='$1'>t&#233;l&#233;charger et installer Authen::PAM</a> maintenant.
save_eos=Votre système d'exploitation ne gère pas l'option <b>Mot de passe identique au mot de passe Unix</b>.
save_epam=L'authentification PAM n'est pas disponible car le module Perl <tt>Authen::PAM</tt> n'est pas installé ou ne fonctionne pas correctement.
save_epam2=Vous pouvez utiliser le module <b>Modules Perl</b> de Webmin pour <a href='$1'>télécharger et installer Authen::PAM</a> maintenant.
save_epass=Mot de passes incorrecte : $1
save_err=Impossible d'enregistrer l'utilisateur
save_eself=Votre adresse IP actuelle ($1) serait interdite
save_eunix=L'utilisateur Unix $1 n'existe pas
save_euser=Vous n'&#234;tes pas autoris&#233; &#224; modifier cet utilisateur
schema_title=T&#233;l&#233;charger un Sch&#233;ma LDAP
sessions_desc=Les noms de connexion de la session Webmin actuelle sont r&#233;pertori&#233;s ci-dessous. Pour annuler une session existante et forcer l'utilisateur &#224; se connecter &#224; nouveau, cliquez sur son identifiant de session.
sessions_host=Adresse IP
sessions_id=Identifiant de session
sessions_login=Connect&#233; le
sessions_lview=Voir les journaux...
save_euser=Vous n'êtes pas autorisé à modifier cet utilisateur
schema_title=Télécharger un schéma LDAP
sessions_desc=Les noms de connexion de la session Webmin actuelle sont répertoriés ci-dessous. Pour annuler une session existante et forcer l'utilisateur à se connecter à nouveau, cliquez sur son identifiant de session.
sessions_title=Sessions de connexion actuelles
sessions_id=ID de session
sessions_user=Utilisateur Webmin
sql_db=Nom de la base de donn&#233;e
sql_host=Nom d'h&#244;te
sql_make=Cr&#233;ation des Tables
sql_makedn=Cr&#233;ation DN
sessions_login=Connecté le
sessions_host=Adresse IP
sessions_lview=Voir les journaux...
sessions_actions=Actions...
sessions_logouts=Montrer aussi les sessions de déconnexion...
sessions_state=État
sessions_this=Cette connexion
sessions_in=Connexion
sessions_out=Déconnexion
sessions_kill=Déconnecté...
logins_title=Récentes connexions à Webmin
sql_db=Nom de la base de donnée
sql_host=Nom d'hôte
sql_make=Création des Tables
sql_makedn=Création DN
sql_pass=Mot de passe
sql_ssl0=Aucun
sql_ssl1=SSL
sql_ssl2=TLS
sql_user=Nom d'utilisateur
switch_eold=Session existante non trouv&#233;e !
switch_euser=Vous n'&#234;tes pas autoris&#233; &#224; basculer vers cet utilisateur
sync_create=Cr&#233;er un utilisateur Webmin quand un utilisateur Webmin est cr&#233;&#233;
sync_delete=Supprimer l'utilisateur Webmin correspondant quand un utilisateur Unix est supprim&#233;
sync_desc=Ce formulaire vous permet de configurer la synchronisation automatique des utilisateurs Unix cr&#233;&#233;s &#224; l'aide de Webmin et des utilisateurs de ce module.
sync_ecannot=Vous n'&#234;tes pas autoris&#233; &#224; configurer la synchronisation des utilisateurs
sync_group=Affecter de nouveaux utilisateurs &#224; un groupe Webmin
sync_nogroups=Aucun groupe Webmin n'a &#233;t&#233; d&#233;fini sur votre syst&#232;me. Vous devez cr&#233;er au moins un groupe pour d&#233;finir l'acc&#232;s concernant les utilisateurs cr&#233;&#233;s.
switch_eold=Session existante non trouvée !
switch_euser=Vous n'êtes pas autorisé à basculer vers cet utilisateur
sync_create=Créer un utilisateur Webmin quand un utilisateur Webmin est créé
sync_delete=Supprimer l'utilisateur Webmin correspondant quand un utilisateur Unix est supprimé
sync_desc=Ce formulaire vous permet de configurer la synchronisation automatique des utilisateurs Unix créés à l'aide de Webmin et des utilisateurs de ce module.
sync_ecannot=Vous n'êtes pas autorisé à configurer la synchronisation des utilisateurs
sync_group=Affecter de nouveaux utilisateurs à un groupe Webmin
sync_nogroups=Aucun groupe Webmin n'a étédéfini sur votre système. Vous devez créer au moins un groupe pour définir l'accès concernant les utilisateurs créés.
sync_title=Synchronisation des utilisateurs Unix
sync_unix=D&#233;finir un mot de passe &#224; de nouveaux utilisateurs pour l'authentification Unix
sync_update=Mettre &#224; jour l'utilisateur Webmin correspondant quand un utilisateur Unix est mis &#224; jour
udeletes_enone=Aucune s&#233;lection
udeletes_ereadonly=Un des utilisateurs s&#233;lectionn&#233;s est marqu&#233; comme non &#233;ditable
sync_unix=Définir un mot de passe pour de nouveaux utilisateurs pour l'authentification Unix
sync_update=Mettre à jour l'utilisateur Webmin correspondant quand un utilisateur Unix est mis à jour
udeletes_enone=Aucune sélection
udeletes_ereadonly=Un des utilisateurs sélectionnés est marqué comme non éditable
udeletes_err=Echec de suppression des utilisateurs
udeletes_ok=Efface les utilisateurs
udeletes_rusure=Etes-vous sur de vouloir effacer les $1 utilisateurs s&#233;lectionn&#233;s ? Tous leurs param&#232;tres de contr&#244;le d'acc&#232;s et leurs personnalisations seront perdus.
udeletes_rusure=Etes-vous sur de vouloir effacer les $1 utilisateurs sélectionnés ? Tous leurs paramètres de contrôle d'accès et leurs personnalisations seront perdus.
udeletes_title=Efface les utilisateurs
udeletes_users=Utilisateurs s&#233;lectionn&#233;s : $1
unix_all=Autoriser tous les utilisateurs Unix r&#233;pertori&#233;s
unix_allow=Autoriser uniquement les utilisateurs Unix r&#233;pertori&#233;s
unix_def=Autoriser uniquement les utilisateurs Webmin &#224; se connecter
unix_deny=Interdire les utilisateurs Unix r&#233;pertori&#233;s
unix_desc=Cette page vous permet de configurer Webmin pour valider les tentatives de connexion par rapport &#224; la liste des utilisateurs syst&#232;me et de PAM. Ce comportement peut &#234;tre utile si vous avez un grand nombre d'utilisateurs Unix existants auxquels vous souhaitez donner acc&#232;s &#224; Webmin.
unix_ecannot=Vous n'&#234;tes pas autoris&#233; &#224; configurer l'authentification des utilisateurs Unix
udeletes_users=Utilisateurs sélectionnés : $1
unix_all=Autoriser tous les utilisateurs Unix répertoriés
unix_allow=Autoriser uniquement les utilisateurs Unix répertoriés
unix_def=Autoriser uniquement les utilisateurs Webmin à se connecter
unix_deny=Interdire les utilisateurs Unix répertoriés
unix_desc=Cette page vous permet de configurer Webmin pour valider les tentatives de connexion par rapport à la liste des utilisateurs système et de PAM. Ce comportement peut être utile si vous avez un grand nombre d'utilisateurs Unix existants auxquels vous souhaitez donner accès à Webmin.
unix_ecannot=Vous n'êtes pas autorisé à configurer l'authentification des utilisateurs Unix
unix_egroup='$1' n'est pas un nom de groupe valide
unix_enone=Pas d'utilisateurs ou de groupes Unix &#224; autoris&#233; indiqu&#233;
unix_epam=L'authentification Unix n'est pas disponible car le module Perl <tt>Authen::PAM</tt> n'est pas install&#233; ou ne fonctionne pas correctement.
unix_eshells=Fichier d'interpr&#233;teurs de commande manquant ou non existant
unix_enone=Pas d'utilisateurs ou de groupes Unix à autoriser indiqués
unix_epam=L'authentification Unix n'est pas disponible car le module Perl <tt>Authen::PAM</tt> n'est pas installé ou ne fonctionne pas correctement.
unix_eshells=Fichier d'interpréteurs de commande manquant ou non existant
unix_euser='$1' n'est pas un nom d'utilisateur valide
unix_ewhogroup=Pas de groupe &#224; autoriser en rang&#233;e $1
unix_ewhouser=Pas d'utilisateur &#224; autoriser en rang&#233;e $1
unix_ewhogroup=Pas de groupe à autoriser dans la ligne $1
unix_ewhouser=Pas d'utilisateur à autoriser en rangée $1
unix_group=Membres du groupe..
unix_mall=Tous les utilisateurs
unix_mode=Autorise
unix_none=Aucun utilisateur saisi
unix_pamany=Traiter les connexions valid&#233;s uniquement par PAM comme $1
unix_restrict=Les restrictions additionnelles suivantes seront appliqu&#233;es aux utilisateurs Unix s&#233;lectionn&#233;s ci-dessus.
unix_pamany=Traiter les connexions validés uniquement par PAM comme $1
unix_restrict=Les restrictions additionnelles suivantes seront appliquées aux utilisateurs Unix sélectionnés ci-dessus.
unix_same=&lt;Comme utilisateur ou groupe&gt;
unix_sel=Autoriser les utilisateurs Unix list&#233;s ci-dessous &#224; se connecter ..
unix_shells=Interdire les utilisateurs Unix dont les interpr&#233;teurs de commandes ne sont pas dans un fichier
unix_sudo=Autoriser les utilisateurs pouvant lancer des commandes via <tt>sudo</tt> &#224; se connecter en tant que <tt>root</tt>
unix_sel=Autoriser les utilisateurs Unix listés ci-dessous à se connecter ..
unix_shells=Interdire les utilisateurs Unix dont les interpréteurs de commandes ne sont pas dans un fichier
unix_sudo=Autoriser les utilisateurs pouvant lancer des commandes via <tt>sudo</tt> à se connecter en tant que <tt>root</tt>
unix_title=Authentification des utilisateurs Unix
unix_to=Comme utilisateur Webmin
unix_user=Autoriser n'importe quel utilisateur Unix &#224; se connecter avec les droits d'acc&#232;s d'utilisateur
unix_user=Autoriser n'importe quel utilisateur Unix à se connecter avec les droits d'accès d'utilisateur
unix_who=Utilisateur ou Groupe

358
acl/lang/fr.UTF-8 Normal file
View File

@@ -0,0 +1,358 @@
acl_acl=Peut modifier le contrôle d'accès au module ?
acl_all=Tous les modules
acl_cats=Peut changer de catégorie ?
acl_cert=Peut demander un certificat ?
acl_chcert=Peut changer le nom du certificat SSL ?
acl_config=Peut modifier la configuration du module ?
acl_create=Peut créer de nouveaux utilisateurs ?
acl_delete=Peut supprimer des utilisateurs ?
acl_egroup=Vous n'êtes pas autorisé à modifier les ACL des groupes
acl_emod=Vous n'êtes pas autorisé à modifier le contrôle d'accès de ce module
acl_err=Impossible d'enregistrer les contrôles d'accès
acl_euser=Vous n'êtes pas autorisé à modifier le contrôle d'accès pour cet utilisateur
acl_gall=Tous les groupes
acl_gassign=Peut affecter des utilisateurs à des groupes
acl_gnone=Aucun
acl_gr=Membres de $1
acl_groups=Peut modifier des groupes ?
acl_gsel=Sélectionnés...
acl_ips=Peut changer le contrôle d'accès IP ?
acl_lang=Peut changer de langue ?
acl_mods=Peut accorder un accès ?
acl_options=Options du contrôle d'accès du module $1
acl_others=Peut voir les modules inaccessibles ?
acl_own=Seulement ses propres modules
acl_pass=Peut modifier les restrictions du mot de passe ?
acl_perms=Les utilisateurs récemment créés obtiennent
acl_perms_0=Contrôle d'accès au module par défaut (sans restriction)
acl_perms_1=Même contrôle d'accès au module que le créateur
acl_rbac=Récupérer les paramètres de contrôle d'accès depuis RBAS ?
acl_rbacyes=Oui (remplace les paramètres ci-dessous)
acl_rename=Peut renommer des utilisateurs ?
acl_reset=Réinitialiser en mode plein accès
acl_sel=Modules sélectionnés...
acl_sessions=Peut afficher et annuler des sessions de connexion ?
acl_sql=peut configurer la base de donnée du groupe et de l'utilisateur ?
acl_switch=Peut basculer vers d'autres utilisateurs ?
acl_sync=Peut configurer la synchronisation des utilisateurs ?
acl_theme=Peut changer le thème personnel ?
acl_times=Peut changer les heures de connexion autorisées ?
acl_title=Contrôle d'accès du module
acl_title2=$2 pour l'utilisateur $1
acl_title3=du groupe $2 pour l'utilisateur $1
acl_uall=Tous les utilisateurs
acl_unix=Peut configurer l'authentification Unix ?
acl_usel=Utilisateurs sélectionnés...
acl_users=Utilisateurs pouvant être modifiés
acl_uthis=Cet utilisateur
cert_already=<b>Avertissement</<b> : vous utilisez déjà le certificat $1.
cert_c=Code du pays
cert_cn=Votre nom
cert_done=Votre certificat pour $1 a été généré avec succès.
cert_ebrowser=Webmin ne sait pas comment émettre des certificats client pour votre navigateur ( $1 )
cert_eca=Impossible de configurer l'Autorité de Certification : $1
cert_ekey=Une nouvelle clé SSL n'a pas été soumise par votre navigateur : peut-être ne gère-t-il pas les certificats client SSL.
cert_email=Adresse électronique
cert_header=Détails du nouveau certificat
cert_install=Installez votre certificat dans le navigateur
cert_issue=Émettre un certificat
cert_key=Taille de la clé
cert_msg=Ce formulaire vous permet de demander un certificat SSL client qui servira ensuite à vous accorder l'accès à Webmin au lieu de vos nom d'utilisateur et mot de passe. Cette méthode est plus sûre, mais comme l'authentification est automatique, vous ne pourrez plus changer d'utilisateur quand vous ferez appel au certificat.
cert_o=Organisation
cert_ou=Département
cert_pickup=<a href='$1'>Cliquez ici pour sélectionner votre certificat et l'installer dans votre navigateur</a>
cert_sp=État
cert_title=Demande de certificat
convert_0=Tous les utilisateurs
convert_1=Seulement les utilisateurs
convert_2=Tous sauf les utilisateurs
convert_3=Utilisateurs du groupe
convert_4=Utilisateurs dont l'UID est dans l'intervalle
convert_added=$1 est ajouté
convert_desc=Ce formulaire vous permet de convertir des utilisateurs Unix existants en utilisateurs Webmin. Les droits d'accès de chaque nouvel utilisateur Webmin seront déterminés par le groupe sélectionné ci-dessous.
convert_ecannot=Vous n'êtes pas autorisé à convertir un utilisateur Unix
convert_egroup=Le groupe Unix n'existe pas
convert_emax=UID maximal invalide
convert_emin=UID minimal invalide
convert_err=Impossible de convertir les utilisateurs
convert_eusers=Aucun utilisateur à convertir saisi
convert_ewgroup=Pas de groupe Webmin de ce type
convert_ewgroup2=Vous n'^étes pas autorisé à affecter de nouveaux utilisateurs à ce groupe
convert_exists=$1 existe déjà
convert_group=Affecter de nouveaux utilisateurs au groupe Webmin
convert_invalid=$1 n'est pas un nom d'utilisateur Webmin valide
convert_msg=Conversion des utilisateurs Unix en cours...
convert_nogroups=Aucun groupe Webmin n'a été défini sur votre système. Vous devez créer au moins un groupe avant d'effectuer la conversion, afin de définir des droits d'accès pour les utilisateurs convertis.
convert_ok=Convertir maintenant
convert_skip=$1 est ignoré
convert_sync=Utiliser à l'avenir le même mot de passe que l'utilisateur Unix ?
convert_title=Conversion des utilisateurs
cpass_dict=est un mot du dictionnaire
cpass_minsize=Doit avoir $1 lettre de long au minimum
cpass_name=Contient le nom de l'utilisateur
cpass_notre=Corresponds à un modèle non permis
cpass_old=Les vieux mots de passes ne peuvent pas être réutilisés
cpass_re=Ne correspond pas au modèle requis
cpass_spellcmd=Ni les commandes $1 ni $2 requises pour vérifier les mots du dictionnaires ne sont installées
delete_ecannot=Vous n'êtes pas autorisé à supprimer des utilisateurs
delete_err=Impossible de supprimer cet utilisateur
delete_eself=Vous ne pouvez pas vous supprimer vous-même
delete_euser=Vous n'êtes pas autorisé à supprimer cet utilisateur
edit_all=Autoriser à partir de toutes les adresses
edit_alldays=Tous les jours
edit_allhours=Tout le temps
edit_allow=Autoriser uniquement à partir des adresses répertoriées
edit_cert=Nom du certificat SSL
edit_chars=Lettres
edit_clone=Cloner
edit_cloneof=Clôner l'utilisateur Webmin
edit_days=Jours autorisés dans la semaine
edit_deny=Interdire à partir des adresses répertoriées
edit_dont=Inchangé
edit_ecreate=Vous n'êtes pas autorisé à créer des utilisateurs
edit_egone=L'utilisateur sélectionné n'existe plus !
edit_euser=Vous n'êtes pas autorisé à modifier cet utilisateur
edit_extauth=Programme d'authentification externe
edit_global=Permissions pour tout les modules
edit_group=Membre du groupe
edit_groupmods=(en plus des modules du groupe)
edit_hide=Masquer si inutilisé
edit_hours=Heures autorisées dans la journée
edit_invert=Inverser la sélection
edit_ipdesc=Le contrôle d'accès IP utilisateur fonctionne de la même manière que le contrôle d'accès IP global du module de configuration de
edit_ips=Contrôle d'accès IP
edit_lang=Langue
edit_lock=Aucun mot de passe accepté
edit_log=Voir les journaux
edit_logout=Durée d'inactivité avant déconnexion
edit_mins=minutes
edit_minsize=Langueur minimum du mot de passe
edit_mods=Les modules Webmin disponibles
edit_modsg=Les modules Webmin disponibles (en y ajoutant ceux du groupe)
edit_modules=Modules
edit_none=Aucun
edit_notabs=Classer les modules par catégories ?
edit_overlayglobal=Aucun - utiliser les thème par défaut
edit_pam=Authentification PAM
edit_pass=Mot de passe
edit_passlocked=le mot de passe n'a pas été modifier depuis $1 jours - le compte est verrouillé !
edit_passmax=le mot de passe n'a pas été modifier depuis $1 jours -il doit etre modifier à la prochaine connexion.
edit_proto_ldap=Le serveur LDAP
edit_proto_mysql=La base de donnée MySQL
edit_proto_postgresql=La base de donnée PostgreSQL
edit_rbacdeny=Mode d'accès RBAC
edit_rbacdeny0=RBAC ne contrôle que le module ACLs sélectionné
edit_rbacdeny1=RBAC contrôle tous les modules et les ACLs
edit_readonly=Cet utilisateur Webmin ne doit pas être édité car il est géré directement par le module $1. <a href='$2'>Cliquez ici</a> pour ignorer cet avertissement et éditer tout de même cet utilisateur, mais attention car tous les changements manuels peuvent être redéfinis !
edit_real=Nom réel
edit_return=à l'utilisateur Webmin
edit_return2=Groupe Webmin
edit_rights=Droits d'accès de l'utilisateur Webmin
edit_risk=Niveau de risque
edit_risk_high=Super-utilisateur
edit_risk_low=Utilisateur normal
edit_risk_medium=Utilisateur administrateur
edit_same=Identique au mot de passe Unix
edit_selall=Tout sélectionner
edit_seldays=Uniquement les jours sélectionnés
edit_selhours=De $1:$2 à $3:$4
edit_set=Remplacer par
edit_skill=Niveau de compétence
edit_switch=Changer d'utilisateur
edit_templock=Verrouillé temporairement
edit_theme=Thème personnel
edit_themedef=Ancien thème Webmin
edit_themeglobal=à partir de la configuration Webmin
edit_title=Modification d'un utilisateur Webmin
edit_title2=Création d'un utilisateur Webmin
edit_ui=les option de l'interface utilisateur
edit_unix=Authentification Unix
edit_user=Nom d'utilisateur
gdelete_desc=Voulez-vous vraiment supprimer le groupe $1 et les utilisateurs qui en sont membres : $2 ?
gdelete_ecannot=Vous n'êtes pas autorisé à supprimer des groupes
gdelete_err=Impossible de supprimer le groupe
gdelete_esub=Les groupes comportant des sous-groupes ne peuvent pas être supprimés
gdelete_euser=Vous ne pouvez pas supprimer votre propre groupe
gdelete_ok=Supprimer le groupe
gdelete_title=Suppression d'un groupe
gdeletes_err=Echec de suppression des groupes
gdeletes_ok=Effacer les groupes
gdeletes_rusure=Etes-vous sur de vouloir effacer les $1 groupes sélectionnés, et les $2 utilisateurs qu'ils contiennent ? Tous leurs paramètres de contrôle d'accès et leurs personnalisations seront perdus.
gdeletes_title=Effacer les groupes
gdeletes_users=Groupes sélectionnés : $1
gedit_desc=Description du Groupe
gedit_ecannot=Vous n'êtes pas autorisé à modifier des groupes
gedit_egone=Le Groupe sélectionné n'existe plus !
gedit_group=Nom du groupe
gedit_members=Membre des utilisateurs et des groupes
gedit_modules=Modules des membres
gedit_rights=Droits d'accèês du groupe Webmin
gedit_title=Modification d'un groupe Webmin
gedit_title2=Création d'un groupe Webmin
gsave_edesc=Description Invalide - le caractère : n'est pas permis
gsave_edup=Ce nom de groupe est déjà utilisé
gsave_ename=Nom du groupe manquant ou invalide
gsave_enamewebmin=Le nom de groupe 'webmin' est réservé pour une utilisation interne
gsave_err=Impossible d'enregistrer le groupe
hide_clone=(Cloner $1)
hide_desc=Les modules suivants seront supprimés de la liste d'accès des modules pour $1 car leurs serveurs correspondants ne sont pas installés sur votre système...
hide_desc2=Soyez conscient que ces modules ne réapparaîotront pas automatiquement si les serveurs correspondants sont installés. Vous devrez accorder l'accès manuellement à l'aide de ce module.
hide_none=Rien à masquer - $1 n'a accès à aucun module dont les serveurs correspondants ne sont pas installés sur votre système.
hide_ok=Masquer les modules maintenant
hide_title=Masquage des modules inutilisés
index_cert=Demander un certificat SSL
index_certmsg=Cliquez sur ce bouton pour demander un certificat SSL qui vous permettra de vous connecter à Webmin de manière sûre sans avoir besoin de saisir un nom d'utilisateur et un mot de passe.
index_convert=Convertir des utilisateurs Unix en utilisateurs Webmin
index_create=Créer un nouvel utilisateur Webmin
index_delete=Effacer la sélection
index_edit=Modifier l'ACL du module :
index_gcreate=Créer un nouveau groupe d'utilisateurs
index_global=ACL globale
index_group=Groupe
index_groups=Groupes Webmin
index_members=Membres
index_modgroups=Modules du groupe $1
index_modules=Modules
index_nogroups=Aucun groupe Webmin modifiable n'est défini
index_none=Aucun
index_nousers=Aucun utilisateur Webmin modifiable n'est défini
index_rbac=Configuration RBAC
index_rcreate=Créer un nouvel utilisateur à niveau de risque
index_return=à la liste des utilisateurs
index_sessions=Afficher les sessions de connexion
index_sync=Configurer la synchronisation des utilisateurs Unix
index_title=Utilisateurs Webmin
index_unix=Configurer l'authentification des utilisateurs Unix
index_user=Utilisateur
index_users=Utilisateurs Webmin
log_acl=Mis à jour l'accès de l'$1 pour l'utilisateur $2
log_cert=émis un certificat pour l'utilisateur $1
log_clone=Cloné l'utilisateur Webmin $1 en $2
log_create=Créé l'utilisateur Webmin $1
log_create_g=Créé le groupe Webmin $1
log_delete=Supprimé l'utilisateur Webmin $1
log_delete_g=Supprimé le groupe Webmin $1
log_delete_groups=$1 est effacé des groupes Webmin
log_delete_users=$1 est effacé des utilisateurs Webmin
log_modify=Modifié l'utilisateur Webmin $1
log_modify_g=Modifié le groupe Webmin $1
log_rename=Renommé l'utilisateur Webmin $1 en $2
log_rename_g=Renommé le groupe Webmin $1 en $2
log_reset=Réinitialiser l'accès de l'$1 pour l'utilisateur $2
log_switch=Basculé vers l'utilisateur Webmin $1
make_done=... accompli
make_err=l'opération de création des tables pour l'utilisateur et le groupe a échoué.
make_failed=... échec de la création : $1
make_still=Quelques problèmes ont étés rencontrés même après la création de la table : $1
make_title=création des Tables de Utilisateur et des Groupes
makedn_done=... accompli
makedn_title=Création de LDAP DN
pass_days=jours
pass_ecannot=Vous n'êtes pas autorisé à éditer les restrictions des mots de passes
pass_nooldblock=Réutilisation illimitée du mot de passe
pass_pass=mots de passe
pass_title=Restrictions de mot de passe
rbac_desc=L'intégration RBAC dans Webmin offre la possibilité pour un module utilisateur de déterminer les permissions ACL depuis une base de données RBAC (Role Based Access Control), plutôt que depuis les fichiers de configuration de Webmin. Une fois que le support RBAC est activé, tout utilisateur pour qui <b>$edit_rbacdeny1</b> l'option est sélectionnée verra ses possibilités déterminée par RBAC plutôt que par les paramètres de contôle d'accès de Webmin.
rbac_ecpan=Vous n'avez pas accès à la page de modules Perl de Webmin pour installer le module $1 nécessaire pour l'intégration de RBAC.
rbac_eperl=Le module Perl $1 nécessaire pour l'intégration RBAC n'est pas installé. <a href='$2'>Cliquez ici</a> pour l'installer maintenant.
rbac_esolaris=RBAC n'est supporté actuellement que sur Solaris, et ne peut pas être utilisé sur ce système $1.
rbac_ok=L'intégration de RBAC est disponible sur ce sytème et peut être activée pour les utilisateurs en éditant la page "Utilisateur Webmin".
rbac_title=Configuration RBAC
save_ecolon=Les mots de passe ne peuvent pas contenir le caractère " : "
save_ecreate=Vous n'êtes pas autoris" à créer des utilisateurs
save_edays=Pas de jours autorisés sélectionnés
save_edeny=Vous ne pouvez pas vous interdire d'avoir accès au module de configuration des utilisateurs Webmin
save_edup=L'utilisateur '$1' existe déjà
save_egroup=Vous n'êtes pas autorisé à affecter quoi que ce soit à ce groupe
save_ehost=Impossible de trouver une adresse IP pour '$1'
save_ehours=Heures autorisées manquantes ou incorrectes
save_ehours2=L'heure de début de l'autorisation doit être avant l'heure de fin
save_eip='$1' n'est pas une adresse IP ou une adresse réseau complète
save_elogouttime=Temporisation de déconnexion manquante ou non numérique
save_emask='$1' n'est pas un masque réseau valide
save_emd5=Il n'est pas possible de cocher l'option <b>Mot de passe identique au mot de passe UNIX</b> avec le chiffrement MD5
save_emod=Vous ne pouvez pas accorder d'accès au module '$1'
save_ename='$1' n'est pas un nom d'utilisateur valide
save_enamewebmin=Le nom d'utilisateur 'webmin' est réservé pour une utilisation interne
save_enet='$1' n'est pas une adresse réseau valide
save_enone=Pas d'adresse saisie
save_eos=Votre système d'exploitation ne gère pas l'option <b>Mot de passe identique au mot de passe Unix</b>.
save_epam=L'authentification PAM n'est pas disponible car le module Perl <tt>Authen::PAM</tt> n'est pas installé ou ne fonctionne pas correctement.
save_epam2=Vous pouvez utiliser le module <b>Modules Perl</b> de Webmin pour <a href='$1'>télécharger et installer Authen::PAM</a> maintenant.
save_epass=Mot de passes incorrecte : $1
save_err=Impossible d'enregistrer l'utilisateur
save_eself=Votre adresse IP actuelle ($1) serait interdite
save_eunix=L'utilisateur Unix $1 n'existe pas
save_euser=Vous n'êtes pas autorisé à modifier cet utilisateur
schema_title=Télécharger un schéma LDAP
sessions_desc=Les noms de connexion de la session Webmin actuelle sont répertoriés ci-dessous. Pour annuler une session existante et forcer l'utilisateur à se connecter à nouveau, cliquez sur son identifiant de session.
sessions_title=Sessions de connexion actuelles
sessions_id=ID de session
sessions_user=Utilisateur Webmin
sessions_login=Connecté le
sessions_host=Adresse IP
sessions_lview=Voir les journaux...
sessions_actions=Actions...
sessions_logouts=Montrer aussi les sessions de déconnexion...
sessions_state=État
sessions_this=Cette connexion
sessions_in=Connexion
sessions_out=Déconnexion
sessions_kill=Déconnecté...
logins_title=Récentes connexions à Webmin
sql_db=Nom de la base de donnée
sql_host=Nom d'hôte
sql_make=Création des Tables
sql_makedn=Création DN
sql_pass=Mot de passe
sql_ssl0=Aucun
sql_ssl1=SSL
sql_ssl2=TLS
sql_user=Nom d'utilisateur
switch_eold=Session existante non trouvée !
switch_euser=Vous n'êtes pas autorisé à basculer vers cet utilisateur
sync_create=Créer un utilisateur Webmin quand un utilisateur Webmin est créé
sync_delete=Supprimer l'utilisateur Webmin correspondant quand un utilisateur Unix est supprimé
sync_desc=Ce formulaire vous permet de configurer la synchronisation automatique des utilisateurs Unix créés à l'aide de Webmin et des utilisateurs de ce module.
sync_ecannot=Vous n'êtes pas autorisé à configurer la synchronisation des utilisateurs
sync_group=Affecter de nouveaux utilisateurs à un groupe Webmin
sync_nogroups=Aucun groupe Webmin n'a étédéfini sur votre système. Vous devez créer au moins un groupe pour définir l'accès concernant les utilisateurs créés.
sync_title=Synchronisation des utilisateurs Unix
sync_unix=Définir un mot de passe pour de nouveaux utilisateurs pour l'authentification Unix
sync_update=Mettre à jour l'utilisateur Webmin correspondant quand un utilisateur Unix est mis à jour
udeletes_enone=Aucune sélection
udeletes_ereadonly=Un des utilisateurs sélectionnés est marqué comme non éditable
udeletes_err=Echec de suppression des utilisateurs
udeletes_ok=Efface les utilisateurs
udeletes_rusure=Etes-vous sur de vouloir effacer les $1 utilisateurs sélectionnés ? Tous leurs paramètres de contrôle d'accès et leurs personnalisations seront perdus.
udeletes_title=Efface les utilisateurs
udeletes_users=Utilisateurs sélectionnés : $1
unix_all=Autoriser tous les utilisateurs Unix répertoriés
unix_allow=Autoriser uniquement les utilisateurs Unix répertoriés
unix_def=Autoriser uniquement les utilisateurs Webmin à se connecter
unix_deny=Interdire les utilisateurs Unix répertoriés
unix_desc=Cette page vous permet de configurer Webmin pour valider les tentatives de connexion par rapport à la liste des utilisateurs système et de PAM. Ce comportement peut être utile si vous avez un grand nombre d'utilisateurs Unix existants auxquels vous souhaitez donner accès à Webmin.
unix_ecannot=Vous n'êtes pas autorisé à configurer l'authentification des utilisateurs Unix
unix_egroup='$1' n'est pas un nom de groupe valide
unix_enone=Pas d'utilisateurs ou de groupes Unix à autoriser indiqués
unix_epam=L'authentification Unix n'est pas disponible car le module Perl <tt>Authen::PAM</tt> n'est pas installé ou ne fonctionne pas correctement.
unix_eshells=Fichier d'interpréteurs de commande manquant ou non existant
unix_euser='$1' n'est pas un nom d'utilisateur valide
unix_ewhogroup=Pas de groupe à autoriser dans la ligne $1
unix_ewhouser=Pas d'utilisateur à autoriser en rangée $1
unix_group=Membres du groupe..
unix_mall=Tous les utilisateurs
unix_mode=Autorise
unix_none=Aucun utilisateur saisi
unix_pamany=Traiter les connexions validés uniquement par PAM comme $1
unix_restrict=Les restrictions additionnelles suivantes seront appliquées aux utilisateurs Unix sélectionnés ci-dessus.
unix_same=&lt;Comme utilisateur ou groupe&gt;
unix_sel=Autoriser les utilisateurs Unix listés ci-dessous à se connecter ..
unix_shells=Interdire les utilisateurs Unix dont les interpréteurs de commandes ne sont pas dans un fichier
unix_sudo=Autoriser les utilisateurs pouvant lancer des commandes via <tt>sudo</tt> à se connecter en tant que <tt>root</tt>
unix_title=Authentification des utilisateurs Unix
unix_to=Comme utilisateur Webmin
unix_user=Autoriser n'importe quel utilisateur Unix à se connecter avec les droits d'accès d'utilisateur
unix_who=Utilisateur ou Groupe

View File

@@ -42,3 +42,4 @@ longdesc_de=Erstellt Webmin-Benutzer und konfiguriert, auf welche Module und Fun
longdesc_es=Crear usuarios de webmin y configurar a que modulos y caracteristicas pueden acceder.
longdesc_pl=Twórz u¿ytkowników Webmina i kontroluj, które modu³y i funkcje s± dla nich dostêpne.
longdesc_ca=Crea usuaris Webmin i configura quins mòduls i característiques tenen permès d'accedir.
desc_fr.UTF-8=Utilisateurs Webmin

View File

@@ -52,11 +52,11 @@ else {
# Validate username, and check for a clash
$in{'name'} =~ /^[A-z0-9\-\_\.\@]+$/ && $in{'name'} !~ /^\@/ ||
&error(&text('save_ename', $in{'name'}));
&error(&text('save_ename', &html_escape($in{'name'})));
$in{'name'} eq 'webmin' && &error($text{'save_enamewebmin'});
if (!$in{'old'} || $in{'old'} ne $in{'name'}) {
my $clash = &get_user($in{'name'});
$clash && &error(&text('save_edup', $in{'name'}));
$clash && &error(&text('save_edup', &html_escape($in{'name'})));
}
!$access{'logouttime'} || $in{'logouttime_def'} ||
$in{'logouttime'} =~ /^\d+$/ || &error($text{'save_elogouttime'});

View File

@@ -13,8 +13,8 @@ my %miniserv;
&get_miniserv_config(\%miniserv);
if (!$miniserv{'twofactor_provider'}) {
&ui_print_header(undef, $text{'twofactor_title'}, "");
&ui_print_endpage(&text('twofactor_setup',
'../webmin/edit_twofactor.cgi'));
print &text('twofactor_setup', '../webmin/edit_twofactor.cgi'),"<p>\n";
&ui_print_footer("", $text{'index_return'});
return;
}

View File

@@ -97,6 +97,7 @@ $apache_docbase = $config{'apache_docbase'} ? $config{'apache_docbase'} :
# name - The name of this directive
# value - Value (possibly with spaces)
# members - For type 1, a reference to the array of members
# indent - Number of spaces before the name
sub parse_config_file
{
local($fh, @rv, $line, %dummy);
@@ -224,15 +225,16 @@ while($line = <$fh>) {
'name', "</IfVersion>" });
}
}
elsif ($line =~ /^\s*<(\S+)\s*(.*)>/) {
elsif ($line =~ /^(\s*)<(\S+)\s*(.*)>/) {
# start of a container directive. The first member is a dummy
# directive at the same line as the container
local(%dir, @members);
%dir = ('line', $_[1],
'file', $_[2],
'type', 1,
'name', $1,
'value', $2);
'name', $2,
'value', $3,
'indent', length($1));
$dir{'value'} =~ s/\s+$//g;
$dir{'words'} = &wsplit($dir{'value'});
$_[1]++;
@@ -241,15 +243,16 @@ while($line = <$fh>) {
$dir{'eline'} = $_[1]-1;
push(@rv, \%dir);
}
elsif ($line =~ /^\s*(\S+)\s*(.*)$/) {
elsif ($line =~ /^(\s*)(\S+)\s*(.*)$/) {
# normal directive
local(%dir);
%dir = ('line', $_[1],
'eline', $_[1],
'file', $_[2],
'type', 0,
'name', $1,
'value', $2);
'name', $2,
'value', $3,
'indent', length($1));
if ($dir{'value'} =~ s/\\$//g) {
# multi-line directive!
while($line = <$fh>) {
@@ -586,7 +589,8 @@ for($i=0; $i<@old || $i<@{$_[1]}; $i++) {
$old[$i]->{'value'} = $v;
$old[$i]->{'words'} = &wsplit($v);
$old[$i]->{'eline'} = $old[$i]->{'line'};
splice(@$lref, $old[$i]->{'line'}, $len, "$_[0] $v");
splice(@$lref, $old[$i]->{'line'}, $len,
(" " x $old[$i]->{'indent'}).$_[0]." ".$v);
$change = $old[$i];
}
}

View File

@@ -227,10 +227,11 @@ Returns a backup destination string, or calls error.
sub parse_backup_destination
{
my %in = %{$_[1]};
my $mode = $in{"$_[0]_mode"};
my $mode = $in{"$_[0]_mode"} || 0;
if ($mode == 0) {
# Local file
$in{"$_[0]_file"} =~ /^\/\S/ || &error($text{'backup_edest'});
$in{"$_[0]_file"} && $in{"$_[0]_file"} =~ /^\/\S/ ||
&error($text{'backup_edest'});
return $in{"$_[0]_file"};
}
elsif ($mode == 1) {
@@ -587,7 +588,7 @@ if (!$show) {
}
# Extract contents (only files specified by manifests)
my $flag = $show ? "t" : "x";
my $flag = $show ? "t" : "xv";
my $qfiles = join(" ", map { s/^\///; quotemeta($_) } &unique(@files));
if ($gzipped) {
&execute_command("cd / ; gunzip -c $qfile | tar ${flag}f - $qfiles",

View File

@@ -81,4 +81,5 @@ syslog_syslog-ng=Syslog-NG
rotate_title=Actualització d'Estadístiques
rotate_doing=S'està processant el trànsit de xarxa registrat...
rotate_done=...fet.
__norefs=1

View File

@@ -55,9 +55,11 @@ foreach $hour (@hours) {
&save_hour($hour);
}
# Truncate the file and notify syslog
open(LOG, ">$bandwidth_log");
close(LOG);
# Truncate the file (if it exists) and notify syslog
if (-r $bandwidth_log) {
open(LOG, ">$bandwidth_log");
close(LOG);
}
&foreign_call($syslog_module, "signal_syslog");
# Remove PID file

View File

@@ -148,3 +148,5 @@ Added support for editing DMARC records, which are specially encoded TXT records
Automatic creation and deletion of reverse records in partial delegation zones now works the same as in full reverse zones.
---- Changes since 1.810 ----
Added support for editing TLSA (SSL Certificate) records.
---- Changes since 1.830 ----
Added support for editing SSHFP (SSH Public Key) records.

View File

@@ -1,7 +1,9 @@
# bind8-lib.pl
# Common functions for bind8 config files
use strict;
use warnings;
no warnings 'redefine';
BEGIN { push(@INC, ".."); };
use WebminCore;
@@ -656,10 +658,17 @@ else {
# save_port_address(name, portname, &config, indent)
sub save_port_address {
my ($port, @vals, $dir, $n);
foreach my $addr (split(/\s+/, $in{$_[0]})) {
$addr =~ /^\S+$/ || &error(&text('eipacl', $addr));
push(@vals, { 'name' => $addr });
}
my @sp = split(/\s+/, $in{$_[0]});
for(my $i=0; $i<@sp; $i++) {
$sp[$i] =~ /^\S+$/ || &error(&text('eipacl', $sp[$i]));
if (lc($sp[$i+1]) eq "key") {
push(@vals, { 'name' => $sp[$i++],
'values' => [ "key", $sp[++$i] ] });
}
else {
push(@vals, { 'name' => $sp[$i] });
}
}
$dir = { 'name' => $_[0], 'type' => 1, 'members' => \@vals };
($n = $_[1]) =~ s/[^A-Za-z0-9_]/_/g;
$dir->{'values'} = [ $_[1], $in{$_[1]} ] if (!$in{"${n}_def"});
@@ -673,9 +682,9 @@ my ($addr, @vals, $dir);
my @sp = split(/\s+/, $in{$_[0]});
for(my $i=0; $i<@sp; $i++) {
!$_[3] || &check_ipaddress($sp[$i]) || &error(&text('eip', $sp[$i]));
if (lc($sp[$i]) eq "key") {
push(@vals, { 'name' => $sp[$i],
'values' => [ $sp[++$i] ] });
if (lc($sp[$i+1]) eq "key") {
push(@vals, { 'name' => $sp[$i++],
'values' => [ "key", $sp[++$i] ] });
}
else {
push(@vals, { 'name' => $sp[$i] });
@@ -1148,6 +1157,23 @@ elsif ($type eq "TLSA") {
print &ui_table_row($text{'value_TLSA4'},
&ui_textbox("value3", $v[3], 70));
}
elsif ($type eq "SSHFP") {
print &ui_table_row($text{'value_SSHFP1'},
&ui_select("value0", $v[0],
[ [ 1, $text{'sshfp_alg1'}." (1)" ],
[ 2, $text{'sshfp_alg2'}." (2)" ],
[ 3, $text{'sshfp_alg3'}." (3)" ],
[ 4, $text{'sshfp_alg4'}." (4)" ] ]));
print &ui_table_row($text{'value_SSHFP2'},
&ui_select("value1", $v[1],
[ [ 1, $text{'sshfp_fp1'}." (1)" ],
[ 2, $text{'sshfp_fp2'}." (2)" ] ]));
print &ui_table_row($text{'value_SSHFP3'},
&ui_textbox("value2", $v[2], 70));
}
elsif ($type eq "LOC") {
print &ui_table_row($text{'value_LOC1'},
&ui_textbox("value0", join(" ", @v), 40), 3);
@@ -2155,7 +2181,7 @@ return undef;
sub start_bind
{
my $chroot = &get_chroot();
my $user;
my $user = "";
my $cmd;
if ($config{'named_user'}) {
$user = "-u $config{'named_user'}";
@@ -2424,13 +2450,15 @@ unlink($zone_names_cache);
# Returns a zone cache object, looked up by name or index
sub get_zone_name
{
my ($key, $viewidx) = @_;
$viewidx ||= '';
my @zones = &list_zone_names();
my $field = $_[0] =~ /^\d+$/ ? "index" : "name";
my $field = $key =~ /^\d+$/ ? "index" : "name";
foreach my $z (@zones) {
if ($z->{$field} eq $_[0] &&
($_[1] eq 'any' ||
$_[1] eq '' && !defined($z->{'viewindex'}) ||
$_[1] ne '' && $z->{'viewindex'} == $_[1])) {
if ($z->{$field} eq $key &&
($viewidx eq 'any' ||
$viewidx eq '' && !defined($z->{'viewindex'}) ||
$viewidx ne '' && $z->{'viewindex'} == $_[1])) {
return $z;
}
}
@@ -2899,7 +2927,7 @@ $slave_error = $_[0];
sub get_forward_record_types
{
return ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "SPF", "DMARC", "WKS", "RP", "PTR", "LOC", "SRV", "KEY", "TLSA", "NSEC3PARAM", $config{'support_aaaa'} ? ( "AAAA" ) : ( ), @extra_forward);
return ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "SPF", "DMARC", "WKS", "RP", "PTR", "LOC", "SRV", "KEY", "TLSA", "SSHFP", "NSEC3PARAM", $config{'support_aaaa'} ? ( "AAAA" ) : ( ), @extra_forward);
}
sub get_reverse_record_types
@@ -3132,13 +3160,16 @@ return $alg eq 'RSAMD5' || $alg eq 'RSASHA1' ||
$alg eq 'DSA' ? ( 512, 1024, 64 ) :
$alg eq 'HMAC-MD5' ? ( 1, 512 ) :
$alg eq 'NSEC3RSASHA1' ? ( 512, 4096 ) :
$alg eq 'NSEC3DSA' ? ( 512, 1024, 64 ) : ( );
$alg eq 'NSEC3DSA' ? ( 512, 1024, 64 ) :
$alg eq 'ECDSAP256SHA256' ? ( 128, 512 ) :
$alg eq 'ECDSAP384SHA384' ? ( 128, 512 ) :
( );
}
sub list_dnssec_algorithms
{
return ("RSASHA1", "RSASHA256", "RSAMD5", "DSA", "DH", "HMAC-MD5",
"NSEC3RSASHA1", "NSEC3DSA");
"NSEC3RSASHA1", "NSEC3DSA", "ECDSAP256SHA256", "ECDSAP384SHA384");
}
# get_keys_dir(&zone|&zone-name)
@@ -3241,6 +3272,8 @@ for(my $i=$#recs; $i>=0; $i--) {
foreach my $key (@keys) {
&create_record($chrootfn, $dom.".", undef, "IN", "DNSKEY",
join(" ", @{$key->{'values'}}));
&set_ownership($key->{'privatefile'});
&set_ownership($key->{'publicfile'});
}
&bump_soa_record($chrootfn, \@recs);
@@ -3309,6 +3342,8 @@ $newzonekey || return "Could not find new DNSSEC zone key";
&modify_record($fn, $zonerec, $dom.".", undef, "IN", "DNSKEY",
join(" ", @{$newzonekey->{'values'}}));
&bump_soa_record($fn, \@recs);
&set_ownership($newzonekey->{'privatefile'});
&set_ownership($newzonekey->{'publicfile'});
# Re-sign everything
my $err = &sign_dnssec_zone($z);
@@ -3394,7 +3429,8 @@ return $out if ($tries >= 10);
for(my $i=$#recs; $i>=0; $i--) {
if ($recs[$i]->{'type'} eq 'NSEC' ||
$recs[$i]->{'type'} eq 'NSEC3' ||
$recs[$i]->{'type'} eq 'RRSIG') {
$recs[$i]->{'type'} eq 'RRSIG' ||
$recs[$i]->{'type'} eq 'NSEC3PARAM') {
&delete_record($fn, $recs[$i]);
}
}
@@ -3402,7 +3438,8 @@ my @signedrecs = &read_zone_file($fn.".webmin-signed", $dom);
foreach my $r (@signedrecs) {
if ($r->{'type'} eq 'NSEC' ||
$r->{'type'} eq 'NSEC3' ||
$r->{'type'} eq 'RRSIG') {
$r->{'type'} eq 'RRSIG' ||
$r->{'type'} eq 'NSEC3PARAM') {
&create_record($fn, $r->{'name'}, $r->{'ttl'}, $r->{'class'},
$r->{'type'}, join(" ", @{$r->{'values'}}),
$r->{'comment'});

View File

@@ -134,13 +134,19 @@ if ($in{'onslave'}) {
my @slaves = &list_slave_servers();
if (@slaves) {
my $also = { 'name' => 'also-notify',
'type' => 1,
'members' => [ ] };
'type' => 1,
'members' => [ ] };
my $allow = { 'name' => 'allow-transfer',
'type' => 1,
'members' => [ ] };
foreach my $s (@slaves) {
push(@{$also->{'members'}},
{ 'name' => &to_ipaddress($s->{'host'}) });
push(@{$allow->{'members'}},
{ 'name' => &to_ipaddress($s->{'host'}) });
}
push(@{$dir->{'members'}}, $also);
push(@{$dir->{'members'}}, $allow);
push(@{$dir->{'members'}}, { 'name' => 'notify',
'values' => [ 'yes' ] });
}

View File

@@ -218,6 +218,23 @@ for(my $i=0; $i<@_; $i++) {
elsif ($j == 2) {
$v = $text{'tlsa_match'.$v};
}
else {
$v = undef;
}
$v = $v ? $v." (".$r->{'values'}->[$j].")"
: $r->{'values'}->[$j];
}
elsif ($in{'type'} eq "SSHFP") {
# Display SSHFP codes nicely
if ($j == 0) {
$v = $text{'sshfp_alg'.$v};
}
elsif ($j == 1) {
$v = $text{'sshfp_fp'.$v};
}
else {
$v = undef;
}
$v = $v ? $v." (".$r->{'values'}->[$j].")"
: $r->{'values'}->[$j];
}

View File

@@ -122,10 +122,18 @@ $_[1] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
my @to = ($1, $2, $3, $4);
return @to if (@to != 4);
for (my $i=0;$i<4;$i++) {
$from[$i]=$from[$i]==0?1:$from[$i];
$to[$i]=$to[$i]==255?254:$to[$i];
}
for (my $i=3;$i>=0;$i--) {
my $e = 0;
if ($from[$i] == 0) {
$from[$i] = 1;
$e++;
}
if ($to[$i] == 255) {
$to[$i] = 254;
$e++;
}
last if ($e);
}
my %frecs;

View File

@@ -271,6 +271,10 @@ edit_eloc=Hi falta la latitud i la longitud
edit_eweight='$1' no és un pes de servei vàlid
edit_eport='$1' no és un número de port vàlid
edit_etarget='$1' no és un nom de servidor ni una adreça vàlida
edit_eusage='$1' no és un número d'ús TLSA vàlid
edit_eselector='$1' no és un número de selector TLSA vàlid
edit_ematch='$1' no és un número de coincidència TLSA vàlid
edit_etlsa=El certificat codificat amb TLSA és invàlid - només pot contenir bytes hexadecimals de dos dígits
edit_return=als registres
edit_ecname1=No pots crear un registre d'àlies de nom amb el mateix nom que un d'existent.
edit_ecname2=No pots crear un registre amb el mateix nom que un d'existent.
@@ -285,6 +289,9 @@ edit_dtitle=Suprimeix el Registre
edit_rusure=Segur que vols suprimir el registre $1 del domini $2, i possiblement qualsevol registre invers o de reenviament que hi coincideixi?
edit_dok=Sí, Suprimeix-lo
edit_eptr='$1' no és un nom de host de registre d'adreça inversa vàlid
edit_ealg2='$1' no és un número d'algoritme de certificat vàlid
edit_efp='$1' no és un tipus d'empremta digital de certificat vàlid
edit_esshfp=Hi falten les dades de la clau pública codificades en base 64 o bé no són vàlides
edit_espfa='$1' no és un host destinació vàlid
edit_espfa2='$1' ha de ser un nom de host, no una adreça IP
edit_espfmx='$1' no és un nom de domini destinació vàlid
@@ -378,6 +385,8 @@ type_HINFO=Informaci
type_NSEC3PARAM=Paràmetres DNSSEC
type_TXT=Text
type_SPF=Remitent Permès des de
type_TLSA=Certificat SSL
type_SSHFP=Clau Pública SSH
type_DMARC=DMARC
type_WKS=Servei Conegut (WKS)
type_RP=Persona Responsable
@@ -408,6 +417,8 @@ recs_defttl=TTL per defecte
recs_A=Adreça
recs_AAAA=Adreça IPv6
recs_NS=Servidor de Noms
edit_TLSA=Certificat SSL
edit_SSHFP=Clau Pública SSH
recs_CNAME=Àlies del Nom
recs_MX=Servidor de Correu
recs_HINFO=Informació del Host
@@ -427,6 +438,8 @@ recs_delete=Suprimeix els Seleccionats
value_A1=Adreça
value_AAAA1=Adreça IPv6
value_NS1=Servidor de Noms
recs_TLSA=Certificat SSL
recs_SSHFP=Clau Pública SSH
value_CNAME1=Nom Real
value_MX1=Prioritat
value_MX2=Servidor de Correu
@@ -444,6 +457,13 @@ value_SRV1=Prioritat
value_SRV2=Pes
value_SRV3=Port
value_SRV4=Servidor
value_TLSA1=Ús del certificat
value_TLSA2=Selector del certificat
value_TLSA3=Coincidència del certificat
value_TLSA4=Dades del certificat
value_SSHFP1=Algoritme de la clau pública
value_SSHFP2=Empremta digital de la clau pública
value_SSHFP3=Dades de la clau pública
value_KEY1=Banderes
value_KEY2=Protocol
value_KEY3=Algoritme
@@ -489,6 +509,23 @@ value_dmarcaspf=Requereix alineaci
value_dmarcadkim=Requereix alineació DKIM estricta
value_dmarcnor=No ho enviïs
tlsa_usage0=Autoritat certificadora
tlsa_usage1=Acaba l'entitat
tlsa_usage2=Ancora de confiança
tlsa_usage3=Domini emès
tlsa_selector0=Certificat complet
tlsa_selector1=Info de la clau pública
tlsa_match0=Contingut sense hash
tlsa_match1=amb hash SHA-256
tlsa_match2=amb hash SHA-512
sshfp_alg1=RSA
sshfp_alg2=DSA
sshfp_alg3=ECDSA
sshfp_alg4=Ed25519
sshfp_fp1=SHA-1
sshfp_fp2=SHA-256
warn=Avisa
fail=Falla
ignore=Ignora

View File

@@ -229,6 +229,8 @@ edit_PTR=Reverse-Adresse
edit_RP=Verantwortliche Person
edit_SPF=Sender Permitted Form (SPF)
edit_SRV=Service-Adresse
edit_SSHFP=SSH &#214;ffentlicher Schl&#252;ssel
edit_TLSA=SSL-Zertifikat
edit_TXT=Text
edit_WKS=Bekannter Dienst
edit_add=F&#252;ge $1 Datensatz hinzu
@@ -787,6 +789,8 @@ recs_PTR=Reverse-Adresse
recs_RP=Verantwortliche Person
recs_SPF=Sender Permitted Form (SPF)
recs_SRV=Service Adresse
recs_SSHFP=SSH &#214;ffentlicher Schl&#252;ssel
recs_TLSA=SSL-Zertifikat
recs_TXT=Text
recs_WKS=Bekannter Dienst
recs_addr=Adresse
@@ -929,6 +933,12 @@ slaves_sync=Erzeuge alle existierenden Master-Zonen auf Slave-Servern?
slaves_title=Cluster-Slave-Server
slaves_toview=Zeige Slaves an, um Zonen dort hinzuzuf&#252;gen
slaves_view=Zur Ansicht hinzuf&#252;gen
sshfp_alg1=RSA
sshfp_alg2=DSA
sshfp_alg3=ECDSA
sshfp_alg4=Ed25519
sshfp_fp1=SHA-1
sshfp_fp2=SHA-256
start_ecannot=Sie haben keine Berechtigung, BIND zu starten
start_error=Fehler beim Starten von BIND : $1
stop_ecannot=Sie d&#252;rfen BIND nicht stoppen
@@ -944,6 +954,12 @@ text_soa=Erh&#246;he Seriennummer automatisch
text_title=Bearbeite Datensatzdatei
text_title2=Zeige Eintr&#228;ge der Zonendatei an
text_undo=R&#252;ckg&#228;ngig
tlsa_match0=Ungehashter Inhalt
tlsa_match1=SHA-256 gehasht
tlsa_match2=SHA-512 gehasht
tlsa_selector0=Volles Zertifikat
tlsa_selector1=&#214;ffentlicher Schl&#252;ssel info
tlsa_usage0=Zertifizierungsstelle
trusted_alg=Algorithmus
trusted_dlv=Reale Zone
trusted_dnssec=DNSSEC aktiviert?
@@ -983,6 +999,8 @@ type_PTR=Reverse-Adresse
type_RP=Verantwortliche Person
type_SPF=Sender Permitted Form (SPF)
type_SRV=Service-Adresse
type_SSHFP=SSH &#214;ffentlicher Schl&#252;ssel
type_TLSA=SSL-Zertifikat
type_TXT=Text
type_WKS=Bekannter Dienst
umass_any=<b>ALLE</b> Eintr&#228;ge aktualisieren

View File

@@ -285,6 +285,9 @@ edit_eflags='$1' is not a valid decimal or hex key flags number
edit_eproto='$1' is not a valid key protocol number
edit_ealg='$1' is not a valid key algorithm number
edit_ekey=Missing or invalid base-64 encoded key data
edit_ealg2='$1' is not a valid certificate algorithm number
edit_efp='$1' is not a valid certificate fingerprint type
edit_esshfp=Missing or invalid base-64 encoded public key data
edit_dtitle=Delete Record
edit_rusure=Are you sure you want to delete the record $1 from domain $2, and possibly any matching reverse or forward record?
edit_dok=Yes, Delete It
@@ -383,6 +386,7 @@ type_NSEC3PARAM=DNSSEC Parameters
type_TXT=Text
type_SPF=Sender Permitted From
type_TLSA=SSL Certificate
type_SSHFP=SSH Public Key
type_DMARC=DMARC
type_WKS=Well Known Service
type_RP=Responsible Person
@@ -408,6 +412,8 @@ edit_LOC=Location
edit_SRV=Service Address
edit_KEY=Public Key
edit_NSEC3PARAM=DNSSEC Parameters
edit_TLSA=SSL Certificate
edit_SSHFP=SSH Public Key
recs_defttl=Default TTL
recs_A=Address
@@ -427,6 +433,8 @@ recs_SRV=Service Address
recs_ALL=All
recs_KEY=Public Key
recs_NSEC3PARAM=DNSSEC Parameters
recs_TLSA=SSL Certificate
recs_SSHFP=SSH Public Key
recs_delete=Delete Selected
value_A1=Address
@@ -453,6 +461,9 @@ value_TLSA1=Certificate usage
value_TLSA2=Certificate selector
value_TLSA3=Certificate match
value_TLSA4=Certificate data
value_SSHFP1=Public key algorithm
value_SSHFP2=Public key fingerprint
value_SSHFP3=Public key data
value_KEY1=Flags
value_KEY2=Protocol
value_KEY3=Algorithm
@@ -508,6 +519,13 @@ tlsa_match0=Unhashed contents
tlsa_match1=SHA-256 hashed
tlsa_match2=SHA-512 hashed
sshfp_alg1=RSA
sshfp_alg2=DSA
sshfp_alg3=ECDSA
sshfp_alg4=Ed25519
sshfp_fp1=SHA-1
sshfp_fp2=SHA-256
warn=Warn
fail=Fail
ignore=Ignore

View File

@@ -266,6 +266,7 @@ edit_eip6='$1' er ikke en gyldig IPv6 adresse
edit_ekey=Manglende eller ugyldig base-64 kodet n&#248;kkeldata
edit_elabel=En etikett i '$1' er for lang
edit_eloc=Manglende bredde- og lengdegrad
edit_ematch='$1' er ikke et gyldig TLSA match nummer
edit_emx='$1' er ikke en gyldig e-post tjener
edit_ename='$1' er ikke et gyldig oppf&#248;ringsnavn
edit_ens='$1' er ikke en gyldig navnetjener
@@ -278,6 +279,7 @@ edit_eproto='$1' er ikke et gyldig n&#248;kkel protokoll nummer
edit_eptr='$1' er ikke et gyldig vertsnavn for en revers adresseoppf&#248;ring
edit_erevmust=Revers sone for IP adresse ikke funnet
edit_err=Kunne ikke lagre oppf&#248;ring
edit_eselector='$1' er ikke et gyldig TLSA selector nummer
edit_eserv=Du oppga ikke noen vekjente tjenester
edit_eserv2='$1' er ikke et gyldig tjenestenavn
edit_espfa='$1' er ikke en gyldig vert &#229; tillate sending fra
@@ -290,8 +292,10 @@ edit_espfmx='$1' er ikke et gyldig domenenavn &#229; tillate MX sending fra
edit_espfmxmax=Du har ikke lov til &#229; ha flere enn 10 domener som det tillates MX sending fra
edit_espfredirect='$1' er ikke et gyldig alternativt domenenavn
edit_etarget='$1' er ikke et gyldig tjenernavn eller adresse
edit_etlsa=Ugyldig TLSA kodet sertifikat - kan kun inneholde 2-siffers hex bytes
edit_ettl='$1' er ikke en gyldig time-to-live
edit_etxt='$1' er ikek et gyldig navn p&#229; en tekst-oppf&#248;ring
edit_eusage='$1' er ikke et gyldig TLSA bruks-nummer
edit_eweight='$1' er ikke en gyldig tjeneste-vekt
edit_header=I $1
edit_name=Navn
@@ -958,6 +962,15 @@ text_soa=&#216;k serienummer automatisk
text_title=Rediger oppf&#248;ringsfil
text_title2=Vis oppf&#248;ringsfil
text_undo=Omgj&#248;r
tlsa_match0=Uhashet innhold
tlsa_match1=SHA-256 hashet
tlsa_match2=SHA-512 hashet
tlsa_selector0=Fullt sertifikat
tlsa_selector1=Offentlig n&#248;kkel info
tlsa_usage0=Sertifikat-autoritet
tlsa_usage1=Slutt entitet
tlsa_usage2=Trust anker
tlsa_usage3=Domene utgitt
trusted_alg=Algoritme
trusted_anchor=Anker sone
trusted_dlv=Virkelig sone
@@ -1001,6 +1014,7 @@ type_PTR=Revers adresse
type_RP=Ansvarlig person
type_SPF=Avsender tillatt fra
type_SRV=Tjeneste adresse
type_TLSA=SSL sertifikat
type_TXT=Tekst
type_WKS=Velkjente tjenester
umass_any=Oppdater <b>alle</b> oppf&#248;ringer
@@ -1047,6 +1061,10 @@ value_SRV1=Prioritet
value_SRV2=Vekt
value_SRV3=Port
value_SRV4=Tjener
value_TLSA1=Sertifikat bruk
value_TLSA2=Sertifikat selektor
value_TLSA3=Sertifikat match
value_TLSA4=Sertifikat data
value_TXT1=Melding
value_WKS1=Adresse
value_WKS2=Protokoll

View File

@@ -1,6 +1,7 @@
# Functions for managing BIND 4 and 8/9 records files
use strict;
use warnings;
no warnings 'redefine';
# Globals from Webmin or bind8-lib.pl
our (%config, %text, %in);

View File

@@ -296,13 +296,21 @@ else {
length($in{'value3'}) % 2 == 0 ||
&error(&text('edit_etlsa', $in{'value3'}));
}
elsif ($in{'type'} eq 'SSHFP') {
$in{'value0'} =~ /^\d+$/ ||
&error(text('edit_ealg', $in{'value0'}));
$in{'value1'} =~ /^\d+$/ ||
&error(text('edit_efp', $in{'value1'}));
$in{'value2'} =~ /^[a-f0-9]+$/ ||
&error(&text('edit_esshfp', $in{'value2'}));
}
elsif ($in{'type'} eq 'KEY') {
$in{'value0'} =~ /^(\d+|0x[0-9a-f]+={0,2})$/i ||
&error(text('edit_eflags', $in{'value0'}));
$in{'value1'} =~ /^\d+$/ ||
&error(text('edit_eproto', $in{'value1'}));
$in{'value2'} =~ /^\d+$/ ||
&error(text('edit_ealg', $in{'value2'}));
&error(text('edit_ealg2', $in{'value2'}));
$in{'value3'} =~ s/[ \r\n]//g;
$in{'value3'} =~ /^[a-zA-Z0-9\/\+]+$/ ||
&error(text('edit_ekey'));

192
certmgr/certmgr-lib.pl Executable file → Normal file
View File

@@ -60,7 +60,8 @@ sub print_sign_form {
print &ui_table_start($text{'signcsr_header'}, undef, 2);
print &ui_table_row($text{'signcsr_csrfile'}, &ui_textbox("csrfile", $in{'csrfile'}, 40), undef, $valign_middle);
print &ui_table_row($text{'signcsr_signfile'}, &ui_textbox("signfile", $in{'signfile'}, 40), undef, $valign_middle);
print &ui_table_row($text{'signcsr_keyfile'}, &ui_textbox("keycertfile", $in{'keycertfile'}, 40), undef, $valign_middle);
print &ui_table_row($text{'signcsr_keycertfile'}, &ui_textbox("cacertfile", $in{'cacertfile'}, 40), undef, $valign_middle);
print &ui_table_row($text{'signcsr_keyfile'}, &ui_textbox("cakeyfile", $in{'cakeyfile'}, 40), undef, $valign_middle);
print &ui_table_row(&ui_link("/help.cgi/certmgr/signcsr_ca_pass",
"<b>$text{'signcsr_ca_passphrase'}</b>", undef,
"onClick='window.open(\"/help.cgi/certmgr/signcsr_ca_pass\", \"help\", \"toolbar=no,menubar=no,scrollbars=yes,width=400,height=300,resizable=yes\"); return false;'"),
@@ -77,9 +78,12 @@ sub show_cert_info {
my $certdata=$_[1];
my %issuer;
my %subject;
my %v3ext;
my $isreq=0;
my @gr;
my @fields=('CN','O','OU','L','ST','C');
my $field;
my $rv = "";
if ($certdata=~/^\s*Certificate\s+Request:.*$/mi) {$isreq=1;}
foreach $field (@fields){
if ($certdata=~/^\s*Issuer:.*?\s+$field=(.*?)(, [A-Z]{1,2}|\/\w+=|$)/m) { $issuer{$field}=$1; }
if ($certdata=~/^\s*Subject:.*?\s+$field=(.*?)(, [A-Z]{1,2}|\/\w+=|$)/m) { $subject{$field}=$1; }
@@ -89,10 +93,19 @@ sub show_cert_info {
if ($certdata=~/^\s*Subject:.*?\/Email=(\S*?)(,\s*|$)/m) { $subject{'emailAddress'}=$1;}
if ($certdata=~/^\s*Not\s*After\s*:\s*(.*?)\s*$/m) { $subject{'expires'}=$1;}
if ($certdata=~/^\s*Not\s*Before\s*:\s*(.*?)\s*$/m) { $subject{'issued'}=$1;}
if ($certdata=~/^\s*MD5\s*Fingerprint=(.*?)\s*$/m) { $subject{'md5fingerprint'}=$1;}
if ($certdata=~/^\s*(\S*)\s*Public\s*Key:\s*\((.*?)\s*bit\)\s*$/m) { $subject{'keytype'}=$1; $subject{'keysize'}=$2;}
if ($certdata=~/^\s*Modulus\s*\(\d*\s*bit\):\s*((([0-9a-fA-F]{2}:)*\s*)*[0-9a-fA-F]{2})/ms) { $subject{'modulus'}=$1; }
if ($certdata=~/^\s*MD5\s+Fingerprint=(.*?)\s*$/m) { $subject{'md5fingerprint'}=$1;}
if ($certdata=~/^\s*SHA1\s+Fingerprint=(.*?)\s*$/m) { $subject{'sha1fingerprint'}=$1;}
if ($certdata=~/^\s*SHA256\s+Fingerprint=(.*?)\s*$/m) { $subject{'sha256fingerprint'}=$1;}
if ($certdata=~/^\s*Public\s+Key\s+Algorithm:\s*(.*?)\s*$/mi) { $subject{'keytype'}=$1;}
if ($certdata=~/^\s*Public-Key:\s*\(\s*(\S*?)\s*bit\s*\)\s*$/m) { $subject{'keysize'}=$1;}
if ($certdata=~/^\s*Modulus:\s*((([0-9a-fA-F]{2}:)*\s*)*[0-9a-fA-F]{2})/ms) { $subject{'modulus'}=$1; }
if ($certdata=~/^\s*Exponent:\s*(.*?)\s*?$/m) { $subject{'exponent'}=$1; }
if ($certdata=~/^\s*X509v3 Subject Alternative Name:\s*(.*?)\s*?$/m) { $v3ext{'san'}=$1; }
if ($certdata=~/^\s*Serial\s+Number:\s*((([0-9a-fA-F]{2}:)*\s*)*[0-9a-fA-F]{2})\s+/ms) { $subject{'serial'}=$1;}
if (!$subject{'serial'}) {
if ($certdata=~/^\s*Serial\s+Number:\s*([0-9]+)\s*\(/ms) { $subject{'serial'}=$1;}
}
if ($certdata=~/^\s*Signature\s+Algorithm:\s*(.*)$/mi) { $subject{'sigalgorithm'}=$1;}
if ($subject{'L'} && ($subject{'ST'} || $subject{'C'})) {$subject{'L'}.=',';} #Append commas
if ($subject{'ST'} && $subject{'C'}) {$subject{'ST'}.=',';} #Append commas
if ($issuer{'L'} && ($issuer{'ST'} || $issuer{'C'})) {$issuer{'L'}.=',';} #Append commas
@@ -100,30 +113,86 @@ sub show_cert_info {
$subject{'modulus'}=~s/$/<\/code><br>/msg;
$subject{'modulus'}=~s/^/<code>/msg;
$subject{'modulus'}=~s/\s+//msg;
$rv .= "<table width=100%>\n";
$rv .= "<tr><td width=50%><b>$text{'certmgrlib_subject'}</b></td><td width=50%><b>$text{'certmgrlib_issuer'}</b></td></tr>\n";
$rv .= "<tr><td>$subject{'CN'}</td><td>$issuer{'CN'}</td></tr>\n";
$rv .= "<tr><td>$subject{'O'}</td><td>$issuer{'O'}</td></tr>\n";
$rv .= "<tr><td>$subject{'OU'}</td><td>$issuer{'OU'}</td></tr>\n";
$rv .= "<tr><td>$subject{'L'} $subject{'ST'} $subject{'C'}</td><td>$issuer{'L'} $issuer{'ST'} $issuer{'C'}</td></tr>\n";
$rv .= "<tr><td>$subject{'emailAddress'}</td><td>$issuer{'emailAddress'}</td></tr>\n";
push(@gr, '<span style="font-weight:bold;">'.$text{'certmgrlib_subject'}.'</span>');
push(@gr, '');
push(@gr, $text{'view_cn'});
push(@gr, $subject{'CN'});
if ($subject{'O'}) {
push(@gr, $text{'view_o'});
push(@gr, $subject{'O'});
}
if ($subject{'OU'}){
push(@gr, $text{'view_ou'});
push(@gr, $subject{'OU'});
}
if ($subject{'L'} || $subject{'ST'} || $subject{'C'}) {
push(@gr, $text{'view_location'});
push(@gr, $subject{'L'}.$subject{'ST'}.$subject{'C'});
}
if ($subject{'emailAddress'}){
push(@gr, $text{'view_email'});
push(@gr, $subject{'emailAddress'});
}
if ($v3ext{'san'}){
push(@gr, "subjectAltName");
push(@gr, $v3ext{'san'});
}
if ($subject{'issued'}){
$rv .= "<tr><td colspan=2>$text{'issued_on'} $subject{'issued'}</td></tr>\n";
$rv .= "<tr><td colspan=2>$text{'expires_on'} $subject{'expires'}</td></tr>\n";
}
if ($full){
$rv .= "<tr><td>$text{'keysize'}</td><td>$subject{'keysize'}</td></tr>\n";
$rv .= "<tr><td>$text{'keytype'}</td><td>$subject{'keytype'}</td></tr>\n";
}
if ($full){
$rv .= "<tr><td>$text{'publicExponent'}</td><td>$subject{'exponent'}</td></tr>\n";
$rv .= "<tr><td colspan=2>$text{'modulus'}:<br>$subject{'modulus'}</td></tr>\n";
push(@gr, $text{'issued_on'});
push(@gr, $subject{'issued'});
push(@gr, $text{'expires_on'});
push(@gr, $subject{'expires'});
}
if ($subject{'md5fingerprint'}){
$rv .= "<tr><td colspan=2>$text{'md5fingerprint'}:<br>$subject{'md5fingerprint'}</td></tr>\n";
push(@gr, $text{'md5fingerprint'});
push(@gr, $subject{'md5fingerprint'});
}
$rv .= "</table>\n";
return $rv;
if ($subject{'sha1fingerprint'}){
push(@gr, $text{'sha1fingerprint'});
push(@gr, $subject{'sha1fingerprint'});
}
if ($subject{'sha256fingerprint'}){
push(@gr, $text{'sha256fingerprint'});
push(@gr, $subject{'sha256fingerprint'});
}
if ($full) {
if ($subject{'serial'}) {
push(@gr, $text{'view_serial'});
push(@gr, $subject{'serial'});
}
if ($subject{'sigalgorithm'}) {
push(@gr, $text{'view_sig_algorithm'});
push(@gr, $subject{'sigalgorithm'});
}
push(@gr, $text{'keysize'});
push(@gr, $subject{'keysize'});
push(@gr, $text{'keytype'});
push(@gr, $subject{'keytype'});
push(@gr, $text{'publicExponent'});
push(@gr, $subject{'exponent'});
push(@gr, $text{'modulus'});
push(@gr, $subject{'modulus'});
}
if (!$isreq) {
push(@gr, '<br /><span style="font-weight:bold;">'.$text{'certmgrlib_issuer'}.'</span>');
push(@gr, '');
push(@gr, $text{'view_cn'});
push(@gr, $issuer{'CN'});
if ($issuer{'O'}) {
push(@gr, $text{'view_o'});
push(@gr, $issuer{'O'});
}
if ($issuer{'OU'}){
push(@gr, $text{'view_ou'});
push(@gr, $issuer{'OU'});
}
if ($issuer{'L'} || $issuer{'ST'} || $issuer{'C'}) {
push(@gr, $text{'view_location'});
push(@gr, $issuer{'L'}.$issuer{'ST'}.$issuer{'C'});
}
}
return &ui_grid_table(\@gr, 2, undef, ['style="padding:0;"', 'style="padding:0 0 0.5% 3%;width:75%;"']);
}
sub show_key_info {
@@ -155,6 +224,79 @@ sub show_key_info {
return $rv;
}
sub show_crl_info {
my $full=$_[0];
my $crldata=$_[1];
my %issuer;
my %v3ext;
my ($ndx, $pos);
my $isreq=0;
my @gr;
my @fields=('CN','O','OU','L','ST','C');
my $field;
foreach $field (@fields){
if ($crldata=~/^\s*Issuer:.*?\/$field=(.*?)(, [A-Z]{1,2}|\/\w+=|$)/m) { $issuer{$field}=$1; }
}
if ($crldata=~/^\s*Signature\s+Algorithm:\s*(.*)$/mi) { $issuer{'sigalgorithm'}=$1;}
if ($crldata=~/^\s*Last\s+Update:\s*(.*?)\s*?$/m) { $v3ext{'lastupdate'}=$1; }
if ($crldata=~/^\s*Next\s+Update:\s*(.*?)\s*?$/m) { $v3ext{'nextupdate'}=$1; }
if ($crldata=~/^\s*X509v3 CRL Number:\s*(.*?)\s*?$/m) { $v3ext{'crlnum'}=$1; }
if ($issuer{'L'} && ($issuer{'ST'} || $issuer{'C'})) {$issuer{'L'}.=',';} #Append commas
if ($issuer{'ST'} && $issuer{'C'}) {$issuer{'ST'}.=',';} #Append commas
push(@gr, '<span style="font-weight:bold;">'.$text{'crl'}.'</span>');
push(@gr, '');
push(@gr, $text{'view_cn'});
push(@gr, $issuer{'CN'});
if ($issuer{'O'}) {
push(@gr, $text{'view_o'});
push(@gr, $issuer{'O'});
}
if ($issuer{'OU'}){
push(@gr, $text{'view_ou'});
push(@gr, $issuer{'OU'});
}
if ($issuer{'L'} || $issuer{'ST'} || $issuer{'C'}) {
push(@gr, $text{'view_location'});
push(@gr, $issuer{'L'}.$issuer{'ST'}.$issuer{'C'});
}
if ($issuer{'sigalgorithm'}) {
push(@gr, $text{'view_sig_algorithm'});
push(@gr, $issuer{'sigalgorithm'});
}
if ($v3ext{'lastupdate'}) {
push(@gr, $text{'view_last_update'});
push(@gr, $v3ext{'lastupdate'});
}
if ($v3ext{'nextupdate'}) {
push(@gr, $text{'view_next_update'});
push(@gr, $v3ext{'nextupdate'});
}
if ($v3ext{'crlnum'}) {
push(@gr, $text{'view_crl_number'});
push(@gr, $v3ext{'crlnum'});
}
if ($full) {
push(@gr, "$text{'view_revoked_certs'}:");
push(@gr, "");
$ndx = index($crldata, "Serial Number:");
while ($ndx gt 0) {
$crldata = substr($crldata, $ndx);
$crldata=~/^\s*Serial Number:\s*(.*)$/mi;
push(@gr, "<span style=\"padding-left:10%;\">$text{'view_serial'}</span>");
push(@gr, $1);
$crldata=~/^\s*Revocation Date:\s*(.*)$/mi;
push(@gr, "<span style=\"padding-left:10%;\">$text{'view_revoke_date'}</span>");
push(@gr, $1);
$crldata=~/^\s*X509v3 CRL Reason Code:\s*(.*)$/mi;
push(@gr, "<span style=\"padding-left:10%;\">$text{'view_revoke_reason'}</span>");
push(@gr, $1);
$ndx = index($crldata, "Serial Number:", $ndx + 1);
}
}
return &ui_grid_table(\@gr, 2, undef, ['style="padding:0;"', 'style="padding:0 0 0.5% 3%;width:65%;"']);
}
sub pem_or_der{
my $filename=$_[0];
my $filetype=$_[1];

View File

@@ -103,12 +103,15 @@ prime1=Primzahl 1
prime2=Primzahl 2
privateExponent=Privater Exponent
publicExponent=&#214;ffentlicher Exponent
sha1fingerprint=SHA-1 Fingerprint
sha256fingerprint=SHA-256 Fingerprint
signcsr_ca_passphrase=CA Passphrase
signcsr_csrfile=CSR Dateiname
signcsr_days=Anzahl der Tage der Zertifizierung f&#252;r
signcsr_desc=Auf dieser Seite k&#246;nnen Sie eine signiertes CSR von jemand anderem mit einem eigenen privaten Schl&#252;ssel signieren.
signcsr_e_nocsrfile=Keinen CSR Dateinamen eingegeben
signcsr_e_nokeyfile=Kein CA privater Schl&#252;ssel oder Zertifikats-Datei eingegeben
signcsr_e_nopassword=Es wurde kein CA-Kennwort eingegeben
signcsr_e_nosignfile=Kein signiertes Zertifikats-Dateiname eingegeben
signcsr_e_signfailed=Fehler, signiertes Zertifikat nicht generiert
signcsr_generate=Signiere Zertifikat
@@ -121,13 +124,26 @@ signcsr_title=Signiere Certificate Signing Request
signcsr_worked=Signiere Zertifikat generiert
st=Staat oder Provinz (vollst&#228;ndiger Name)
view_choose=W&#228;hle
view_cn=Common Name
view_crl_number=CRL Nummer
view_delete=L&#246;sche
view_deleted=Datei erfolgreich gel&#246;scht
view_download=Download
view_e_nofile=Datei nicht gefunden oder ist keine normale Datei
view_e_not_deleted=Fehler: Problem beim L&#246;schen der Datei
view_email=E-Mail-Adresse
view_last_update=Letztes Update
view_location=Lokalit&#228;t
view_next_update=Weiter Update
view_o=Organisationsname
view_ou=Organisationseinheit Name
view_pkcs12=Als PKCS12, mit Passwort:
view_revoke_date=Widerrufsdatum
view_revoke_reason=Widerrufsgrund
view_revoked_certs=Widerrufsbescheinigungen
view_select=Bitte w&#228;hle eine Datei zum Anzeigen
view_serial=Ordnungsnummer
view_sig_algorithm=Signaturalgorithmus
view_title=Zeige Zertifikat/CSR/Schl&#252;ssel
view_update=Aktualisieren
view_view=Zeige

16
certmgr/lang/en Executable file → Normal file
View File

@@ -20,6 +20,8 @@ keytype=Key Type
issued_on=Issued on
expires_on=Expires on
md5fingerprint=MD5 Fingerprint
sha1fingerprint=SHA-1 Fingerprint
sha256fingerprint=SHA-256 Fingerprint
modulus=Modulus (from public key)
publicExponent=Public Exponent
@@ -102,6 +104,19 @@ view_deleted=File deleted sucessfully
view_e_not_deleted=Error: Problem deleting file
view_e_nofile=File not found or not a regular file
view_wildcard=File Wildcard
view_cn=Common Name
view_o=Organization
view_ou=Organization Unit
view_email=Email Address
view_location=Location
view_serial=Serial Number
view_sig_algorithm=Signature Algorithm
view_last_update=Last Update
view_next_update=Next Update
view_revoked_certs=Revoked Certificates
view_revoke_date=Revocation Date
view_revoke_reason=Revocation Reason
view_crl_number=CRL Number
import_title=Import Key or Signed Certificate
import_e_nodir=No directory selected
@@ -135,6 +150,7 @@ signcsr_generate=Sign Certificate
signcsr_e_nocsrfile=No CSR filename entered
signcsr_e_nosignfile=No signed certificate filename entered
signcsr_e_nokeyfile=No CA private key file or certificate file entered
signcsr_e_nopassword=No CA private key password entered
signcsr_e_signfailed=Error, signed certificate not generated
signcsr_worked=Signed certificate generated
signcsr_saved_cert=The certificate was saved as

39
certmgr/lang/es Executable file → Normal file
View File

@@ -20,6 +20,8 @@ keytype=Tipo de llave
issued_on=Fecha de certificación
expires_on=Fecha de vencimiento
md5fingerprint=Huella dactilar MD5
sha1fingerprint=Huella dactilar SHA-1
sha256fingerprint=Huella dactilar SHA-256
modulus=Modulus (del llave publico)
publicExponent=Exponente Publico
@@ -86,17 +88,30 @@ manage_decrypt=Decrypt Private Key
manage_changepw=Change Password of Private Key
manage_delete=Delete Certificate
view_title=View Certificate/CSR/Key
view_view=View
view_update=Update
view_download=Download
view_delete=Delete
view_select=Please select a file to view
view_choose=Choose
view_deleted=File deleted sucessfully
view_e_not_deleted=Error: Problem deleting file
view_e_nofile=File not found or not a regular file
view_wildcard=File Wildcard
view_title=Ver el Certificado/CSR/Key
view_view=Ver
view_update=Actualizar
view_download=Descargar
view_delete=Borrar
view_select=Por favor seleccione un archivo para ver
view_choose=Escoger
view_deleted=Archivo eliminado correctamente
view_e_not_deleted=Error: Problema al eliminar el archivo
view_e_nofile=Archivo no encontrado o no es un archivo regular
view_wildcard=Archivo comod&#237;n
view_cn=Nombre Com&#250;n
view_o=Organizaci&#243;n
view_ou=Unidad de Organizaci&#243;n
view_email=Direcci&#243;n de email
view_location=Locaci&#243;n
view_serial=número de serie
view_sig_algorithm=Algoritmo de firma
view_last_update=&#250;ltima actualizaci&#243;n
view_next_update=Siguiente actualizaci&#243;n
view_revoked_certs=Certificados revocados
view_revoke_date=Fecha de revocaci&#243;n
view_revoke_reason=Raz&#243;n de revocaci&#243;n
view_crl_number=N&#250;mero CRL
import_title=Import Key or Signed Certificate
import_e_nodir=No directory selected
@@ -114,3 +129,5 @@ import_upload_cert=Upload Certificate
import_key_file=Key file to upload
import_key_destination=Destination directory of key
import_upload_key=Upload Key
signcsr_e_nopassword=No CA private key password entered

View File

@@ -4,3 +4,4 @@ desc=PKI Certificate and Key Management
name=certmgr
version=1.8
desc_de=PKI-Zertifikat und Schl&#252;ssel-Management
desc_no=PKI Sertifikater og n&#248;kler

36
certmgr/signcsr.cgi Executable file → Normal file
View File

@@ -15,7 +15,10 @@ if ($in{'submitted'} eq "sign") {
if (!$in{'signfile'}) {
$error.=$text{'signcsr_e_nosignfile'}."<br>\n";
}
if (!$in{'keyfile'} || !$in{'keycertfile'}) {
if (!$in{'cakeyfile'}) {
$error.=$text{'signcsr_e_nokeyfile'}."<br>\n";
}
if (!$in{'cacertfile'}) {
$error.=$text{'signcsr_e_nokeyfile'}."<br>\n";
}
if (!$error) {
@@ -27,8 +30,8 @@ if ($in{'submitted'} eq "sign") {
$config{'incsr_filename'}; }
if (!$in{'signfile'}) { $in{'signfile'}=$config{'ssl_cert_dir'}."/".
$config{'sign_filename'}; }
if (!$in{'keyfile'}) { $in{'keyfile'}=$config{'cakey_path'}; }
if (!$in{'keycertfile'}) { $in{'keycertfile'}=$config{'cacert_path'};}
if (!$in{'cacertfile'}) { $in{'cacertfile'}=$config{'cacert_path'}; }
if (!$in{'cakeyfile'}) { $in{'cakeyfile'}=$config{'cakey_path'}; }
if (!$in{'days'}) { $in{'days'}=$config{'default_days'}; }
}
@@ -45,10 +48,12 @@ print &ui_hr();
sub process{
&foreign_require("webmin", "webmin-lib.pl");
local %miniserv;
local ($tempdir, $des, $out, $url);
local $error=0;
&get_miniserv_config(\%miniserv);
if (!$miniserv{'ca'}) {
&webmin::setup_ca();
}
}
if ((-e $in{'signfile'})&&($in{'overwrite'} ne "yes")) {
&overwriteprompt();
print &ui_hr();
@@ -57,11 +62,19 @@ sub process{
}
$tempdir = &tempname();
mkdir($tempdir, 0700);
if ($in{'password'}){ $des="-passin pass:".quotemeta($in{'password'}); }
$out = `yes | $config{'openssl_cmd'} ca -in $in{'csrfile'} -out $in{'signfile'} -cert $in{'keycertfile'} -keyfile $in{'keyfile'} -outdir $tempdir -days $in{'days'} -config $config_directory/acl/openssl.cnf $des 2>&1`;
if (keyfile_is_encrypted($in{'cakeyfile'})) {
if ($in{'password'}) { $des="-passin pass:".quotemeta($in{'password'}); }
else {
print "<b>$text{'signcsr_e_signfailed'}</b>\n<pre>$text{'signcsr_e_nopassword'}</pre>\n";
print &ui_hr();
&footer("", $text{'index_return'});
exit;
}
}
$out = `yes | $config{'openssl_cmd'} ca -in $in{'csrfile'} -out $in{'signfile'} -cert $in{'cacertfile'} -keyfile $in{'cakeyfile'} -outdir $tempdir -days $in{'days'} -config $config{'ssl_cnf_file'} $des 2>&1`;
system("rm -rf $tempdir");
if (!-e $in{'csrfile'}) {
if ($out =~ /^ERROR(.*$)/mi || $out =~ /:error:/mi) {
$error=$out;
} else{
$error=0;
@@ -109,3 +122,12 @@ sub overwriteprompt{
print &ui_table_end();
}
sub keyfile_is_encrypted{
my $key=$_[0];
my $encrypted=0;
open(KFILE,$key)||return(0);
while(<KFILE>){ if (/^Proc.*ENCRYPTED.*$/mi) { $encrypted=1; last; } }
close(KFILE);
return($encrypted);
}

36
certmgr/view.cgi Executable file → Normal file
View File

@@ -38,12 +38,15 @@ if (($in{'filename'}) && ($in{'view'} eq $text{'view_view'})) {
}
while(<FILE>){ $buffer.=$_;}
if ($buffer=~/^\s*-+BEGIN\s*RSA\s*PRIVATE\s*KEY-*\s*$/mi) { $key=1; }
if ($buffer=~/^\s*-+BEGIN\s*PRIVATE\s*KEY-*\s*$/mi) { $key=1; }
if ($buffer=~/^\s*-+BEGIN\s*CERTIFICATE-*\s*$/mi) { $cert=1; }
if ($buffer=~/^\s*-+BEGIN\s*CERTIFICATE\s*REQUEST-*\s*$/mi) { $csr=1; }
if ($buffer=~/^\s*-+BEGIN\s*X509\s*CRL-*\s*$/mi) { $crl=1; }
if (($key)&&($cert)) {$in{'keycertfile'}=$in{'filename'};}
elsif ($key) {$in{'keyfile'}=$in{'filename'};}
elsif ($cert) {$in{'certfile'}=$in{'filename'};}
elsif ($csr) {$in{'csrfile'}=$in{'filename'};}
elsif ($crl) {$in{'crlfile'}=$in{'filename'};}
else {
print "$text{'e_file'}<br>\n$text{'e_notcert'}\n<p>\n";
&footer("", $text{'index_return'});
@@ -135,6 +138,25 @@ if ($in{'keycertfile'}) {
exit;
}
if ($in{'crlfile'}) {
if ($in{'dl'} eq 'yes') {
# Just output in PEM format
&output_cert($in{'crlfile'});
}
open(OPENSSL,"$config{'openssl_cmd'} crl -in $in{'crlfile'} -text -noout|");
while(<OPENSSL>){ $buffer.=$_; }
close(OPENSSL);
print &ui_table_start($in{'crlfile'}, "width=60%", 2);
print &ui_table_row(undef, (!$buffer ? $text{'e_file'} : show_crl_info(1,$buffer) ) );
print &ui_table_end()."<br>";
&download_form("crlfile", $in{'crlfile'}, "CRL");
print &ui_hr();
&footer("", $text{'index_return'});
exit;
}
print &ui_form_start("view.cgi", "post");
print &ui_table_start($text{'view_select'}, undef, 2);
print &ui_table_row($text{'view_wildcard'}.": ".&ui_textbox("wildcard", $in{'wildcard'}), &ui_submit($text{'view_update'},"update"), undef, $valign_middle);
@@ -194,12 +216,14 @@ $rv1 .= &ui_hidden($mode, $keyfile);
$rv1 .= &ui_submit("$text{'view_download'} $suffix");
$rv1 .= "</form>";
$rv2 = "<form id='view_p12filename' action='view.cgi/$p12filename' method=post>";
$rv2 .= &ui_hidden("pkcs12", "yes");
$rv2 .= &ui_hidden($mode, $keyfile);
$rv2 .= &ui_submit("$text{'view_download'} $suffix $text{'view_pkcs12'}");
$rv2 .= &ui_password("pass","",20);
$rv2 .= "</form>";
if ($mode ne "crlfile") {
$rv2 = "<form id='view_p12filename' action='view.cgi/$p12filename' method=post>";
$rv2 .= &ui_hidden("pkcs12", "yes");
$rv2 .= &ui_hidden($mode, $keyfile);
$rv2 .= &ui_submit("$text{'view_download'} $suffix $text{'view_pkcs12'}");
$rv2 .= &ui_password("pass","",20);
$rv2 .= "</form>";
}
$rv3 = "<form id='view' action='view.cgi' method=post>";
$rv3 .= &ui_hidden("delete", "yes");

View File

@@ -23,8 +23,8 @@ print &ui_table_start(undef, undef, 2);
if ($access{'lang'}) {
# Show personal language
my @langs = &list_languages();
my $glang = $gconfig{"lang"} || $default_lang;
my @langs = &list_languages($user->{'lang'} || $glang);
my ($linfo) = grep { $_->{'lang'} eq $glang } @langs;
print &ui_table_row($text{'index_lang'},
&ui_radio("lang_def", $user->{'lang'} ? 0 : 1,

View File

@@ -1,2 +1,9 @@
sort_mode=0
table_mode=0
conf_add_user=1
conf_add_group=1
conf_find_user=1
conf_find_group=1
conf_allow_refresh=1
conf_allow_sync=1
conf_host_links=1

View File

@@ -1,2 +1,11 @@
line1=Display Options,11
sort_mode=Sort hosts by,1,1-Hostname,0-Order added,2-Description
table_mode=Show hosts as,1,1-Table,0-Icons
conf_host_links=Provide a link to modify host,1,1-Yes,0-No
line2=Users and Groups Options,11
conf_add_user=Allow user add,1,1-Yes,0-No
conf_add_group=Allow group add,1,1-Yes,0-No
conf_find_user=Allow user database searching,1,1-Yes,0-No
conf_find_group=Allow group database searching,1,1-Yes,0-No
conf_allow_refresh=Allow refresh of user and group lists,1,1-Yes,0-No
conf_allow_sync=Allow server synchronization,1,1-Yes,0-No

View File

@@ -1,2 +1,11 @@
line1=Opcions de Mostra,11
sort_mode=Ordena els hosts per,1,1-Nom de host,0-Ordre d'addició,2-Descripció
table_mode=Mostra els hosts com a,1,1-Taula,0-Icones
conf_host_links=Proporciona un enllaç per modificar el host,1,1-Sí,0-No
line2=Opcions d'Usuaris i Grups,11
conf_add_user=Permet afegir usuaris,1,1-Sí,0-No
conf_add_group=Permet afegir grups,1,1-Sí,0-No
conf_find_user=Permet cercar a la base de dades d'usuaris,1,1-Sí,0-No
conf_find_group=Permet cercar a la base de dades de grups,1,1-Sí,0-No
conf_allow_refresh=Permet refrescar les llistes d'usuaris i grups,1,1-Sí,0-No
conf_allow_sync=Permet la sincronització del servidor,1,1-Sí,0-No

View File

@@ -1,2 +1,11 @@
line1=Display Optionen,11
sort_mode=Sortiere Hosts nach,1,1-Hostname,0-wie hinzugef&#252;gt,2-Beschreibung
table_mode=Zeige Hosts als,1,1-Tabelle,0-Symbol
conf_host_links=Geben einen Link an, um Host zu &#228;ndern,1,1-Ja, 0-Nein
line2=Benutzer- und Gruppenoptionen,11
conf_add_user=Erlaube Benutzer hinzuf&#252;gen,1,1-Ja, 0-Nein
conf_add_group=Erlaube Gruppen hinzuf&#252;gen,1,1-Ja, 0-Nein
conf_find_user=Erlaube Benutzerdatenbanksuche,1,1-Ja, 0-Nein
conf_find_group=Erlaube Gruppendatenbanksuche,1,1-Ja, 0-Nein
conf_allow_refresh=Erlaube das Aktualisieren von Benutzer- und Gruppenlisten,1,1-Ja, 0-Nein
conf_allow_sync=Erlaube Server-Synchronisation,1,1-Ja, 0-Nein

View File

@@ -93,7 +93,9 @@ foreach $h (@hosts) {
local ($og) = grep { $_->{'group'} eq $in{'group'} } @{$h->{'groups'}};
if ($og) {
local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
push(@icons, "/servers/images/$s->{'type'}.gif");
push(@icons, $gconfig{'webprefix'} ?
($gconfig{'webprefix'}."/servers/images/".$s->{'type'}.".gif") :
("../servers/images/".$s->{'type'}.".gif"));
push(@links, "edit_host.cgi?id=$h->{'id'}");
push(@titles, $s->{'desc'} ? $s->{'desc'} : $s->{'host'});
}
@@ -116,7 +118,31 @@ print "</form></table><p>\n";
print &ui_hr();
print &ui_subheading($text{'uedit_hosts'});
&icons_table(\@links, \@titles, \@icons);
if ($config{'table_mode'}) {
# Show as table
print &ui_columns_start([ $text{'index_thost'},
$text{'index_tdesc'},
$text{'index_ttype'} ]);
foreach $h (@hosts) {
local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
next if (!$s);
local ($type) = grep { $_->[0] eq $s->{'type'} }
@servers::server_types;
local ($link) = $config{'conf_host_links'} ?
&ui_link("edit_host.cgi?id=$h->{'id'}",($s->{'host'} || &get_system_hostname())) :
($s->{'host'} || &get_system_hostname());
print &ui_columns_row([
$link,
$s->{'desc'},
$type->[1],
]);
}
print &ui_columns_end();
}
else {
# Show as icons
&icons_table(\@links, \@titles, \@icons);
}
&ui_print_footer("", $text{'index_return'});

View File

@@ -18,8 +18,13 @@ print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td><b>$text{'host_name'}</b></td>\n";
if ($server->{'id'}) {
printf &ui_link("/servers/link.cgi/%s/","%s")."</td>\n",
$server->{'id'}, $server->{'desc'} ? "$server->{'desc'} ($server->{'host'}:$server->{'port'})" : "$server->{'host'}:$server->{'port'}";
print "<td>";
printf &ui_link("/servers/link.cgi/%s/","%s"),
$server->{'id'},
$server->{'desc'} ?
"$server->{'desc'} ($server->{'host'}:$server->{'port'})" :
"$server->{'host'}:$server->{'port'}";
print "</td>";
}
else {
print "<td><a href=/>$text{'this_server'}</a></td>\n";

View File

@@ -408,7 +408,9 @@ foreach $h (@hosts) {
local ($ou) = grep { $_->{'user'} eq $in{'user'} } @{$h->{'users'}};
if ($ou) {
local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
push(@icons, "/servers/images/$s->{'type'}.gif");
push(@icons, $gconfig{'webprefix'} ?
($gconfig{'webprefix'}."/servers/images/".$s->{'type'}.".gif") :
("../servers/images/".$s->{'type'}.".gif"));
push(@links, "edit_host.cgi?id=$h->{'id'}");
push(@titles, $s->{'desc'} ? $s->{'desc'} : $s->{'host'});
}
@@ -435,7 +437,31 @@ print "</form></table><p>\n";
print &ui_hr();
print &ui_subheading($text{'uedit_hosts'});
&icons_table(\@links, \@titles, \@icons);
if ($config{'table_mode'}) {
# Show as table
print &ui_columns_start([ $text{'index_thost'},
$text{'index_tdesc'},
$text{'index_ttype'} ]);
foreach $h (@hosts) {
local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
next if (!$s);
local ($type) = grep { $_->[0] eq $s->{'type'} }
@servers::server_types;
local ($link) = $config{'conf_host_links'} ?
&ui_link("edit_host.cgi?id=$h->{'id'}",($s->{'host'} || &get_system_hostname())) :
($s->{'host'} || &get_system_hostname());
print &ui_columns_row([
$link,
$s->{'desc'},
$type->[1],
]);
}
print &ui_columns_end();
}
else {
# Show as icons
&icons_table(\@links, \@titles, \@icons);
}
&ui_print_footer("", $text{'index_return'});

View File

@@ -23,10 +23,13 @@ $formno = 0;
foreach $h (@hosts) {
local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
next if (!$s);
local ($link) = $config{'conf_host_links'} ? "edit_host.cgi?id=$h->{'id'}" : "#";
push(@titles, $s->{'desc'} ? $s->{'desc'}
: "$s->{'host'}:$s->{'port'}");
push(@links, "edit_host.cgi?id=$h->{'id'}");
push(@icons, "$gconfig{'webprefix'}/servers/images/$s->{'type'}.gif");
push(@links, $link);
push(@icons, $gconfig{'webprefix'} ?
($gconfig{'webprefix'}."/servers/images/".$s->{'type'}.".gif") :
("../servers/images/".$s->{'type'}.".gif"));
push(@installed, @{$h->{'packages'}});
$gothost{$h->{'id'}}++;
}
@@ -43,8 +46,11 @@ if (@links) {
next if (!$s);
local ($type) = grep { $_->[0] eq $s->{'type'} }
@servers::server_types;
local ($link) = $config{'conf_host_links'} ?
&ui_link("edit_host.cgi?id=$h->{'id'}",($s->{'host'} || &get_system_hostname())) :
($s->{'host'} || &get_system_hostname());
print &ui_columns_row([
&ui_link("edit_host.cgi?id=$h->{'id'}",($s->{'host'} || &get_system_hostname())),
$link,
$s->{'desc'},
scalar(@{$h->{'users'}}),
scalar(@{$h->{'groups'}}),
@@ -86,63 +92,142 @@ if (@groups) {
}
print "</tr></table></form>\n";
if ($config{'conf_add_user'} == 0 &&
$config{'conf_add_group'} == 0 &&
$config{'conf_allow_refresh'} == 0 &&
$config{'conf_allow_sync'} == 0 &&
$config{'conf_find_user'} == 0 &&
$config{'conf_find_group'} == 0) {
# If we have configured EVERY possible 'host' action off, then dont show
# the header/horizontal-rule/etc...
@hosts = ();
}
if (@hosts) {
# Display search and add forms
print &ui_hr();
print &ui_subheading($text{'index_users'});
print "<table width=100%><tr>\n";
print "<form action=search_user.cgi><td>\n";
print "<b>$text{'index_finduser'}</b> <select name=field>\n";
print "<option value=user checked>$text{'user'}</option>\n";
print "<option value=real>$text{'real'}</option>\n";
print "<option value=shell>$text{'shell'}</option>\n";
print "<option value=home>$text{'home'}</option>\n";
print "<option value=uid>$text{'uid'}</option>\n";
print "</select> <select name=match>\n";
print "<option value=0 checked>$text{'index_equals'}</option>\n";
print "<option value=4>$text{'index_contains'}</option>\n";
print "<option value=1>$text{'index_matches'}</option>\n";
print "<option value=5>$text{'index_ncontains'}</option>\n";
print "<option value=3>$text{'index_nmatches'}</option>\n";
print "</select> <input name=what size=15>&nbsp;&nbsp;\n";
print "<input type=submit value=\"$text{'find'}\"></td></form>\n";
print "<form action=user_form.cgi><td align=right>\n";
print "<input type=hidden name=new value=1>\n";
print "<input type=submit value='$text{'index_newuser'}'>\n";
print "</td></form></tr>\n";
print "<tr><form action=search_group.cgi><td>\n";
print "<b>$text{'index_findgroup'}</b> <select name=field>\n";
print "<option value=group checked>$text{'gedit_group'}</option>\n";
print "<option value=members>$text{'gedit_members'}</option>\n";
print "<option value=gid>$text{'gedit_gid'}</option>\n";
print "</select> <select name=match>\n";
print "<option value=0 checked>$text{'index_equals'}</option>\n";
print "<option value=4>$text{'index_contains'}</option>\n";
print "<option value=1>$text{'index_matches'}</option>\n";
print "<option value=5>$text{'index_ncontains'}</option>\n";
print "<option value=3>$text{'index_nmatches'}</option>\n";
print "</select> <input name=what size=15>&nbsp;&nbsp;\n";
print "<input type=submit value=\"$text{'find'}\"></td></form>\n";
print "<form action=group_form.cgi><td align=right>\n";
print "<input type=hidden name=new value=1>\n";
print "<input type=submit value='$text{'index_newgroup'}'>\n";
print "</td></form></tr>\n";
print "<tr><form action=refresh.cgi>\n";
print "<td><input type=submit value='$text{'index_refresh'}'>\n";
&create_on_input(undef, 1);
print "</td>\n";
print "</form>\n";
print "<form action=sync_form.cgi>\n";
print "<td align=right><input type=submit ",
"value='$text{'index_sync'}'></td>\n";
print "</form></tr> </table>\n";
print "<table width=100%>";
if ($config{'conf_find_user'} == 1 ||
$config{'conf_add_user'} == 1) {
print "<tr>\n";
}
if ($config{'conf_find_user'} == 1) {
print "<td>\n";
print "<form action=search_user.cgi>\n";
print "<b>$text{'index_finduser'}</b> <select name=field>\n";
print "<option value=user checked>$text{'user'}</option>\n";
print "<option value=real>$text{'real'}</option>\n";
print "<option value=shell>$text{'shell'}</option>\n";
print "<option value=home>$text{'home'}</option>\n";
print "<option value=uid>$text{'uid'}</option>\n";
print "</select> <select name=match>\n";
print "<option value=0 checked>$text{'index_equals'}";
print "</option>\n";
print "<option value=4>$text{'index_contains'}</option>\n";
print "<option value=1>$text{'index_matches'}</option>\n";
print "<option value=5>$text{'index_ncontains'}</option>\n";
print "<option value=3>$text{'index_nmatches'}</option>\n";
print "</select> <input name=what size=15>&nbsp;&nbsp;\n";
print "<input type=submit value=\"$text{'find'}\"></form>\n";
print "</td>\n";
}
&ui_print_footer("/", $text{'index'});
if ($config{'conf_add_user'} == 1 &&
$config{'conf_find_user'} == 1) {
print "<td align=right>\n";
}
elsif ($config{'conf_add_user'} == 1) {
print "<td>\n";
}
if ($config{'conf_add_user'} == 1) {
print "<form action=user_form.cgi>\n";
print "<input type=hidden name=new value=1>\n";
print "<input type=submit value='$text{'index_newuser'}'>\n";
print "</form>\n";
print "</td>\n";
}
if ($config{'conf_find_user'} == 1 ||
$config{'conf_add_user'} == 1) {
print "</tr>\n";
}
if ($config{'conf_find_group'} == 1 ||
$config{'conf_add_group'} == 1) {
print "<tr>\n";
}
if ($config{'conf_find_group'} == 1) {
print "<td>\n";
print "<form action=search_group.cgi>";
print "<b>$text{'index_findgroup'}</b> <select name=field>\n";
print "<option value=group checked>$text{'gedit_group'}";
print "</option>\n";
print "<option value=members>$text{'gedit_members'}";
print "</option>\n";
print "<option value=gid>$text{'gedit_gid'}</option>\n";
print "</select> <select name=match>\n";
print "<option value=0 checked>$text{'index_equals'}";
print "</option>\n";
print "<option value=4>$text{'index_contains'}</option>\n";
print "<option value=1>$text{'index_matches'}</option>\n";
print "<option value=5>$text{'index_ncontains'}</option>\n";
print "<option value=3>$text{'index_nmatches'}</option>\n";
print "</select> <input name=what size=15>&nbsp;&nbsp;\n";
print "<input type=submit value=\"$text{'find'}\">";
print "</form>\n";
print "</td>";
}
if ($config{'conf_add_group'} == 1 &&
$config{'conf_find_group'} == 1) {
print "<td align=right>\n";
}
elsif ($config{'conf_add_group'} == 1) {
print "<td>\n";
}
if ($config{'conf_add_group'} == 1) {
print "<form action=group_form.cgi>\n";
print "<input type=hidden name=new value=1>\n";
print "<input type=submit value='$text{'index_newgroup'}'>\n";
print "</form></td>\n";
}
if ($config{'conf_find_group'} == 1 ||
$config{'conf_add_group'} == 1) {
print "</tr>\n";
}
if ($config{'conf_allow_refresh'} == 1 ||
$config{'conf_allow_sync'} == 1) {
print "<tr>\n";
}
if ($config{'conf_allow_refresh'} == 1) {
print "<td>\n";
print "<form action=refresh.cgi>\n";
print "<input type=submit value='$text{'index_refresh'}'>\n";
&create_on_input(undef, 1);
print "</form>\n";
print "</td>\n";
}
if ($config{'conf_allow_refresh'} == 1 &&
$config{'conf_allow_sync'} == 1) {
print "<td align=right>";
}
else {
print "<td>";
}
if ($config{'conf_allow_sync'} == 1) {
print "<form action=sync_form.cgi>\n";
print "<input type=submit value='$text{'index_sync'}'>\n";
print "</form>\n";
print "</td>\n";
}
if ($config{'conf_allow_refresh'} == 1 ||
$config{'conf_allow_sync'} == 1) {
print "</tr>\n";
}
print "</table>\n";
}
&ui_print_footer("/", $text{'index'});

View File

@@ -338,7 +338,7 @@ foreach $h (@hosts) {
# Can just run RPM command
# XXX doesn't actually check output!
&remote_eval($s->{'host'}, "webmin", "system(\"rpm --import \$root_directory/webmin/jcameron-key.asc >/dev/null 2>&1\")");
($out, $ex) = &remote_eval($s->{'host'}, "webmin", "\$out = `rpm -U --ignoreos --ignorearch '$rfile' >/dev/null 2>&1 </dev/null`; (\$out, \$?)");
($out, $ex) = &remote_eval($s->{'host'}, "webmin", "\$out = `rpm -U --ignoreos --ignorearch --nodeps '$rfile' >/dev/null 2>&1 </dev/null`; (\$out, \$?)");
&remote_eval($s->{'host'}, "webmin", "unlink('$rfile')")
if ($host_need_unlink);
if ($ex) {

View File

@@ -5,9 +5,11 @@
@ARGV >= 2 || die "usage: create-module.pl [--dir name] <file.wbm> <module>[/version] ..";
my $pwd;
chop($pwd = `pwd`);
# Parse command-line options
my @exclude;
while(@ARGV) {
if ($ARGV[0] eq "--dir") {
shift(@ARGV);
@@ -17,17 +19,21 @@ while(@ARGV) {
shift(@ARGV);
$createsig = 1;
}
elsif ($ARGV[0] eq "--exclude") {
shift(@ARGV);
push(@exclude, shift(@ARGV));
}
else {
last;
}
}
$file = shift(@ARGV);
my $file = shift(@ARGV);
if ($file !~ /^\//) {
$file = "$pwd/$file";
}
unlink($file);
foreach $m (@ARGV) {
foreach my $m (@ARGV) {
# Parse module and forced version
$m =~ s/\/$//;
if ($m =~ /^(.*)\/(.*)$/) {
@@ -46,6 +52,9 @@ foreach $m (@ARGV) {
$copydir = "/tmp/create-module/$subdir";
system("rm -rf $copydir");
system("cp -r -L $mod $copydir 2>/dev/null || cp -R -L $mod $copydir");
foreach my $e (@exclude) {
system("find $copydir -name ".quotemeta($e)." | xargs rm -rf");
}
# Find type from .info file
undef(%minfo);

View File

@@ -41,3 +41,5 @@ Added a Module Config option to add new cron jobs to a specific file, like /etc/
Fixed a security hole what could be exploited by passing in an invalid username.
---- Changes since 1.690 ----
Added buttons to move cron jobs to the top and bottom of the list.
---- Changes since 1.830 ----
Added a page for manually editing cron jobs.

View File

@@ -1,26 +1,26 @@
line1=Konfigurierbare Einstellungen,11
max_len=Maximale Kommandozeilenanzahl die angezeigt wird,3,Unbegrenzt
max_jobs=Maximale Anzahl von Cronjobs anzeigen,3,Unbegrenzt
show_time=Zeige Prozess&#45;Zeiten?,1,1-Ja,0-Nein
max_len=Maximale Anzahl der anzuzeigenden Befehlszeilen,3,Unbegrenzt
max_jobs=Maximale Anzahl der anzuzeigenden Cronjobs,3,Unbegrenzt
show_time=Zeige Prozess-Zeiten?,1,1-Ja,0-Nein
show_comment=Job Kommentare anzeigen?,1,1-Ja,0-Nein
show_run=Zeige den Status aller Auftr&#228;ge an?,1,2-Ja&#44; und erlaube Start und Stop der Auftr&#228;ge,1-Ja,0-Nein
show_run=Status aller Auftr&#228;ge anzeigen?,1,2-Ja&#44; und erlaube Start und Stop der Auftr&#228;ge,1-Ja,0-Nein
match_mode=Finde Prozesse durch,1,1-Kommando,0-Kommando und Argumente
match_user=Benutzernamen zus&#228;tzlich ermitteln beim Finden von Prozessen?,1,1-Ja,0-Nein
kill_subs=Alle Unterprozesse zus&#228;tzlich zum Prozess selbst t&#246;ten?,1,1-Ja,0-Nein
match_user=Benutzernamen ermitteln beim Finden von Prozessen?,1,1-Ja,0-Nein
kill_subs=Alle Unterprozesse des Prozesses t&#246;ten?,1,1-Ja,0-Nein
hourly_only=Cronjobs auf 1x pro Stunde begrenzen?,1,0-Nein,1-Ja
add_file=F&#252;gt neue Jobs zu Datei hinzu,3,Regul&#228;re crontab-Datei
line2=Systemkonfiguration,11
cron_dir=Crontab&#45;Verzeichnis,0
cron_get_command=Befehl zum Lesen der Cron&#45;Auftr&#228;ge eines Benutzers,0
cron_edit_command=Befehl zum Bearbeiten der Cron&#45;Auftr&#228;ge eines Benutzers,0
cron_copy_command=Befehl zum Akzeptieren eines Cron&#45;Auftrags eines Benutzers auf stdin,0
cron_delete_command=Befehl zum L&#246;schen eines Cron&#45;Auftrages eines Benutzers,0
cron_input=Cron unterst&#252;tzt Eingaben zu Cron&#45;Auftr&#228;gen,1,1-Ja,0-Nein
cron_dir=Crontab-Verzeichnis,0
cron_get_command=Befehl zum Lesen der Cron-Auftr&#228;ge eines Benutzers,0
cron_edit_command=Befehl zum Bearbeiten der Cron-Auftr&#228;ge eines Benutzers,0
cron_copy_command=Befehl zum Akzeptieren eines Cron-Auftrags eines Benutzers auf stdin,0
cron_delete_command=Befehl zum L&#246;schen eines Cron-Auftrages eines Benutzers,0
cron_input=Cron unterst&#252;tzt Eingaben zu Cron-Auftr&#228;gen,1,1-Ja,0-Nein
cron_allow_file=Datei die erlaubte Benutzer enth&#228;lt,0
cron_deny_file=Datei die abgelehnte Benutzer enth&#228;lt,0
cron_deny_all=Rechte ohne Allow&#45; oder Deny&#45;Dateien,1,0-Verweigere alle,1-Verweigere alle au&#223;er ROOT,2-Erlaube alle
vixie_cron=Unterst&#252;tzt Vixie&#45;Cron&#45;Erweiterungen,1,1-Ja,0-Nein
system_crontab=Pfad zur Vixie&#45;Cron System Crontab&#45;Datei,0
cron_deny_all=Rechte ohne Allow- oder Deny-Dateien,1,0-Verweigere alle,1-Verweigere alle au&#223;er ROOT,2-Erlaube alle
vixie_cron=Unterst&#252;tzt Vixie-Cron-Erweiterungen,1,1-Ja,0-Nein
system_crontab=Pfad zur Vixie-Cron System Crontab-Datei,0
single_file=Pfad zur Single-User-crontab-Datei,0
cronfiles_dir=Pfad zum Verzeichnis mit zus&#228;tzlichen Cron&#45;Dateien,3,Keiner
run_parts=run&#45;parts Befehl,0
cronfiles_dir=Pfad zum Verzeichnis mit zus&#228;tzlichen Cron-Dateien,3,Keiner
run_parts=run-parts Befehl,0

View File

@@ -171,6 +171,7 @@ if ($config{'single_file'}) {
'name' => $2,
'value' => $3,
'user' => "NONE",
'command' => '',
'index' => scalar(@rv) });
}
$lnum++;
@@ -1567,5 +1568,23 @@ foreach my $f (readdir(DIR)) {
closedir(DIR);
}
=head2 list_cron_files()
Returns a list of all files containing cron jobs
=cut
sub list_cron_files
{
my @jobs = &list_cron_jobs();
my @files = map { $_->{'file'} } grep { $_->{'file'} } @jobs;
if ($config{'system_crontab'}) {
push(@files, $config{'system_crontab'});
}
if ($config{'cronfiles_dir'}) {
push(@files, glob(&translate_filename($config{'cronfiles_dir'})."/*"));
}
return &unique(@files);
}
1;

30
cron/edit_manual.cgi Executable file
View File

@@ -0,0 +1,30 @@
#!/usr/local/bin/perl
# Show the manual edit form
require './cron-lib.pl';
&ReadParse();
&ui_print_header(undef, $text{'manual_title'}, "");
$access{'acl_users'} == 0 || &error($text{'manual_ecannot'});
# File selection form
my @files = &list_cron_files();
print &ui_form_start("edit_manual.cgi");
print "<b>$text{'manual_edit'}</b> ",
&ui_select("file", $in{'file'} || $files[0], [ @files ])," ",
&ui_submit($text{'manual_ok'});
print &ui_hidden("search", $in{'search'});
print &ui_form_end();
if ($in{'file'}) {
&indexof($in{'file'}, @files) >= 0 || &error($text{'manual_efile'});
print &ui_form_start("save_manual.cgi", "form-data");
print &text('manual_editing',
"<tt>".&html_escape($in{'file'})."</tt>"),"<br>\n";
print &ui_textarea("data", &read_file_contents($in{'file'}), 20, 80);
print &ui_hidden("search", $in{'search'});
print &ui_hidden("file", $in{'file'});
print &ui_form_end([ [ undef, $text{'save'} ] ]);
}
&ui_print_footer("index.cgi?search=".&urlize($in{'search'}),
$text{'index_return'});

View File

@@ -57,6 +57,10 @@ if ($access{'create'}) {
if ($config{cron_allow_file} && $config{cron_deny_file} && $access{'allow'}) {
push(@crlinks, &ui_link("edit_allow.cgi", $text{'index_allow'}) );
}
my @files = &list_cron_files();
if ($access{'acl_users'} == 0 && @files) {
push(@crlinks, &ui_link("edit_manual.cgi", $text{'index_manual'}));
}
# Build a list of cron job rows to show
$single_user = !&supports_users() || (@ulist == 1 && $access{'mode'});

View File

@@ -10,6 +10,7 @@ index_none3=Encara no tens cap treball cron.
index_create=Crea una nou treball planificat amb cron.
index_ecreate=Crea una nova variable d'entorn.
index_allow=Controla l'accés dels usuaris als treballs cron.
index_manual=Edita manualment els treballs cron.
index_return=a la llista de cron
index_env=Variable d'entorn
index_move=Desplaça
@@ -180,4 +181,12 @@ range_eend=Hi falta la data final de l'interval o b
delete_err=No s'han pogut suprimir els treballs Cron
delete_enone=No has seleccionat res
manual_title=Edició Manual de Treballs Cron
manual_edit=Fitxer cron a editar:
manual_ok=Edita
manual_editing=Utilitza la caixa de text de sota per editar el treballs Cronde $1. Ves amb compte, perquè Webmin no en farà cap validació!
manual_efile=El fitxer seleccionat no és vàlid!
manual_ecannot=No tens permís per editar manualment els treballs cron
__norefs=1

View File

@@ -92,6 +92,7 @@ index_enable=Aktiviere ausgew&#228;hlte Auftr&#228;ge
index_env=Umgebungsvariable
index_esearch=Keine Auftr&#228;ge f&#252;r Ihre Suche nach $1 gefunden.
index_esingle=Die Datei $1 die Cron Auftr&#228;ge auflistet wurde nicht gefunden. Vielleicht ist Cron nicht auf Ihrem System installiert?
index_manual=Editiere manuell Cron-Auftr&#228;ge.
index_move=Verschieben
index_none=Es gibt keine Cron-Auftr&#228;ge auf diesem System
index_none2=Es gibt keine Cron-Auftr&#228;ge, auf die Sie zugreifen d&#252;rfen.
@@ -137,6 +138,11 @@ log_kill_l=Cron-Auftrag "$2" f&#252;r $1 terminiert.
log_modify=Cron-Auftrag f&#252;r $1 ge&#228;ndert
log_modify_l=Cron-Auftrag "$2" f&#252;r $1 ge&#228;ndert
log_move=Cron-Auftrag verschoben f&#252;r $1
manual_ecannot=Sie sind nicht berechtigt, Cron-Auftr&#228;ge manuell zu bearbeiten
manual_edit=Cron Datei zum editieren:
manual_efile=Ausgew&#228;hlte Datei ist ung&#252;ltig!
manual_ok=Editieren
manual_title=Editiere manuell Cron-Auftr&#228;ge
move_err=Konnte Cron-Auftrag nicht verschieben
move_etype=Dieser Cron-Auftrag kann nicht verschoben werden
range_all=F&#252;hre zu jeder Zeit aus

View File

@@ -10,6 +10,7 @@ index_none3=You do not have any cron jobs yet.
index_create=Create a new scheduled cron job.
index_ecreate=Create a new environment variable.
index_allow=Control user access to cron jobs.
index_manual=Manually edit cron jobs.
index_return=cron list
index_env=Environment variable
index_move=Move
@@ -180,4 +181,12 @@ range_eend=Missing or invalid ending date in range to run
delete_err=Failed to delete Cron jobs
delete_enone=None selected
manual_title=Manually Edit Cron Jobs
manual_edit=Cron file to edit:
manual_ok=Edit
manual_editing=Use the text box below to edit Cron jobs in $1. Be careful, as no validation will be done by Webmin!
manual_efile=Selected file is not valid!
manual_ecannot=You are not allowed to manually edit cron jobs
__norefs=1

View File

@@ -1,43 +1,43 @@
desc_nl=Geplande Cron Taken
desc_ko_KR.euc=¿¹¾àµÈ Cron ÀÛ¾÷
risk=low medium high
desc_ru_SU=òÁÓÐÉÓÁÎÉÅ ÚÁÄÁÎÉÊ Cron
desc_zh_TW.Big5=©w®É°õ¦æ¤u§@ (Cron)
desc_pl=Harmonogram zadañ Cron
desc_de=Geplante Auftr&#228;ge (Cron)
name=Cron Manager
desc_zh_CN=Cron ÈÎÎñµ÷¶È
desc_pt=Tarefas Agendadas (Cron)
category=system
desc_tr=Zamanlandýrýlmýþ Görevler
os_support=solaris slackware-linux redhat-linux mandrake-linux debian-linux suse-linux united-linux hpux freebsd osf1 irix unixware openserver macos open-linux turbo-linux openbsd corel-linux cobalt-linux aix netbsd msc-linux generic-linux gentoo-linux trustix-linux sol-linux coherent-linux openmamba-linux windows pardus-linux
desc=Scheduled Cron Jobs
desc_es=Tareas Planificadas (Cron)
desc_sv=Schemalagda cronjobb
desc_fr=Tâches Cron
desc_ja_JP.euc=ͽÄêºÑ¤ß Cron ºî¶È
desc_hu=Idõzitett futtatások (Cron)
desc_ru_RU=Ðàñïèñàíèå çàäàíèé Cron
desc_ca=Treballs Planificats Cron
longdesc=Create, edit and delete Cron jobs.
depends=proc
readonly=1
desc_zh_TW.UTF-8=定時執行工作 (Cron)
desc_zh_CN.UTF-8=Cron 任务调度
desc_ja_JP.UTF-8=予定済ã<CB86>¿ Cron 作業
desc_ko_KR.UTF-8=예약ë<C2BD>œ Cron 작업
desc_sk=Cron Plánovaè úloh
risk=low medium high
desc=Scheduled Cron Jobs
longdesc=Create, edit and delete Cron jobs.
desc_nl=Geplande Cron Taken
desc_ko_KR.euc=¿¹¾àµÈ Cron ÀÛ¾÷
desc_ru_SU=òÃ<C2B2>ÓÃ<E2809C>ÉÓÃ<E2809C>ÎÉÅ ÚÃ<C5A1>ÄÃ<E2809E>ÎÉÊ Cron
desc_zh_TW.Big5=©w®É°õ¦æ¤u§@ (Cron)
desc_pl=Harmonogram zadañ Cron
desc_zh_CN=Cron ÈÎÎñµ÷¶È
desc_pt=Tarefas Agendadas (Cron)
desc_tr=Zamanlandýrýlmýþ Görevler
desc_es=Tareas Planificadas (Cron)
desc_sv=Schemalagda cronjobb
desc_fr=Tâches Cron
desc_ja_JP.euc=Ã<>½ÄêºÃ¤ß Cron ºî¶È
desc_hu=Idõzitett futtatások (Cron)
desc_ru_RU=ö²ö<C2B2>ö“ö<E2809C>ö‰ö“ö<E2809C>öŽö‰ö… öšö<C5A1>ö„ö<E2809E>öŽö‰öŠ Cron
desc_ca=Treballs Planificats Cron
desc_zh_TW.UTF-8=定時執行工作 (Cron)
desc_zh_CN.UTF-8=Cron 任务调度
desc_ja_JP.UTF-8=予定済ãÂ<C2A3>¿ Cron 作業
desc_ko_KR.UTF-8=예약ëÂ<C2AB>Å“ Cron 작업
desc_sk=Cron Plánovaè úloh
desc_it=Pianificazione Cron Job
desc_cz=Cron Plánovaè úloh
desc_ru.UTF-8=РаÑ<EFBFBD>пиÑ<EFBFBD>ание заданий Cron
desc_hu.UTF-8=Tervezett Cron munkák
desc_cz.UTF-8=Cron PlánovaÄ<EFBFBD> úloh
desc_pl.UTF-8=Harmonogram zadań crona
desc_sk.UTF-8=Cron PlánovaÄ<EFBFBD> úloh
desc_cz=Cron Plánovaè úloh
desc_ru.UTF-8=Ã<EFBFBD> Ã<EFBFBD>°ÃÂ<EFBFBD>Ã<EFBFBD>¿Ã<EFBFBD>¸ÃÂ<EFBFBD>Ã<EFBFBD>°Ã<EFBFBD>½Ã<EFBFBD>¸Ã<EFBFBD>µ Ã<>·Ã<C2B7>°Ã<C2B0>´Ã<C2B4>°Ã<C2B0>½Ã<C2BD>¸Ã<C2B8>¹ Cron
desc_hu.UTF-8=Tervezett Cron munkák
desc_cz.UTF-8=Cron PlánovaÄÂ<EFBFBD> úloh
desc_pl.UTF-8=Harmonogram zadań crona
desc_sk.UTF-8=Cron PlánovaÄÂ<EFBFBD> úloh
desc_no=Tidsplanlagte Cron jobber
longdesc_hu=Idõzitett futtatások létrehozása, módosítása és törlése
longdesc_hu=Idõzitett futtatások létrehozása, módosítása és törlése
longdesc_ms_MY=Cipta, Ubah dan padam Tugas Cron.
desc_ms_MY=Tugas Cron Berjadual
longdesc_de=Erstellt, editiert und l&#246;scht Cron-Auftr&#228;ge.
longdesc_pl=Twórz, edytuj i usuwaj zadania Cron.
longdesc_pl=Twórz, edytuj i usuwaj zadania Cron.
longdesc_ca=Crea, edita i suprimeix treballs Cron.
longdesc_de=Erzeugen und Bearbeiten von wiederkehrenden CRON-Auftr&#228;gen.
longdesc_de.UTF-8=Erzeugen und Bearbeiten von wiederkehrenden CRON-Aufträgen.

19
cron/save_manual.cgi Executable file
View File

@@ -0,0 +1,19 @@
#!/usr/local/bin/perl
# Save a manually edited cron job
require './cron-lib.pl';
&ReadParseMime();
&error_setup($text{'manual_err'});
$access{'acl_users'} == 0 || &error($text{'manual_ecannot'});
# Validate the file and update it
my @files = &list_cron_files();
&indexof($in{'file'}, @files) >= 0 || &error($text{'manual_efile'});
$in{'data'} =~ s/\r//g;
$in{'data'} .= "\n" if ($in{'data'} !~ /\n$/);
&open_lock_tempfile(FILE, ">$in{'file'}");
&print_tempfile(FILE, $in{'data'});
&close_tempfile(FILE);
&webmin_log("manual", undef, $in{'file'});
&redirect("index.cgi?search=".&urlize($in{'search'}));

View File

@@ -78,6 +78,7 @@ save_etimeout=Hi falta el temps m
save_eusermin=Les ordres que s'executen en altres servidors no es poden executar des d'Usermin
save_eformat=El tipus MIME de sortida és invàlid
save_eopts=Hi falta el fitxer d'opcions per al paràmetre $1
save_eopts2=El fitxer d'opcions o el valor per defecte del paràmetre $1 no pot contenir:
run_err=No s'ha pogut executar l'ordre
run_ecannot=No tens permís per executar aquesta ordre

View File

@@ -126,6 +126,8 @@ save_ecmd=Ingen kommando angitt
save_edesc=Ingen beskrivelse angitt
save_edir=Manglende eller ugyldig katalog
save_eformat=Ugyldig output MIME type
save_eopts=Manglende innstllingsfil for parameter $1
save_eopts2=Innstillingsfil eller standard-verdi for parameter $1 kan ikke innholde :
save_eorder=Sortering p&#229; hovedsiden m&#229; v&#230;re et heltall
save_err=Kunne ikke lagre kommando
save_etimeout=Manglende eller ugyldig maks. tid &#229; vente

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