Compare commits
628 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5227e85af | ||
|
|
af2219d128 | ||
|
|
1a8d138a38 | ||
|
|
dcb3a602f2 | ||
|
|
9239327440 | ||
|
|
a9bd221f94 | ||
|
|
a10c475218 | ||
|
|
7733dc758e | ||
|
|
90a331fb33 | ||
|
|
b6dfa03e3c | ||
|
|
12ab7cc722 | ||
|
|
6382bc8f7e | ||
|
|
6a86fb1e3f | ||
|
|
cc2bcd3894 | ||
|
|
9367695b64 | ||
|
|
579d31935f | ||
|
|
824cfd0488 | ||
|
|
6bfc7e4a2a | ||
|
|
a950ad1a5b | ||
|
|
c52ff9184c | ||
|
|
04086f4304 | ||
|
|
e2525d7299 | ||
|
|
2759ca72e5 | ||
|
|
921121be60 | ||
|
|
4b1a2d5eb4 | ||
|
|
d7592cede9 | ||
|
|
ba38d23c6b | ||
|
|
cbcae848df | ||
|
|
6dc5f419c9 | ||
|
|
f254a8ca33 | ||
|
|
fdde4f23a2 | ||
|
|
5e9321336d | ||
|
|
161fa33de3 | ||
|
|
943df27553 | ||
|
|
54365d56d1 | ||
|
|
e1e84b498b | ||
|
|
082acf915e | ||
|
|
aa010454a5 | ||
|
|
33356c95d5 | ||
|
|
fa94a90216 | ||
|
|
15c0e96acb | ||
|
|
fd3ad0c8f4 | ||
|
|
49e94bc897 | ||
|
|
9c351640d5 | ||
|
|
03044aae9f | ||
|
|
333d8cf6f1 | ||
|
|
65e40fc4ca | ||
|
|
a589ea9799 | ||
|
|
781722c168 | ||
|
|
c383ac2f39 | ||
|
|
2c8a828259 | ||
|
|
35e3f001ea | ||
|
|
0f2e469c09 | ||
|
|
deb752f734 | ||
|
|
3fc70e2fea | ||
|
|
ce38e064ca | ||
|
|
844ffa5c04 | ||
|
|
48df0aaab3 | ||
|
|
2fb8433684 | ||
|
|
1d270ee1b8 | ||
|
|
b5ceeb4515 | ||
|
|
ff87ba9c8c | ||
|
|
72db1df466 | ||
|
|
54a5fc9907 | ||
|
|
7ba8e6ac92 | ||
|
|
a822a34d1f | ||
|
|
30c5428b9b | ||
|
|
6fc0cedcc4 | ||
|
|
bffb79fba4 | ||
|
|
28d3962d1c | ||
|
|
a357ee9941 | ||
|
|
1ad74d9573 | ||
|
|
10e89b1fe1 | ||
|
|
958eb32639 | ||
|
|
8eb9b8f0a4 | ||
|
|
2d71cdfd34 | ||
|
|
a381969d4b | ||
|
|
19bda9c5b4 | ||
|
|
2e3303aba3 | ||
|
|
d467ac443f | ||
|
|
ee91c93526 | ||
|
|
78a988a014 | ||
|
|
40ab4e24c2 | ||
|
|
7e703715de | ||
|
|
32be084c0d | ||
|
|
2942b6ec14 | ||
|
|
9c77028942 | ||
|
|
46c117ce24 | ||
|
|
ee3ae0195e | ||
|
|
3878388b37 | ||
|
|
8375804861 | ||
|
|
95c473d91f | ||
|
|
f2fb64c2b0 | ||
|
|
9c6f59c1bc | ||
|
|
a7c905c815 | ||
|
|
06e6756c90 | ||
|
|
fecb78c333 | ||
|
|
46ae2feaf6 | ||
|
|
029455ce00 | ||
|
|
7076897b3e | ||
|
|
74e8c79aee | ||
|
|
6fd2720736 | ||
|
|
ae77e7a50d | ||
|
|
43862866c9 | ||
|
|
3e20e3c9f8 | ||
|
|
f943290a72 | ||
|
|
12c693eddc | ||
|
|
2c41fcee8e | ||
|
|
07626caf03 | ||
|
|
51c8379638 | ||
|
|
04b95f4dc8 | ||
|
|
63dddcb481 | ||
|
|
b17a218841 | ||
|
|
82edaee5fd | ||
|
|
c55c5729bf | ||
|
|
e6c34329ce | ||
|
|
bbda7ba5f9 | ||
|
|
45af5d9205 | ||
|
|
92e68dfc65 | ||
|
|
32cc1b058d | ||
|
|
e48e8f2d29 | ||
|
|
46174c0743 | ||
|
|
ed44531bf7 | ||
|
|
e3c9501173 | ||
|
|
b29b821305 | ||
|
|
e3a4158f23 | ||
|
|
d3faa589a8 | ||
|
|
b95e63a5b4 | ||
|
|
f947f4cd1d | ||
|
|
1e3d5ba450 | ||
|
|
0acc6ca542 | ||
|
|
5933cc98ad | ||
|
|
4d0202fd67 | ||
|
|
192b3504ce | ||
|
|
9f409d725d | ||
|
|
ef91a50639 | ||
|
|
6e97ba1219 | ||
|
|
c1c9daa212 | ||
|
|
b60a74a4ad | ||
|
|
c98a42d36c | ||
|
|
a7cf237836 | ||
|
|
18cc0d16ad | ||
|
|
11b7cbc929 | ||
|
|
4d37f20e22 | ||
|
|
b72e71f599 | ||
|
|
2075fffe70 | ||
|
|
2e8156060c | ||
|
|
f6b554a247 | ||
|
|
ef37f01d6b | ||
|
|
cd80bcae09 | ||
|
|
dd54463213 | ||
|
|
bd2d50441f | ||
|
|
1c15d42fdc | ||
|
|
5cfbbcf32a | ||
|
|
4ba881400e | ||
|
|
b55b3fdd0a | ||
|
|
3b28c79e34 | ||
|
|
9e7997cf8f | ||
|
|
c7f2733666 | ||
|
|
68facdd18f | ||
|
|
683e42225e | ||
|
|
4d5a2ab87b | ||
|
|
9f09904749 | ||
|
|
32d49e99ef | ||
|
|
98dd2c0a11 | ||
|
|
3b49dc2ee0 | ||
|
|
4c0c3a4a5f | ||
|
|
00561c3ac2 | ||
|
|
6f4cc0d508 | ||
|
|
e5dbd8e46c | ||
|
|
585f8db549 | ||
|
|
0548c8d752 | ||
|
|
1e5029baa0 | ||
|
|
81b7cb0609 | ||
|
|
8de9921320 | ||
|
|
50d8b18e31 | ||
|
|
c107838ed8 | ||
|
|
a85efb80fe | ||
|
|
e3465d36d3 | ||
|
|
894a3093a8 | ||
|
|
7aeb518a89 | ||
|
|
9cdd5349d4 | ||
|
|
1bf72b035d | ||
|
|
d6af912e6b | ||
|
|
9d7c88bf0f | ||
|
|
49fdd7342b | ||
|
|
dbb888b9e4 | ||
|
|
cdfb0e8843 | ||
|
|
959530af7f | ||
|
|
17daad6c89 | ||
|
|
b8b7e2aad8 | ||
|
|
eead9a5a88 | ||
|
|
8d1a3e50ad | ||
|
|
01c6694fb0 | ||
|
|
3c97d71574 | ||
|
|
277db70498 | ||
|
|
7d9334c03f | ||
|
|
7be6ca734a | ||
|
|
c7fb9c9b8d | ||
|
|
4813ee1fb5 | ||
|
|
df0fe63adb | ||
|
|
dcb64db053 | ||
|
|
8efedabeea | ||
|
|
d392852b8d | ||
|
|
5affc13406 | ||
|
|
2f71de2522 | ||
|
|
b5302d6451 | ||
|
|
f8b96e3ccc | ||
|
|
1c1f6b4ffb | ||
|
|
2d4ae90954 | ||
|
|
3fed9e95f2 | ||
|
|
e975c8bd37 | ||
|
|
ef85abd9f6 | ||
|
|
b89d50bea6 | ||
|
|
7b2a873998 | ||
|
|
c284a78214 | ||
|
|
1bf4b1e8ce | ||
|
|
eb412a1084 | ||
|
|
6701e9f756 | ||
|
|
5866463772 | ||
|
|
7078bed4c2 | ||
|
|
771be1a754 | ||
|
|
33c04bdbcd | ||
|
|
fca5f936b6 | ||
|
|
8a81277731 | ||
|
|
acdf5c4519 | ||
|
|
091359746b | ||
|
|
d4cb26a5a5 | ||
|
|
62b079358d | ||
|
|
c40001880c | ||
|
|
2e948ad2a1 | ||
|
|
62ee59efe6 | ||
|
|
fbcbcd0525 | ||
|
|
e122629c02 | ||
|
|
37db318b92 | ||
|
|
86a2e3a240 | ||
|
|
8e9d0b3d88 | ||
|
|
6b62d7be44 | ||
|
|
e4d4ed51de | ||
|
|
a1c9fa94fc | ||
|
|
79433069fe | ||
|
|
8faabd6d22 | ||
|
|
bb133c06c7 | ||
|
|
d8bf92b6ae | ||
|
|
4810b7a02b | ||
|
|
f0ab457cc5 | ||
|
|
daa12e4677 | ||
|
|
d38bb8ed8a | ||
|
|
8d04bd2b3f | ||
|
|
9ffb6a51eb | ||
|
|
162e2c55f6 | ||
|
|
03d77c5703 | ||
|
|
57daa0c1d8 | ||
|
|
bb07dcd060 | ||
|
|
0c693e43f4 | ||
|
|
94fe1805c0 | ||
|
|
6196880718 | ||
|
|
0024d3d5a0 | ||
|
|
506155090b | ||
|
|
68bb6bc9f5 | ||
|
|
3bacac8880 | ||
|
|
82759475c2 | ||
|
|
03b5106a7d | ||
|
|
64d60374ad | ||
|
|
053a2189f9 | ||
|
|
eb5c9038cf | ||
|
|
160e6f3612 | ||
|
|
e71c17ced7 | ||
|
|
b31758739a | ||
|
|
ccffcb55f7 | ||
|
|
0aff791cb9 | ||
|
|
a4c6d0752a | ||
|
|
726247cc4d | ||
|
|
4f8c0449f6 | ||
|
|
4654e37492 | ||
|
|
9da1f5ac99 | ||
|
|
6066a3f6b7 | ||
|
|
a6d69ee7a9 | ||
|
|
6fbec6c4ac | ||
|
|
423120a721 | ||
|
|
1563915e68 | ||
|
|
99de0dcfe4 | ||
|
|
8199f3212e | ||
|
|
5691042e1a | ||
|
|
2148cb9588 | ||
|
|
fd3b2efa3d | ||
|
|
33f1b66d8d | ||
|
|
cae4b45d2a | ||
|
|
7bac622a2b | ||
|
|
b66fe4daa6 | ||
|
|
2d2c4ee08d | ||
|
|
44f587f973 | ||
|
|
5e2f906766 | ||
|
|
740d836499 | ||
|
|
cdfd3f16ea | ||
|
|
a5933e3056 | ||
|
|
1f5600967f | ||
|
|
129933a8e1 | ||
|
|
d425e02302 | ||
|
|
84fce2f4d0 | ||
|
|
8fc9ad32c9 | ||
|
|
10989a5c63 | ||
|
|
2c2c035c38 | ||
|
|
d6ff157597 | ||
|
|
4853a46dee | ||
|
|
b58ff873ce | ||
|
|
b33a07acac | ||
|
|
9fab2604f1 | ||
|
|
9a0f3c0f73 | ||
|
|
e89ffcfa69 | ||
|
|
c98d49b198 | ||
|
|
eaf74d1385 | ||
|
|
57cfc150dd | ||
|
|
ab0c84eed5 | ||
|
|
d3d1cc1737 | ||
|
|
2a0fe13317 | ||
|
|
1e2545b06e | ||
|
|
3ef0e979d6 | ||
|
|
1feaa18d99 | ||
|
|
882c8152e5 | ||
|
|
6230f9e9fc | ||
|
|
55cfbd140c | ||
|
|
47a1013472 | ||
|
|
1eecef7ab9 | ||
|
|
771a4a413c | ||
|
|
cdac858567 | ||
|
|
332d71dcd6 | ||
|
|
df8a43fb4b | ||
|
|
8cf71f5b3a | ||
|
|
0da2af51c6 | ||
|
|
f0a190276c | ||
|
|
e581097113 | ||
|
|
c6dedff679 | ||
|
|
8b4b053222 | ||
|
|
9635f6a744 | ||
|
|
fd265242d1 | ||
|
|
8d874344a1 | ||
|
|
cbe670e664 | ||
|
|
090ed9f1d8 | ||
|
|
b1349bfc27 | ||
|
|
1b1579ad1b | ||
|
|
9d54424523 | ||
|
|
aac36ae5fc | ||
|
|
6aca4b6fd3 | ||
|
|
031aded040 | ||
|
|
3f73bd8f1c | ||
|
|
ef4213df55 | ||
|
|
e0c2b84913 | ||
|
|
b79d78a9ba | ||
|
|
bf3e179429 | ||
|
|
3efa74f29a | ||
|
|
ffc08b399a | ||
|
|
7b958daef9 | ||
|
|
9dc50476ba | ||
|
|
0df56f2896 | ||
|
|
9a4d7c400a | ||
|
|
382d8d1033 | ||
|
|
017972b8e7 | ||
|
|
49e5e7ef43 | ||
|
|
4655b89dd2 | ||
|
|
cf86d9794f | ||
|
|
6ed15902f1 | ||
|
|
c8bc89976d | ||
|
|
a2d31aa7a4 | ||
|
|
7b4be20934 | ||
|
|
a7cc1f1d90 | ||
|
|
0cb86127e8 | ||
|
|
f293c3199e | ||
|
|
d52b4a440f | ||
|
|
cd9c15b996 | ||
|
|
85803b5778 | ||
|
|
5414422319 | ||
|
|
8e11dfccfb | ||
|
|
13939b4475 | ||
|
|
7249e646e8 | ||
|
|
e2a2334611 | ||
|
|
f71a66e60b | ||
|
|
a60ffc8372 | ||
|
|
e0ae7426cf | ||
|
|
de24b412d0 | ||
|
|
909cb57bf2 | ||
|
|
76de50edf5 | ||
|
|
8f851e5cc6 | ||
|
|
accbcfd4d4 | ||
|
|
2ab5ff1b7e | ||
|
|
81f9d1239b | ||
|
|
017fdeb690 | ||
|
|
d109e256c8 | ||
|
|
c3275fd05a | ||
|
|
aaeab928b0 | ||
|
|
7dc35af03b | ||
|
|
0f3521b995 | ||
|
|
64e797ea2e | ||
|
|
9a57de5d1c | ||
|
|
828fd37c82 | ||
|
|
a88a9de113 | ||
|
|
90b759e644 | ||
|
|
5b8a3fb3bf | ||
|
|
5794174f05 | ||
|
|
baabbfd4ab | ||
|
|
4565a3ff4d | ||
|
|
805ae75c20 | ||
|
|
794dab045a | ||
|
|
f6c2f11dc3 | ||
|
|
6c29748bf9 | ||
|
|
81bf5426ae | ||
|
|
3d28fd96f6 | ||
|
|
ad2410b86a | ||
|
|
e9cdebcffe | ||
|
|
1bacadd3b4 | ||
|
|
b10340a5a3 | ||
|
|
5fbaa665f9 | ||
|
|
badb06c134 | ||
|
|
66683b0e3f | ||
|
|
1ca47da261 | ||
|
|
3a84169fbe | ||
|
|
8eb8c815c1 | ||
|
|
a171aa47c0 | ||
|
|
6853582e72 | ||
|
|
4b709fd473 | ||
|
|
94234a5d43 | ||
|
|
203a307b5a | ||
|
|
9e43813df8 | ||
|
|
c86e29470a | ||
|
|
06f74a28cb | ||
|
|
dc1e9fa77e | ||
|
|
494bccece3 | ||
|
|
b1048601c8 | ||
|
|
046efee6e8 | ||
|
|
ca0e907fcd | ||
|
|
60321ac83e | ||
|
|
64a344d98f | ||
|
|
6d0120604a | ||
|
|
52a93bb9d0 | ||
|
|
f82d4c3f53 | ||
|
|
84ef192307 | ||
|
|
1e2b0dfad9 | ||
|
|
6825658a5c | ||
|
|
f3762aec93 | ||
|
|
a777dd9614 | ||
|
|
b1dff57ef3 | ||
|
|
694599a2d3 | ||
|
|
c0ae367a05 | ||
|
|
04603f1604 | ||
|
|
77b3471442 | ||
|
|
0c68b28259 | ||
|
|
97b34b3b91 | ||
|
|
5666ae3962 | ||
|
|
e30b793c3d | ||
|
|
a5a4af7410 | ||
|
|
3aef6058e0 | ||
|
|
b77a782f0b | ||
|
|
5324d6e8fd | ||
|
|
6b4b2c728b | ||
|
|
34c6acdeb2 | ||
|
|
8662a30432 | ||
|
|
4d4a79bdc2 | ||
|
|
4c77446b2f | ||
|
|
ddbbcdc0c1 | ||
|
|
dc9fc349aa | ||
|
|
4aa0ae9e06 | ||
|
|
65bf61271d | ||
|
|
542dba4cd4 | ||
|
|
57bb58051c | ||
|
|
ad7dde0591 | ||
|
|
533a99fcc4 | ||
|
|
42ba3cc5be | ||
|
|
596069cc65 | ||
|
|
6b3c5152b8 | ||
|
|
2c37a2149e | ||
|
|
4a886c4178 | ||
|
|
b1fabfc3d5 | ||
|
|
60cc26ffbd | ||
|
|
a7eee18a58 | ||
|
|
4cb9dd81c5 | ||
|
|
c336b3d443 | ||
|
|
ce196d6b8b | ||
|
|
989bb25c7d | ||
|
|
63f3d51871 | ||
|
|
f695820b4b | ||
|
|
f2630b366c | ||
|
|
a9e5cef675 | ||
|
|
52f819fa57 | ||
|
|
c1dd7b985b | ||
|
|
0fea5b9078 | ||
|
|
364426e542 | ||
|
|
e13846f98e | ||
|
|
19d705cc4f | ||
|
|
5aec699707 | ||
|
|
d40e53315b | ||
|
|
f2cbf0f001 | ||
|
|
e875c791fc | ||
|
|
5d3bb8c1bf | ||
|
|
8110570f68 | ||
|
|
6f8f23c4a5 | ||
|
|
f2c7e4b697 | ||
|
|
4dd741a2a5 | ||
|
|
c8cdf69680 | ||
|
|
5efbda5ab7 | ||
|
|
bfd273a72b | ||
|
|
118a4c0046 | ||
|
|
14788d37ad | ||
|
|
f0eae14f81 | ||
|
|
6acc8f0bfe | ||
|
|
6922ab89f5 | ||
|
|
2bf41b2709 | ||
|
|
4204be4dd7 | ||
|
|
1dbfe23ed3 | ||
|
|
6ff2889bc8 | ||
|
|
775ba8441f | ||
|
|
14fc240771 | ||
|
|
b483a00b64 | ||
|
|
938b244849 | ||
|
|
a19395f238 | ||
|
|
9ecb8b578d | ||
|
|
2713b41292 | ||
|
|
eededaf844 | ||
|
|
b46fcab007 | ||
|
|
dfeff32343 | ||
|
|
d9f0b016c2 | ||
|
|
a86e5f5f8d | ||
|
|
df0caae5a0 | ||
|
|
5363301d3c | ||
|
|
661c962443 | ||
|
|
d8898a4d89 | ||
|
|
3e9e0dfd3d | ||
|
|
017da0b204 | ||
|
|
4a300d9257 | ||
|
|
7992218829 | ||
|
|
7a35a59792 | ||
|
|
5a92fe8365 | ||
|
|
f17a068075 | ||
|
|
9ce6bfd308 | ||
|
|
85c9233298 | ||
|
|
132803dbcb | ||
|
|
3e5fcb3b10 | ||
|
|
453323cce3 | ||
|
|
3ff670abe1 | ||
|
|
cede115fb5 | ||
|
|
544c2b5fa7 | ||
|
|
437e123a78 | ||
|
|
808ac0cc75 | ||
|
|
ccf6048c13 | ||
|
|
797039fb80 | ||
|
|
32440f642f | ||
|
|
ffb017565b | ||
|
|
0633772bea | ||
|
|
c2c2d5b2c6 | ||
|
|
216a906aea | ||
|
|
d61bee0dec | ||
|
|
a6e4dc21ad | ||
|
|
a014b136b1 | ||
|
|
1cc2f47640 | ||
|
|
5344bacaec | ||
|
|
94fb368317 | ||
|
|
e781b17db1 | ||
|
|
3c2be83ea0 | ||
|
|
21b1777e93 | ||
|
|
a7cb3d2eda | ||
|
|
f0046765a4 | ||
|
|
e37b56f8ee | ||
|
|
04b36157d9 | ||
|
|
b1a580cd57 | ||
|
|
9a5e015153 | ||
|
|
ca1dcfabaf | ||
|
|
f2992f08c6 | ||
|
|
9b97ad593e | ||
|
|
80a633d722 | ||
|
|
728f5a0dd8 | ||
|
|
bb6aa0e6cc | ||
|
|
480876fe32 | ||
|
|
9839ea9b7c | ||
|
|
351b514b61 | ||
|
|
61b0cafcb5 | ||
|
|
41d9bf7e77 | ||
|
|
e91b8bd929 | ||
|
|
7611df68a1 | ||
|
|
6ba8fa73af | ||
|
|
c0a037b06b | ||
|
|
d7d2942706 | ||
|
|
8605180c05 | ||
|
|
aa0db14dd9 | ||
|
|
07c83691d0 | ||
|
|
8f5e734c9c | ||
|
|
8021c36859 | ||
|
|
0b2c65561b | ||
|
|
99d6684972 | ||
|
|
363d7234f5 | ||
|
|
209549b5bd | ||
|
|
7369ab0d04 | ||
|
|
43a715f7d9 | ||
|
|
6cdf4c1175 | ||
|
|
11cf2f408c | ||
|
|
81aa3052d9 | ||
|
|
5d0bd909f0 | ||
|
|
fe3cf26889 | ||
|
|
2e6020d28e | ||
|
|
b3e55c7dc4 | ||
|
|
664802ac56 | ||
|
|
fbb1f03be9 | ||
|
|
02ad765408 | ||
|
|
d3aeac48bd | ||
|
|
66ce36fb01 | ||
|
|
81256bd6e7 | ||
|
|
17685f2c20 | ||
|
|
d2d3a912cd | ||
|
|
0d8f5b1907 | ||
|
|
11bafbf540 | ||
|
|
72ba5e3c51 | ||
|
|
f42e860a97 | ||
|
|
3709c33834 | ||
|
|
12a8683be3 | ||
|
|
587acc2ac4 | ||
|
|
1a6cd46975 | ||
|
|
72df582043 | ||
|
|
7f5e7fb753 | ||
|
|
3a20762df1 | ||
|
|
f733f93c58 | ||
|
|
004bda9992 | ||
|
|
b8ba96ca94 | ||
|
|
0314af1d72 | ||
|
|
ba1838eff7 | ||
|
|
a6be4107be | ||
|
|
d65db8a283 | ||
|
|
ad5a6c6901 | ||
|
|
63f81b5485 | ||
|
|
40b12569a0 | ||
|
|
2e9bba958a |
49
.gitattributes
vendored
@@ -2,57 +2,8 @@
|
||||
# webmin .gitattribues file
|
||||
# help git / github to know the encoding of webmin (lang) files
|
||||
|
||||
# set default encoding to iso-8859-1 aka ASCII
|
||||
* working-tree-encoding=iso8859-1 git-encoding=iso8859-1
|
||||
|
||||
# force module.info to iso-8859-1 even it contains other encodings
|
||||
*/module.info working-tree-encoding=iso8859-1 git-encoding=iso8859-1
|
||||
|
||||
# set all .UTF-8 to UTF-8
|
||||
*.UTF-8 working-tree-encoding=UTF-8 git-encoding=UTF-8
|
||||
|
||||
# set all non iso8859-1 lang files to correct encoding
|
||||
**/lang/ru_SU working-tree-encoding=koi8-r git-encoding=koi8-r
|
||||
**/lang/ru_RU working-tree-encoding=windows-1251 git-encoding=windows-1251
|
||||
**/lang/zh_TW.Big5 working-tree-encoding=Big5 git-encoding=Big5
|
||||
**/lang/zh_CN working-tree-encoding=GB2312 git-encoding=GB2312
|
||||
**/lang/hu working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
**/lang/he working-tree-encoding=iso-8859-8-I git-encoding=iso-8859-8-I
|
||||
**/lang/tr working-tree-encoding=iso-8859-9 git-encoding=iso-8859-9
|
||||
**/lang/pl working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
**/lang/ja_JP.euc working-tree-encoding=EUC-JP git-encoding=EUC-JP
|
||||
**/lang/si working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
**/lang/ko_KR.euc working-tree-encoding=EUC-KR git-encoding=EUC-KR
|
||||
**/lang/cz working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
**/lang/th working-tree-encoding=tis-620 git-encoding=tis-620
|
||||
**/lang/no working-tree-encoding=iso-8859-15 git-encoding=iso-8859-15
|
||||
**/lang/sk working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
**/lang/lt working-tree-encoding=windows-1257 git-encoding=windows-1257
|
||||
**/lang/bg working-tree-encoding=windows-1251 git-encoding=windows-1251
|
||||
**/lang/el working-tree-encoding=iso-8859-7 git-encoding=iso-8859-7
|
||||
**/lang/uk_UA working-tree-encoding=windows-1251 git-encoding=windows-1251
|
||||
**/lang/ar working-tree-encoding=iso-8859-6-I git-encoding=iso-8859-6-I
|
||||
**/lang/fa working-tree-encoding=UTF-8 git-encoding=UTF-8
|
||||
|
||||
# set all non iso8859-1 config.info files to correct encoding
|
||||
*/config.info.ru_SU working-tree-encoding=koi8-r git-encoding=koi8-r
|
||||
*/lconfig.info.ru_RU working-tree-encoding=windows-1251 git-encoding=windows-1251
|
||||
*/config.info.zh_TW.Big5 working-tree-encoding=Big5 git-encoding=Big5
|
||||
*/config.info.zh_CN working-tree-encoding=GB2312 git-encoding=GB2312
|
||||
*/lconfig.info.hu working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
*/config.info.he working-tree-encoding=iso-8859-8-I git-encoding=iso-8859-8-I
|
||||
*/config.info.tr working-tree-encoding=iso-8859-9 git-encoding=iso-8859-9
|
||||
*/config.info.pl working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
*/config.info.ja_JP.euc working-tree-encoding=EUC-JP git-encoding=EUC-JP
|
||||
*/config.info.si working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
*/config.info.ko_KR.euc working-tree-encoding=EUC-KR git-encoding=EUC-KR
|
||||
*/lconfig.info.cz working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
*/lconfig.info.th working-tree-encoding=tis-620 git-encoding=tis-620
|
||||
*/config.info.no working-tree-encoding=iso-8859-15 git-encoding=iso-8859-15
|
||||
*/config.info.sk working-tree-encoding=iso-8859-2 git-encoding=iso-8859-2
|
||||
*/config.info.lt working-tree-encoding=windows-1257 git-encoding=windows-1257
|
||||
*/lconfig.info.bg working-tree-encoding=windows-1251 git-encoding=windows-1251
|
||||
*/config.info.el working-tree-encoding=iso-8859-7 git-encoding=iso-8859-7
|
||||
*/config.info.uk_UA working-tree-encoding=windows-1251 git-encoding=windows-1251
|
||||
*/config.info.ar working-tree-encoding=iso-8859-6-I git-encoding=iso-8859-6-I
|
||||
*/config.info.fa working-tree-encoding=UTF-8 git-encoding=UTF-8
|
||||
|
||||
40
CHANGELOG.md
Normal file
@@ -0,0 +1,40 @@
|
||||
## Changelog
|
||||
|
||||
#### Version 1.930 (August 18, 2019)
|
||||
These updates fix a [security vulnerability](http://webmin.com/security.html) and should be installed IMMEDIATELY by all users. Although it is not exploitable in a Webmin install with the default configuration, upgrading is strongly recommended.
|
||||
|
||||
#### Version 1.920 (July 04, 2019)
|
||||
This update includes the latest theme version, translation updates, the ability to disable hosts file entries, easier monitoring of bootup actions, and a bunch of bugfixes.
|
||||
|
||||
#### Version 1.910 (May 09, 2019)
|
||||
This release includes theme and translation updates, a page for editing package repositories, cron and status module improvements, and a bunch of other bugfixes and small improvements.
|
||||
|
||||
#### Version 1.900 (November 19, 2018)
|
||||
This version includes wildcard Let's Encrypt SSL cert support, theme and translation updates, support for announcements to Webmin users, and a bunch of other bugfixes and small improvements.
|
||||
|
||||
#### Version 1.890 (July 19, 2018)
|
||||
This version includes Ubuntu 18 network config support, translation updates, multiple theme and file manager updates, BIND freeze/thaw support, support for more Linux distributuions, and a bunch of other bugfixes and small improvements.
|
||||
|
||||
#### Version 1.880 (March 16, 2018)
|
||||
This version includes German, Catalan and Bulgarian translation updates, a new version of the Authentic Theme, support for directly editing the MySQL and PostgreSQL config files, Let's Encrypt bugfixes, more control over system status email notifications, and more.
|
||||
|
||||
#### Version 1.870 (December 08, 2018)
|
||||
This release includes many translation updates, fixes for Let's Encrypt support, UI cleanups, and most importantly a new major version of the Authentic Theme.
|
||||
|
||||
#### Version 1.860 (October 10, 2017)
|
||||
This release includes Let's Encrypt DNS fixes, Majordomo module improvements, XSS security bugfixes, translation updates, a new version of the theme, and more.
|
||||
|
||||
#### Version 1.850 (June 28, 2017)
|
||||
This release includes Let's Encrypt fixes, Majordomo module improvements, FirewallD forwarding support, translation updates, an update to the Authentic theme, and a bunch of other bugfixes.
|
||||
|
||||
#### Version 1.840 (May 08, 2017)
|
||||
This major release includes a large theme update, XSS security fixes, per-domain SSL cert support, thin-provisioned LVM support, Let's Encrypt improvements, translation updates, and the usual gang of bugfixes. Also available is Usermin 1.710, which contains many of the same updates.
|
||||
|
||||
#### Version 1.830 (December 29, 2016)
|
||||
This is mainly a bugfix release, but also contains some translation updates, the latest version of the Authentic Theme, fixes related to Let's Encrypt and LDAP client support, and SElinux and file attribute support in the file manager.
|
||||
|
||||
#### Version 1.820 (October 3, 2016)
|
||||
This updated includes a bunch of bugfixes (particularly in the BIND module), translation updates, the ability to download a MySQL backup, Let's Encrypt improvements, and more.
|
||||
|
||||
#### Version 1.810 (August 8, 2016)
|
||||
This updated includes the latest Authentic Theme, a new IPv6 Firewall module for Linux, Webmin actions logging improvements, Let's Encrypt API fixes and a bunch of other small updates and bugfixes.
|
||||
29
IDEAS
@@ -1,29 +0,0 @@
|
||||
- DHCP class support
|
||||
- Jump to page support in sendmail mailq and other mailqs
|
||||
- Common functionality between sendmail, qmail and postfix?
|
||||
- Clean up mailq code in sendmail module!
|
||||
- Update all code which uses remote_ functions to pass in server object
|
||||
- Function to open a file in read mode, which checks for < or > characters
|
||||
- Ties into common callback for modifying file, based on file and module
|
||||
- Foreign_require should allow a different package name to be specified,
|
||||
for zone clones with different behaviour
|
||||
- Change all open() calls to use new API, and mention in module docs
|
||||
- Bandwidth modules should use some kind of logging socket instead of
|
||||
syslog, which writes to a daemon.
|
||||
- reset session timeout every time a key is pressed, to prevent timeouts
|
||||
when composing mail. Do on all pages.
|
||||
- covert more modules to readonly support (init first)
|
||||
- perhaps need untranslate_file function? call in software/*-lib.pl
|
||||
- writes to temp files should be allowed
|
||||
- all firewall modules need ability to setup port redirection
|
||||
- for calling from squid and frox modules, polymorphically
|
||||
- better support for includes in samba module
|
||||
- need to expand inline
|
||||
- keep track of file and line for each directive
|
||||
- allow copying from view_mail.cgi in mailboxes module (for subs too)
|
||||
- Support IPFW tables
|
||||
- integrate venu's file manager
|
||||
- clone user in useradmin / ldap-useradmin
|
||||
- improved NFS export support on OSX
|
||||
- Use CPAN to install Perl modules
|
||||
- FS#5583
|
||||
53
LICENCE
@@ -1,29 +1,30 @@
|
||||
---------------------------------------------------------
|
||||
Copyright (c) Jamie Cameron
|
||||
All rights reserved.
|
||||
BSD 3-Clause License
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the developer nor the names of contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
Copyright (c) Jamie Cameron
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE DEVELOPER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
---------------------------------------------------------
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
56
README
@@ -1,56 +0,0 @@
|
||||
Webmin Version 1.900
|
||||
--------------------
|
||||
Webmin is a web-based interface for system administration for Unix.
|
||||
Using any browser that supports tables and forms, you can setup user
|
||||
accounts, Apache, internet services, DNS, file sharing and so on.
|
||||
|
||||
Webmin consists of a simple web server, and a number of CGI programs
|
||||
which directly update system files like /etc/inetd.conf and /etc/passwd.
|
||||
The web server and all CGI programs are written in Perl version 5, and use
|
||||
only the standard perl modules.
|
||||
|
||||
Webmin can be installed in two different ways :
|
||||
|
||||
1) By just running the setup.sh script in the same directory as this README
|
||||
file, with no arguments. You will be asked a series of questions such as
|
||||
the configuration directory, your chosen login name and password, and
|
||||
possibly your operating system. For questions where a default is shown
|
||||
in square brackets, you can just hit enter to accept the default (which
|
||||
is usually correct).
|
||||
|
||||
If the configuration directory you enter is the same as that used by
|
||||
a previous install of Webmin, it will be automatically upgraded with all
|
||||
configurable settings preserved.
|
||||
|
||||
This will set up Webmin to run directly from this directory. After running
|
||||
setup.sh, do not delete the directory as it contains all the scripts and
|
||||
programs that will be used by Webmin when it is running. Unlike in the second
|
||||
installation method, the Webmin scripts do not get copied to another
|
||||
location when installing.
|
||||
|
||||
2) By running the setup.sh script in this directory, but with a command-line
|
||||
argument such as /usr/local/webmin . When a directory like this is provided,
|
||||
Webmin's scripts will be copied to the chosen directory and it will be
|
||||
configured to run from that location.
|
||||
|
||||
The exact same questions will be asked by setup.sh when it is run with
|
||||
a directory argument, and upgrading will work in the same way. If you
|
||||
are upgrading an old install, you should enter the same directory argument
|
||||
so that the new files overwrite the old in order to save disk space.
|
||||
|
||||
After Webmin has been installed to a specific directory using this method,
|
||||
the directory extracted from the tar.gz file can be safely deleted.
|
||||
|
||||
If you are installing Webmin on a Windows system, you must run the command
|
||||
perl setup.pl instead, as shell scripts will not typically run on a Windows
|
||||
system. The Windows version depends on several programs and modules that may
|
||||
not be part of the standard distribution. You will need the process.exe
|
||||
commmand, the sc.exe command and the Win32::Daemon Perl module.
|
||||
|
||||
For more information, see http://www.webmin.com/
|
||||
|
||||
For documentation, see http://doxfer.webmin.com/
|
||||
|
||||
Jamie Cameron
|
||||
jcameron@webmin.com
|
||||
|
||||
53
README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
## Contents
|
||||
* [Changelog](https://github.com/webmin/webmin/blob/master/CHANGELOG.md)
|
||||
* [About](#about)
|
||||
* [Installation](#installation)[<img src="https://github.com/webmin-devel/webmin/blob/master/media/download-23x14-stable.png?raw=true" title="Stable Versions">](http://webmin.com/download.html)[<img src="https://github.com/webmin-devel/webmin/blob/master/media/download-23x14-devel.png?raw=true" title="Development Versions">](http://webmin.com/devel.html)
|
||||
* [Documentation](#documentation)
|
||||
* [Development](#development)
|
||||
* [License](#license)
|
||||
|
||||
## About
|
||||
|
||||
**Webmin** is a web-based system administration tool for Unix-like servers, and services with over _1,000,000_ installations worldwide. Using it, it is possible to configure operating system internals, such as users, disk quotas, services or configuration files, as well as modify, and control open-source apps, such as BIND DNS Server, Apache HTTP Server, PHP, MySQL, and [many more](https://doxfer.webmin.com/Webmin/Introduction).
|
||||
|
||||

|
||||
|
||||
Usability can be expanded by installing modules, which can be custom made. Aside from this, there are two other major projects that extend its functionality:
|
||||
|
||||
* [Virtualmin](https://www.virtualmin.com) is a powerful, flexible, most popular, and most comprehensive web-hosting control panel for Linux, and BSD systems, with over _100,000_ installations worldwide. It is available in an open-source community-supported version, and a more feature-filled version with premium support;
|
||||
* [Usermin](https://github.com/webmin/usermin) presents and controls a subset of user-centred features, rather than administrator-level tasks.
|
||||
|
||||
Webmin includes _116_ [standard modules](https://doxfer.webmin.com/Webmin/Webmin_Modules), and there are at least as many third-party modules.
|
||||
|
||||
|
||||
### Requirements
|
||||
Perl 5.10 or higher.
|
||||
|
||||
## Installation
|
||||
Webmin can be installed in two different ways:
|
||||
|
||||
1. By downloading a pre-built package, available for different distributions (CentOS, Fedora, SuSE, Mandriva, Debian, Ubuntu, Solaris and [other](http://www.webmin.com/support.html)) from our [download page](http://webmin.com/download.html);
|
||||
<kbd>Note: It is highly recommended to [add repository](https://doxfer.webmin.com/Webmin/Installation) to your system for having automatic updates.</kbd>
|
||||
|
||||
2. By downloading, extracting [source file](https://prdownloads.sourceforge.net/webadmin/webmin-1.941.tar.gz), and running [_setup.sh_](http://www.webmin.com/tgz.html) script, with no arguments, which will setup to run it directly from this directory, or with a command-line argument, such as targeted directory.
|
||||
<kbd>Note: If you are installing Webmin [on Windows](http://www.webmin.com/windows.html) system, you must run the command `perl setup.pl` instead. The Windows version depends on several programs, and modules that may not be part of the standard distribution. You will need _process.exe_ commmand, _sc.exe_ command, and _Win32::Daemon_ Perl module.</kbd>
|
||||
|
||||
## Documentation
|
||||
Complete set of documentation for Webmin and all of its modules can be found at out [Wiki page](https://doxfer.webmin.com/Webmin/Main_Page).
|
||||
|
||||
## Development
|
||||
|
||||
### Lead developer
|
||||
|
||||
* [Jamie Cameron](http://www.webmin.com/about.html) [](https://www.linkedin.com/in/jamiecameron2)
|
||||
|
||||
### Contributors
|
||||
|
||||
* [Joe Cooper](https://github.com/swelljoe)
|
||||
* [Ilia Rostovtsev](https://github.com/rostovtsev)
|
||||
* [Kay Marquardt](https://github.com/gnadelwartz)
|
||||
* [Nawawi Jamili](https://github.com/nawawi) + [57 more..](https://github.com/webmin/webmin/graphs/contributors)
|
||||
|
||||
## License
|
||||
|
||||
Webmin is released under the [BSD License](https://github.com/webmin/webmin/blob/master/LICENCE).
|
||||
104
RELEASE
@@ -1,104 +0,0 @@
|
||||
Release Checklist
|
||||
-----------------
|
||||
|
||||
x Check all .cgi and .pl files for syntax errors!
|
||||
find . -name "*.cgi" | grep -v shellinabox.cgi | grep -v thirdparty-cgi-scripts | grep -v ipweb | grep -v ipcache | grep -v thejax-theme | xargs -l1 perl -c |& grep -v OK
|
||||
find . -name "*.pl" | grep -v config.info | grep -v makemodulerpm.pl | grep -v ipcache | grep -v swell-tsunami-theme | grep -v Authen-SolarisRBAC-0.1 | grep -v virtualmin-nuvola | grep -v win32.pl | grep -v asterisk | grep -v server-manager | grep -v thejax-theme | grep -v exim | grep -v Webmin-API-1.0 | xargs -l1 perl -c |& grep -v OK
|
||||
|
||||
x Make sure all cgi programs are executable
|
||||
find . -name "*.cgi" | xargs chmod +x
|
||||
|
||||
x Make sure all files are world-readable, but not world-writable
|
||||
find . -type f | grep -v shellinabox | grep -v asterisk | xargs chmod +r
|
||||
find . -type f | grep -v shellinabox | grep -v asterisk | xargs chmod o-w
|
||||
find . -type d | grep -v shellinabox | grep -v asterisk | xargs chmod +rx
|
||||
find . -type d | grep -v shellinabox | grep -v asterisk | xargs chmod o-w
|
||||
|
||||
x Delete all ~, .rej and .orig files
|
||||
find . -name "*~" -o -name "*.rej" -o -name "*.orig" -o -name ".*.swp" | xargs rm
|
||||
|
||||
x Create and check in UTF-8 translations
|
||||
./chinese-to-utf8.pl
|
||||
find . -name '*.UTF-8*' | grep -v sccb- | xargs -l1 git add
|
||||
git commit ; git push
|
||||
|
||||
x Check language files for clashes
|
||||
langcheck.pl lang/en */lang/en | grep -v asterisk/lang | grep -v rae-mpp/lang
|
||||
|
||||
x Update README and version files
|
||||
|
||||
x Run Virtualmin tests
|
||||
x fudu
|
||||
x lentor
|
||||
x xencentos
|
||||
|
||||
x Build .tar.gz, minimal.tar.gz and Solaris, RPM and Debian packages
|
||||
|
||||
x Install on test system
|
||||
vm2 create-system --type kvm --host webmintest --kvm-host fudu.home --ssh-pass smeg --image kvm-centos5.4-base --desc "Webmin install test" --kvm-memory 256
|
||||
vm2 upload-file --host webmintest.home --source /usr/local/webadmin/rpm/webmin-$ver-1.noarch.rpm --dest /tmp/webmin.rpm
|
||||
vm2 run-command --host webmintest.home "/etc/init.d/iptables stop ; chkconfig iptables off"
|
||||
vm2 run-command --host webmintest.home "rpm -U /tmp/webmin.rpm"
|
||||
vm2 refresh-systems --host webmintest.home
|
||||
vm2 reboot-system --host webmintest.home
|
||||
vm2 refresh-systems --host webmintest.home
|
||||
vm2 run-command --host webmintest.home "rpm -U --force /tmp/webmin.rpm"
|
||||
vm2 refresh-systems --host webmintest.home
|
||||
vm2 delete-system --host webmintest.home
|
||||
|
||||
x Upload files to sourceforge
|
||||
/usr/local/webadmin/copy-devels.sh
|
||||
Create new dir at https://sourceforge.net/projects/webadmin/files/webmin/
|
||||
scp /tmp/devel/*/*$ver* jcameron,webadmin@frs.sourceforge.net:/home/frs/project/w/we/webadmin/webmin/$ver/
|
||||
Set default downloads for files at https://sourceforge.net/projects/webadmin/files/webmin/
|
||||
|
||||
x Upload signatures to sourceforge (with copy-sigs.sh)
|
||||
|
||||
x Update .htaccess redirects in download directory on sourceforge
|
||||
scp .htaccess web.sourceforge.net:htdocs/.htaccess
|
||||
|
||||
x Copy module .wbm files to sourceforge (with modules-release.sh)
|
||||
|
||||
x Upload Debian files to site, with :
|
||||
scp deb/webmin_*.dsc deb/webmin_*.diff webadmin@download.webmin.com:domains/download.webmin.com/public_html/download/deb/
|
||||
|
||||
x Generate MD5 checksums with :
|
||||
cd ~/webmin.com ; ./make-md5.pl $ver >md5.html
|
||||
|
||||
x Update and upload website HTML, including lang.html, support.html
|
||||
and standard.html
|
||||
Need to run makestandard.pl, makesupport.pl and lang_table.pl
|
||||
|
||||
x Update freshmeat.net entry
|
||||
|
||||
x Send to mailing list
|
||||
|
||||
x Add new modules to thirdpartymodules.com
|
||||
|
||||
x Update versions on thirdpartymodules.com at https://mysql-w.sourceforge.net/
|
||||
- w30065admin / 1diamond
|
||||
- update webminmodules set version = XXX where standard = 'Y'
|
||||
|
||||
x Add version to bug tracker
|
||||
- https://sourceforge.net/tracker/admin/?group_id=17457
|
||||
|
||||
x Add new modules to bug tracker
|
||||
|
||||
n Notify mirror site owners at webmin-mirrors@webmin.com
|
||||
|
||||
x Copy APT repository with commands (on lentor)
|
||||
/usr/local/download/deb/repository/make-repo.sh
|
||||
rsync -rv --rsh=ssh --delete /usr/local/download/deb/repository webadmin@download.webmin.com:domains/download.webmin.com/public_html/download
|
||||
|
||||
x Create YUM repository with commands
|
||||
/usr/local/download/rpm/yum/make-repo.sh
|
||||
rsync -rv --rsh=ssh /usr/local/download/rpm/yum webadmin@download.webmin.com:domains/download.webmin.com/public_html/download
|
||||
|
||||
- Tell Joe
|
||||
|
||||
x Facebook
|
||||
|
||||
x Update Cloudmin repos
|
||||
x RPM
|
||||
x .wbm
|
||||
x Debian
|
||||
@@ -64,3 +64,5 @@ Converted all pages to use the common Webmin UI library for a more consistent in
|
||||
Made all code Perl strict and warnings compliant.
|
||||
---- Changes since 1.670 ----
|
||||
Added a button for adding multiple Webmin users to a group.
|
||||
---- Changes since 1.930 ----
|
||||
Added support for creating "safe-mode" Webmin users who have access only to modules and permissions that don't grant root access.
|
||||
|
||||
@@ -362,6 +362,7 @@ sub create_user
|
||||
my ($user, $clone) = @_;
|
||||
my %miniserv;
|
||||
my @mods = &list_modules();
|
||||
$user->{'name'} eq "webmin" && &error("Invalid username webmin for new user");
|
||||
|
||||
&get_miniserv_config(\%miniserv);
|
||||
|
||||
@@ -530,6 +531,8 @@ sub modify_user
|
||||
my ($username, $user) = @_;
|
||||
my (%miniserv, @pwfile, @acl, @mods, $m);
|
||||
&get_miniserv_config(\%miniserv);
|
||||
$user->{'name'} eq "webmin" &&
|
||||
&error("Invalid username webmin for modified user");
|
||||
|
||||
if ($user->{'proto'}) {
|
||||
# In users and groups DB
|
||||
@@ -752,9 +755,9 @@ my ($user, $oldpass, $miniserv) = @_;
|
||||
if ($oldpass ne $user->{'pass'} &&
|
||||
"!".$oldpass ne $user->{'pass'} &&
|
||||
$oldpass ne "!".$user->{'pass'} &&
|
||||
$user->{'pass'} ne 'x' &&
|
||||
$user->{'pass'} ne 'e' &&
|
||||
$user->{'pass'} ne '*LK*') {
|
||||
$oldpass ne 'x' &&
|
||||
$oldpass ne 'e' &&
|
||||
$oldpass ne '*LK*') {
|
||||
# Password change detected .. update change time
|
||||
# and save the old one
|
||||
my $nolock = $oldpass;
|
||||
@@ -2164,5 +2167,16 @@ foreach $a (split(/\s+/, $miniserv{'anonymous'})) {
|
||||
return @rv;
|
||||
}
|
||||
|
||||
# get_safe_acl(module)
|
||||
# Returns the safe ACL hash ref for a module, if there is one, or undef
|
||||
sub get_safe_acl
|
||||
{
|
||||
my ($m) = @_;
|
||||
my $mdir = &module_root_directory($m);
|
||||
my %rv;
|
||||
&read_file_cached("$mdir/safeacl", \%rv) || return undef;
|
||||
return \%rv;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
order=Trier les utilisateurs et les groupes par,1,0-Ordre dans le fichier,1-Nom
|
||||
line1=Options configurables,11
|
||||
ssleay=Chemin d'accès au programme openssl ou ssleay,3,Automatique
|
||||
line2=Configuration du système,11
|
||||
display=Mode d'affichage des utilisateurs et des groupes,1,1-Noms seulement,0-Noms et modules
|
||||
@@ -54,17 +54,26 @@ if ($in{'mod'} && $in{'user'} && &supports_rbac($in{'mod'}) &&
|
||||
[ 0, $text{'no'} ] ]), 3);
|
||||
}
|
||||
|
||||
if ($in{'mod'}) {
|
||||
# Load custom ACL library
|
||||
my $mdir = &module_root_directory($in{'mod'});
|
||||
if (-r "$mdir/acl_security.pl") {
|
||||
&foreign_require($in{'mod'}, "acl_security.pl");
|
||||
}
|
||||
|
||||
my $shown_config = 0;
|
||||
if ($in{'mod'} && -r "$mdir/config.info" &&
|
||||
(!&foreign_defined($in{'mod'}, "acl_security_noconfig") ||
|
||||
!&foreign_call($in{'mod'}, "acl_security_noconfig"))) {
|
||||
# Show module config editing option
|
||||
print &ui_table_row($text{'acl_config'},
|
||||
&ui_radio("noconfig", $maccess{'noconfig'} ? 1 : 0,
|
||||
[ [ 0, $text{'yes'} ], [ 1, $text{'no'} ] ]), 3);
|
||||
$shown_config = 1;
|
||||
}
|
||||
|
||||
my $mdir = &module_root_directory($in{'mod'});
|
||||
# Show custom ACL form
|
||||
if (-r "$mdir/acl_security.pl") {
|
||||
print &ui_table_hr() if ($in{'mod'});
|
||||
&foreign_require($in{'mod'}, "acl_security.pl");
|
||||
print &ui_table_hr() if ($shown_config);
|
||||
&foreign_call($in{'mod'}, "load_theme_library");
|
||||
&foreign_call($in{'mod'}, "acl_security_form", \%maccess);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ our (%in, %text, %config, %access, $config_directory, $base_remote_user);
|
||||
&foreign_require("webmin", "webmin-lib.pl");
|
||||
|
||||
&ReadParse();
|
||||
my ($u, %user);
|
||||
my ($u, %user, $safe);
|
||||
if ($in{'user'}) {
|
||||
# Editing an existing user
|
||||
&can_edit_user($in{'user'}) || &error($text{'edit_euser'});
|
||||
@@ -17,20 +17,27 @@ if ($in{'user'}) {
|
||||
$u = &get_user($in{'user'});
|
||||
$u || &error($text{'edit_egone'});
|
||||
%user = %$u;
|
||||
my %gacl = &get_module_acl($in{'user'}, '');
|
||||
$safe = $gacl{'_safe'};
|
||||
}
|
||||
else {
|
||||
# Creating a new user
|
||||
$access{'create'} || &error($text{'edit_ecreate'});
|
||||
&ui_print_header(undef, $text{'edit_title2'}, "");
|
||||
if ($in{'clone'}) {
|
||||
# Initial settings come from clone
|
||||
$u = &get_user($in{'clone'});
|
||||
%user = %$u;
|
||||
delete($user{'name'});
|
||||
my %gacl = &get_module_acl($in{'clone'}, '');
|
||||
$safe = $gacl{'_safe'};
|
||||
}
|
||||
else {
|
||||
# User starts out empty
|
||||
%user = ( );
|
||||
$safe = $in{'safe'};
|
||||
}
|
||||
&ui_print_header(undef, $safe ? $text{'edit_title3'}
|
||||
: $text{'edit_title2'}, "");
|
||||
}
|
||||
my $me = &get_user($base_remote_user);
|
||||
|
||||
@@ -51,6 +58,7 @@ if ($in{'user'}) {
|
||||
if ($in{'clone'}) {
|
||||
print &ui_hidden("clone", $in{'clone'});
|
||||
}
|
||||
print &ui_hidden("safe", $safe);
|
||||
print &ui_hidden_table_start($text{'edit_rights'}, "width=100%", 2, "rights",
|
||||
1, [ "width=30%" ]);
|
||||
|
||||
@@ -155,6 +163,17 @@ if ($in{'user'}) {
|
||||
$text{'edit_proto_'.($user{'proto'} || '')});
|
||||
}
|
||||
|
||||
# Safe or not?
|
||||
my $smsg;
|
||||
if ($in{'user'} && $safe) {
|
||||
$smsg = &ui_radio("unsafe", 0, [ [ 0, $text{'edit_safe1'} ],
|
||||
[ 1, $text{'edit_safe0'} ] ]);
|
||||
}
|
||||
else {
|
||||
$smsg = $safe ? $text{'edit_safe1'} : $text{'edit_safe0'};
|
||||
}
|
||||
print &ui_table_row($text{'edit_safe'}, $smsg);
|
||||
|
||||
print &ui_hidden_table_end("rights");
|
||||
|
||||
# Start of UI options section
|
||||
@@ -332,9 +351,16 @@ my @groups = &list_groups();
|
||||
print &ui_hidden_table_start(@groups ? $text{'edit_modsg'} : $text{'edit_mods'},
|
||||
"width=100%", 2, "mods");
|
||||
|
||||
# Build list of modules, based on safe mode
|
||||
my @allmods = &list_module_infos();
|
||||
if ($safe) {
|
||||
@allmods = grep { $has{$_->{'dir'}} ||
|
||||
&get_safe_acl($_->{'dir'}) } @allmods;
|
||||
}
|
||||
|
||||
# Show available modules, under categories
|
||||
my @mlist = grep { $access{'others'} || $has{$_->{'dir'}} ||
|
||||
$mcan{$_->{'dir'}} } &list_module_infos();
|
||||
$mcan{$_->{'dir'}} } @allmods;
|
||||
my @links = ( &select_all_link("mod", 0, $text{'edit_selall'}),
|
||||
&select_invert_link("mod", 0, $text{'edit_invert'}) );
|
||||
my @cats = &unique(map { $_->{'category'} || '' } @mlist);
|
||||
@@ -359,7 +385,7 @@ foreach my $c (sort { $b cmp $a } @cats) {
|
||||
}
|
||||
elsif ($mcan{$md}) {
|
||||
my $label;
|
||||
if ($access{'acl'} && $in{'user'}) {
|
||||
if ($access{'acl'} && $in{'user'} && !$safe) {
|
||||
# Show link for editing ACL
|
||||
$label = ui_link("edit_acl.cgi?" .
|
||||
"mod=" . urlize($m->{'dir'}) .
|
||||
@@ -387,7 +413,7 @@ print &ui_hidden_table_end("mods");
|
||||
|
||||
# Add global ACL section, but only if not set from the group
|
||||
my $groupglobal = $memg && -r "$config_directory/$memg->{'name'}.acl";
|
||||
if ($access{'acl'} && !$groupglobal && $in{'user'}) {
|
||||
if ($access{'acl'} && !$groupglobal && $in{'user'} && !$safe) {
|
||||
print &ui_hidden_table_start($text{'edit_global'}, "width=100%", 2,
|
||||
"global", 0, [ "width=30%" ]);
|
||||
my %uaccess;
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -54,7 +54,10 @@ if (!@canulist) {
|
||||
print &ui_subheading($text{'index_users'})
|
||||
if (!$config{'display'});
|
||||
print "<b>$text{'index_nousers'}</b><p>\n";
|
||||
print ui_link("edit_user.cgi", $text{'index_create'}) . "\n";
|
||||
print &ui_links_row([
|
||||
&ui_link("edit_user.cgi", $text{'index_create'}),
|
||||
&ui_link("edit_user.cgi?ssfe=1", $text{'index_screate'})
|
||||
]);
|
||||
$shown_users = 1;
|
||||
}
|
||||
}
|
||||
@@ -64,7 +67,8 @@ elsif ($config{'display'}) {
|
||||
print &ui_form_start("delete_users.cgi", "post");
|
||||
&show_name_table(\@canulist, "edit_user.cgi",
|
||||
$access{'create'} ? $text{'index_create'} : undef,
|
||||
$text{'index_users'}, "user");
|
||||
$text{'index_users'}, "user",
|
||||
$access{'create'} ? $text{'index_screate'} : undef);
|
||||
print &ui_form_end([ [ "delete", $text{'index_delete'} ],
|
||||
@gbut ]);
|
||||
$shown_users = 1;
|
||||
@@ -77,7 +81,8 @@ else {
|
||||
print &ui_form_start("delete_users.cgi", "post");
|
||||
push(@rowlinks, &select_all_link("d", $form),
|
||||
&select_invert_link("d", $form));
|
||||
push(@rowlinks, ui_link("edit_user.cgi", $text{'index_create'}))
|
||||
push(@rowlinks, ui_link("edit_user.cgi", $text{'index_create'}),
|
||||
ui_link("edit_user.cgi?safe=1", $text{'index_screate'}))
|
||||
if ($access{'create'});
|
||||
print &ui_links_row(\@rowlinks);
|
||||
|
||||
@@ -251,20 +256,24 @@ $rv .= &ui_grid_table(\@grid, 3, 100,
|
||||
return $rv;
|
||||
}
|
||||
|
||||
# show_name_table(&users|&groups, cgi, create-text, header-text, param)
|
||||
# show_name_table(&users|&groups, cgi, create-text, header-text, param,
|
||||
# safe-text)
|
||||
sub show_name_table
|
||||
{
|
||||
my ($users, $cgi, $ctext, $htext, $param, $stext) = @_;
|
||||
|
||||
# Show table of users, and maybe create links
|
||||
my @rowlinks = ( &select_all_link("d", $form),
|
||||
&select_invert_link("d", $form) );
|
||||
push(@rowlinks, ui_link("$_[1]", $_[2])) if ($_[2]);
|
||||
push(@rowlinks, ui_link($cgi, $ctext)) if ($ctext);
|
||||
push(@rowlinks, ui_link($cgi."?safe=1", $stext)) if ($stext);
|
||||
print &ui_links_row(\@rowlinks);
|
||||
my @links;
|
||||
for(my $i=0; $i<@{$_[0]}; $i++) {
|
||||
push(@links, &user_link($_[0]->[$i], $_[1], $_[4]));
|
||||
for(my $i=0; $i<@$users; $i++) {
|
||||
push(@links, &user_link($users->[$i], $cgi, $param));
|
||||
}
|
||||
print &ui_grid_table(\@links, 4, 100,
|
||||
[ "width=25%", "width=25%", "width=25%", "width=25%" ], undef, $_[3]);
|
||||
[ "width=25%", "width=25%", "width=25%", "width=25%" ], undef, $htext);
|
||||
print &ui_links_row(\@rowlinks);
|
||||
}
|
||||
|
||||
|
||||
16
acl/lang/ca
@@ -30,7 +30,7 @@ index_eglist=No s'han pogut llistar els grups: $1
|
||||
|
||||
edit_title=Edició d'Usuari Webmin
|
||||
edit_title2=Creació d'Usuari Webmin
|
||||
edit_readonly=Aquest usuari Webmin no s'hauria d'editar, per tal com es troba gestionat pel mòdul $1. <a href='$2'>Fés clic aquí</a> per ignorar aquest avís i editar l'usuari - però tingues en compte que els canvis manuals poden ser reescrits!
|
||||
edit_readonly=Aquest usuari Webmin no s'hauria d'editar, per tal com es troba gestionat pel mòdul $1. <a href='$2'>Fes clic aquí</a> per ignorar aquest avís i editar l'usuari - però tingues en compte que els canvis manuals poden ser reescrits!
|
||||
edit_rights=Drets d'accés de l'usuari Webmin
|
||||
edit_user=Usuari
|
||||
edit_cloneof=Clonació de l'usuari Webmin
|
||||
@@ -56,7 +56,7 @@ edit_twofactorcancel=Elimina el requeriment d'autenticaci
|
||||
edit_twofactornone=Encara no n'hi ha cap de configurada
|
||||
edit_twofactoradd=Activa Dos Factors Per a l'Usuari
|
||||
edit_lang=Idioma
|
||||
edit_notabs=Categorització de mòduls
|
||||
edit_notabs=Categoritza els mòduls
|
||||
edit_logout=Temps d'expulsió per inactivitat
|
||||
edit_mins=minuts
|
||||
edit_chars=lletres
|
||||
@@ -151,7 +151,7 @@ delete_eanonuser=Aquest usuari s'est
|
||||
cert_title=Petició de Certificat
|
||||
cert_issue=Emissió de Certificat
|
||||
cert_header=Detalls del nou certificat
|
||||
cert_msg=Aquest formulari permet demanar un cerfificat client SSL que s'utilitzarà en el futur per concedir-te l'accés a Webmin, en lloc del teu nom d'usuari i contrasenya. Això és més segur, però com que l'autenticació és automàtica, no podràs canviar a un usuari diferent utilitzant el certificat.
|
||||
cert_msg=Aquest formulari permet demanar un certificat client SSL que s'utilitzarà en el futur per concedir-te l'accés a Webmin, en lloc del teu nom d'usuari i contrasenya. Això és més segur, però com que l'autenticació és automàtica, no podràs canviar a un usuari diferent utilitzant el certificat.
|
||||
cert_ebrowser=Webmin no sap com generar certificats client per al teu navegador ($1)
|
||||
cert_cn=El teu nom
|
||||
cert_email=La teva adreça e-mail
|
||||
@@ -188,7 +188,7 @@ acl_own=Nom
|
||||
acl_sel=Mòduls seleccionats...
|
||||
acl_create=Pot crear usuaris nous
|
||||
acl_delete=Pot suprimir usuaris
|
||||
acl_rename=Pot renomenar usuaris
|
||||
acl_rename=Pot reanomenar usuaris
|
||||
acl_acl=Pot editar el control d'accés al mòdul
|
||||
acl_lang=Pot canviar l'idioma
|
||||
acl_chcert=Pot canviar el nom del certificat SSL
|
||||
@@ -344,7 +344,7 @@ sessions_login=Darrera activitat a
|
||||
sessions_host=Adreça IP
|
||||
sessions_lview=Visualitza els registres...
|
||||
sessions_actions=Accions...
|
||||
sessions_logouts=Mostra també les sessións desconnectades...
|
||||
sessions_logouts=Mostra també les sessions desconnectades...
|
||||
sessions_state=Estat
|
||||
sessions_this=Aquesta entrada
|
||||
sessions_in=Connectat
|
||||
@@ -366,7 +366,7 @@ switch_eold=No s'ha trobat la sessi
|
||||
rbac_title=Configuració de RBAC
|
||||
rbac_desc=La integració de Webmin amb RBAC proporciona una forma de determinar els permisos d'ACL i mòduls d'usuari des d'una base de dades RBAC (Role Based Access Control), en lloc d'utilitzar els fitxers propis de configuració de Webmin. Un cop s'ha activat el suport RBAC, tot usuari per al qual s'hagi seleccionat l'opció <b>RBAC controla totes les ACLs i mòduls</b> tindrà les seves capacitats determinades per RBAC en lloc de la configuració de control d'accés de Webmin.
|
||||
rbac_esolaris=De moment, RBAC només està suportat per Solaris, així que no es pot utilitzar en aquest sistema $1.
|
||||
rbac_eperl=El mòdul Perl $1 necessari per a la integració amb RBAC no està instal·lat. Fés clic <a href='$2'>aquí</a> per instal·lar-lo ara.
|
||||
rbac_eperl=El mòdul Perl $1 necessari per a la integració amb RBAC no està instal·lat. Fes clic <a href='$2'>aquí</a> per instal·lar-lo ara.
|
||||
rbac_ecpan=No tens accés a la pàgina de Mòduls Perl de Webmin per tal d'instal·lar el mòdul $1 necessari per a la integració amb RBAC.
|
||||
rbac_ok=La integració amb RBAC està disponible en aquest sistema, i es pot activar en base a cada usuari a la pàgina d'Edició d'Usuaris Webmin.
|
||||
|
||||
@@ -408,7 +408,7 @@ pass_emaxdays=Hi falta el nombre de dies abans del canvi de contrasenya o b
|
||||
pass_elockdays=Hi falta el nombre de dies abans del bloqueig de compte o bé és invàlid
|
||||
pass_eoldblock=Hi falta el nombre de contrasenyes antigues a rebutjar o bé és invàlid
|
||||
|
||||
cpass_minsize=Ha de ternir almenys $1 lletres de llarg
|
||||
cpass_minsize=Ha de tenir almenys $1 lletres de llarg
|
||||
cpass_notre=Coincideix amb un patró rebutjat
|
||||
cpass_re=No coincideix amb el patró demanat
|
||||
cpass_name=Conté el nom d'usuari
|
||||
@@ -451,7 +451,7 @@ sql_eprefix=Hi falta el DN base o b
|
||||
sql_eprefix2=El DN base sembla invàlid - ha de ser una cosa com ara <tt>dc=elmeudomini,dc=com</tt>
|
||||
sql_title2=Creació de les Taules que Falten
|
||||
sql_tableerr=Els paràmetres de la base de dades d'usuaris i grups són vàlids, però hi falten algunes taules que Webmin necessita: $1
|
||||
sql_tableerr2=Fes clic al botó <b>Crea les Taules</b> de sota per fer que es creïn automàticamebnt, o bé executa manualment el SQL d'aquí sota.
|
||||
sql_tableerr2=Fes clic al botó <b>Crea les Taules</b> de sota per fer que es creïn automàticament, o bé executa manualment el SQL d'aquí sota.
|
||||
sql_make=Crea les Taules
|
||||
sql_title3=Creació del DN que Falta
|
||||
sql_dnerr=Els paràmetres de la base de dades d'usuaris i grups són vàlids, però hi falta el DN LDAP que Webmin necessita: $1
|
||||
|
||||
@@ -466,3 +466,10 @@ unix_to=Als Webminbenutzer
|
||||
unix_user=Unixbenutzer ..
|
||||
unix_utable=Erlaubte Unix Benutzer
|
||||
unix_who=Benutzer oder Gruppe
|
||||
index_screate=Erzeuge neuen sicheren Benutzer.
|
||||
edit_title3=Erzeuge sicheren Webmin Benutzer
|
||||
edit_safe=Privileg Stufe
|
||||
edit_safe0=Unbeschränkt
|
||||
edit_safe1=Nur Sichere Module
|
||||
edit_unsafe=Zurücksetzen auf unbeschränkt
|
||||
save_eunixname='$1' ist kein System Benuter und kann daher nicht im sicheren Modus genutzt werden
|
||||
|
||||
10
acl/lang/en
@@ -1,8 +1,8 @@
|
||||
index_title=Webmin Users
|
||||
index_user=User
|
||||
index_modules=Modules
|
||||
index_create=Create a new Webmin user.
|
||||
index_rcreate=Create a new risk-level user.
|
||||
index_create=Create a new privileged user.
|
||||
index_screate=Create a new safe user.
|
||||
index_convert=Convert Unix To Webmin Users
|
||||
index_cert=Request an SSL Certificate
|
||||
index_twofactor=Two-Factor Authentication
|
||||
@@ -30,6 +30,7 @@ index_eglist=Failed to list groups : $1
|
||||
|
||||
edit_title=Edit Webmin User
|
||||
edit_title2=Create Webmin User
|
||||
edit_title3=Create Safe Webmin User
|
||||
edit_readonly=This Webmin user should not be edited as it is managed by the $1 module. <a href='$2'>Click here</a> to bypass this warning and edit the user anyway - but beware that any manual changes may be over-written!
|
||||
edit_rights=Webmin user access rights
|
||||
edit_user=Username
|
||||
@@ -111,9 +112,14 @@ edit_proto_mysql=MySQL database
|
||||
edit_proto_postgresql=PostgreSQL database
|
||||
edit_proto_ldap=LDAP server
|
||||
edit_proto_=Local files
|
||||
edit_safe=Privilege level
|
||||
edit_safe0=Unrestricted
|
||||
edit_safe1=Safe modules only
|
||||
edit_unsafe=Reset to unrestricted
|
||||
|
||||
save_err=Failed to save user
|
||||
save_ename='$1' is not a valid username
|
||||
save_eunixname=The username '$1' is not a Unix user, and so cannot be used in safe mode
|
||||
save_enamewebmin=The username 'webmin' is reserved for internal use
|
||||
save_edup=The username '$1' is already in use
|
||||
save_eoverlay=A theme overlay cannot be selected unless a theme is
|
||||
|
||||
@@ -1,358 +0,0 @@
|
||||
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=<Comme utilisateur ou groupe>
|
||||
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
|
||||
@@ -1,4 +1,3 @@
|
||||
risk=high
|
||||
name=AdminUsers
|
||||
category=webmin
|
||||
desc=Webmin Users
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
desc_cz.UTF-8=Uživatelé Webminu
|
||||
@@ -1 +0,0 @@
|
||||
desc_fr.UTF-8=Utilisateurs Webmin
|
||||
@@ -1 +0,0 @@
|
||||
desc_hu.UTF-8=Webmin felhasználók
|
||||
@@ -1 +0,0 @@
|
||||
desc_ja_JP.UTF-8=Webmin ユーザ
|
||||
@@ -1 +0,0 @@
|
||||
desc_ko_KR.UTF-8=Webmin 사용자
|
||||
@@ -1 +0,0 @@
|
||||
desc_pl.UTF-8=Użytkownicy Webmina
|
||||
@@ -1 +0,0 @@
|
||||
desc_ru.UTF-8=Пользователи Webmin
|
||||
@@ -1 +0,0 @@
|
||||
desc_sk.UTF-8=Užívatelia Webminu
|
||||
@@ -1 +0,0 @@
|
||||
desc_zh_CN.UTF-8=Webmin 用户管理
|
||||
@@ -1 +0,0 @@
|
||||
desc_zh_TW.UTF-8=Webmin 使用者
|
||||
@@ -49,7 +49,9 @@ else {
|
||||
# Validate and store ACL settings
|
||||
&error_setup($text{'acl_err'});
|
||||
my %maccess;
|
||||
$maccess{'noconfig'} = $in{'noconfig'};
|
||||
if (defined($in{'noconfig'})) {
|
||||
$maccess{'noconfig'} = $in{'noconfig'};
|
||||
}
|
||||
if ($in{'rbac'}) {
|
||||
# RBAC overrides everything
|
||||
$maccess{'rbac'} = 1;
|
||||
|
||||
@@ -62,6 +62,10 @@ if (!$in{'old'} || $in{'old'} ne $in{'name'}) {
|
||||
$in{'logouttime'} =~ /^\d+$/ || &error($text{'save_elogouttime'});
|
||||
!$access{'minsize'} || $in{'minsize_def'} ||
|
||||
$in{'minsize'} =~ /^\d+$/ || &error($text{'save_eminsize'});
|
||||
if ($in{'safe'} && !$in{'unsafe'}) {
|
||||
getpwnam($in{'name'}) ||
|
||||
&error(&text('save_eunixname', &html_escape($in{'name'})));
|
||||
}
|
||||
|
||||
# Validate password
|
||||
if ($in{'pass_def'} == 0) {
|
||||
@@ -359,18 +363,41 @@ else {
|
||||
}
|
||||
}
|
||||
|
||||
if ($in{'old'} && $in{'acl_security_form'} && !$newgroup) {
|
||||
my $aclfile = "$config_directory/$in{'name'}.acl";
|
||||
if ($in{'old'} && $in{'acl_security_form'} && !$newgroup && !$in{'safe'}) {
|
||||
# Update user's global ACL
|
||||
&foreign_require("", "acl_security.pl");
|
||||
my %uaccess;
|
||||
&foreign_call("", "acl_security_save", \%uaccess, \%in);
|
||||
my $aclfile = "$config_directory/$in{'name'}.acl";
|
||||
&lock_file($aclfile);
|
||||
&save_module_acl(\%uaccess, $in{'name'}, "", 1);
|
||||
&set_ownership_permissions(undef, undef, 0640, $aclfile);
|
||||
&unlock_file($aclfile);
|
||||
}
|
||||
|
||||
# Clear safe setting
|
||||
if ($in{'unsafe'}) {
|
||||
&lock_file($aclfile);
|
||||
my %uaccess = &get_module_acl($in{'name'}, "", 1, 1);
|
||||
delete($uaccess{'_safe'});
|
||||
&save_module_acl(\%uaccess, $in{'name'}, "", 1);
|
||||
&unlock_file($aclfile);
|
||||
}
|
||||
|
||||
# If the user is in safe mode, set ACLs on all new modules
|
||||
if ($in{'safe'}) {
|
||||
foreach my $m ("", @mods) {
|
||||
my %macl = &get_module_acl($in{'name'}, $m, 0, 1);
|
||||
my $safe = &get_safe_acl($m);
|
||||
if (!%macl && $safe) {
|
||||
%macl = %$safe;
|
||||
$macl{'_safe'} = 1;
|
||||
$macl{'noconfig'} = 1;
|
||||
&save_module_acl(\%macl, $in{'name'}, $m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Log the event
|
||||
delete($in{'pass'});
|
||||
delete($in{'oldpass'});
|
||||
|
||||
@@ -46,6 +46,7 @@ if (@logins) {
|
||||
$state = "<font color=orange>$state</font>";
|
||||
}
|
||||
}
|
||||
$main::theme_allow_make_date = 1;
|
||||
$html .= &ui_columns_row([ $l->[2],
|
||||
&make_date($l->[1]),
|
||||
$state ]);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<header>Connexio sota petició</header>
|
||||
<header>Connexió sota petició</header>
|
||||
|
||||
Quan se selecciona No, la connexió ADSL només s'activarà quan es demani
|
||||
explícitament. Però si es tria Sí, s'activarà quan calgui, i es mantindrà
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<header>En connectar-se, activa el tallafocs</header>
|
||||
<header>En connectar-se, activa el tallafoc</header>
|
||||
|
||||
Aquest camp es pot utilitzar per fer que un tallafocs IPchains s'executi
|
||||
Aquest camp es pot utilitzar per fer que un tallafoc IPchains s'executi
|
||||
automàticament quan s'estableix la connexió ADSL. No obstant, es pot
|
||||
utilitzar en lloc seu el mòdul Tallafocs Linux de Webmin per crear i
|
||||
adaptar un tallafocs al teu gust. <p>
|
||||
utilitzar en lloc seu el mòdul Tallafoc Linux de Webmin per crear i
|
||||
adaptar un tallafoc al teu gust. <p>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ ADSL connectat a Ethernet que suporti el protocol PPPoE (PPP sobre
|
||||
Ethernet). No funcionarà amb mòdems ADSL connectats a USB ni amb aquells
|
||||
en mode pont. <p>
|
||||
|
||||
Abans de poder-lo utilitzar, has de tenir un compte amb un proveidor de
|
||||
Abans de poder-lo utilitzar, has de tenir un compte amb un proveïdor de
|
||||
serveis ADSL, i el teu mòdem ha d'estar connectat a una interfície Ethernet
|
||||
sense utilitzar del teu Linux. Aquesta interfície ha de ser visible al
|
||||
nucli, però no ha de tenir cap adreça IP assignada. <p>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -21,7 +21,7 @@ index_header=Opcions de la configuraci
|
||||
index_desc=Els valors de sota s'apliquen a qualsevol nova connexió ADSL activada pel sistema. Si els canvies, la connexió s'ha de desactivar i reactivar per tal que les modificacions tinguin efecte.
|
||||
index_eth=Interfície Ethernet
|
||||
index_other=Altres...
|
||||
index_demand=Connexio sota petició
|
||||
index_demand=Connexió sota petició
|
||||
index_timeout=Sí, amb un temps límit de
|
||||
index_secs=segons
|
||||
index_user=Identifica't com l'usuari
|
||||
@@ -31,7 +31,7 @@ index_save=Desa la configuraci
|
||||
index_mss=Limita la mida dels paquets
|
||||
index_psize=Sí, a
|
||||
index_bytes=bytes
|
||||
index_fw=En connectar-se, activa el tallafocs
|
||||
index_fw=En connectar-se, activa el tallafoc
|
||||
index_fw_none=Cap
|
||||
index_fw_standalone=Per a un sol host
|
||||
index_fw_masquerade=Per al portal NAT
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
desc_cz.UTF-8=Klient ADSL
|
||||
@@ -1 +0,0 @@
|
||||
desc_ja_JP.UTF-8=ADSL クライアント
|
||||
@@ -1 +0,0 @@
|
||||
desc_pl.UTF-8=Klient ADSL
|
||||
@@ -1 +0,0 @@
|
||||
desc_zh_TW.UTF-8=ADSL客戶端
|
||||
|
Before Width: | Height: | Size: 223 B |
@@ -5,10 +5,7 @@ use warnings;
|
||||
|
||||
BEGIN { push(@INC, ".."); };
|
||||
use WebminCore;
|
||||
|
||||
# Since this script is run on every keypress, init_config is intentionally
|
||||
# not called to reduce startup time.
|
||||
#&init_config();
|
||||
&init_config();
|
||||
|
||||
# Parse out port
|
||||
$ENV{'PATH_INFO'} =~ /^\/(\d+)(.*)$/ ||
|
||||
|
||||
@@ -879,7 +879,7 @@ foreach $e (@{$_[0]}) {
|
||||
$names = " (";
|
||||
foreach $ed (split(/\s+/, $e->{'name'})) {
|
||||
# nodo50 v0.1 - Change 000004 - Open new window for Help in Apache module and mod_apachessl Help from http://www.apache-ssl.org and
|
||||
# nodo50 v0.1 - Change 000004 - Abre nueva ventana para Ayuda del módulo Apache y para mod_apachessl busca la Ayuda en http://www.apache-ssl.org and
|
||||
# nodo50 v0.1 - Change 000004 - Abre nueva ventana para Ayuda del módulo Apache y para mod_apachessl busca la Ayuda en http://www.apache-ssl.org and
|
||||
$names .= "<tt>".&ui_link( ($e->{'module'} eq 'mod_apachessl' ? 'http://www.apache-ssl.org/docs.html#'.$ed : $apache_docbase."/".$e->{'module'}.".html#".lc($ed)), $ed )."</tt> ";
|
||||
#$names .= "<tt><a href='".$apache_docbase."/".$e->{'module'}.".html#".lc($ed)."'>".$ed."</a></tt> ";
|
||||
# nodo50 v0.1 - Change 000004 - End
|
||||
@@ -942,6 +942,7 @@ sub parse_opt
|
||||
{
|
||||
local($i, $re);
|
||||
local $v = $in{$_[0]};
|
||||
$v =~ /\r|\n|\0/ && &error($text{'enewline'});
|
||||
if ($in{"$_[0]_def"}) { return ( [ ] ); }
|
||||
for($i=1; $i<@_; $i+=2) {
|
||||
$re = $_[$i];
|
||||
@@ -979,8 +980,13 @@ return $rv;
|
||||
# parse_choice(name, default)
|
||||
sub parse_choice
|
||||
{
|
||||
if (lc($in{$_[0]}) eq lc($_[1])) { return ( [ ] ); }
|
||||
else { return ( [ $in{$_[0]} ] ); }
|
||||
if (lc($in{$_[0]}) eq lc($_[1])) {
|
||||
return ( [ ] );
|
||||
}
|
||||
else {
|
||||
$in{$_[0]} =~ /\r|\n|\0/ && &error($text{'enewline'});
|
||||
return ( [ $in{$_[0]} ] );
|
||||
}
|
||||
}
|
||||
|
||||
# select_input(value, name, default, [choice]+)
|
||||
@@ -1027,8 +1033,13 @@ return &ui_select($_[1], undef, \@sel, 1);
|
||||
# parse_handler(name)
|
||||
sub parse_handler
|
||||
{
|
||||
if ($in{$_[0]} eq "") { return ( [ ] ); }
|
||||
else { return ( [ $in{$_[0]} ] ); }
|
||||
if ($in{$_[0]} eq "") {
|
||||
return ( [ ] );
|
||||
}
|
||||
else {
|
||||
$in{$_[0]} =~ /\r|\n|\0/ && &error($text{'enewline'});
|
||||
return ( [ $in{$_[0]} ] );
|
||||
}
|
||||
}
|
||||
|
||||
# filters_input(&values, name)
|
||||
@@ -1054,6 +1065,7 @@ return $rv;
|
||||
# parse_filters(name)
|
||||
sub parse_filters
|
||||
{
|
||||
$in{$_[0]} =~ /\r|\n|\0/ && &error($text{'enewline'});
|
||||
local @f = split(/\0/, $in{$_[0]});
|
||||
return @f ? ( [ join(";", @f) ] ) : ( [ ] );
|
||||
}
|
||||
@@ -1155,7 +1167,7 @@ print "<p>\n";
|
||||
sub restart_button
|
||||
{
|
||||
local $rv;
|
||||
$args = "redir=".&urlize(&this_url());
|
||||
$args = "redir=".&urlize($gconfig{'webprefix'} . &this_url());
|
||||
local @rv;
|
||||
if (&is_apache_running()) {
|
||||
if ($access{'apply'}) {
|
||||
|
||||
@@ -7,7 +7,7 @@ virt_name=Patr
|
||||
link_dir=Directori per crear-hi enllaços per als nous servidors virtuals,3,Cap
|
||||
test_config=Comprova el fitxer de configuració abans d'aplicar els canvis,1,1-Sí,0-No
|
||||
test_manual=Comprova el fitxer de configuració després de fer canvis manuals,1,1-Sí,0-No
|
||||
test_always=Comprova el fitxer de configuraciço després d'altres canvis,1,1-Sí,0-No
|
||||
test_always=Comprova el fitxer de configuració després d'altres canvis,1,1-Sí,0-No
|
||||
test_apachectl=Prova la configuració amb l'ordre,1,1-<tt>apachectl configtest</tt>,0-<tt>httpd</tt> amb l'opció <tt>-D</tt>
|
||||
show_names=Mostra els noms de directives Apache,1,1-Sí,0-No
|
||||
apache_docbase=Directori base de la documentació d'Apache,3,Web d'Apache
|
||||
@@ -16,11 +16,11 @@ allow_virtualmin=Permet l'edici
|
||||
line2=Configuració del sistema,11
|
||||
httpd_dir=Directori arrel del servidor Apache,0
|
||||
httpd_path=Camí de l'executable httpd,0
|
||||
httpd_version=Versió Apache,3,Detécta-la automàticament
|
||||
httpd_version=Versió Apache,3,Detecta-la automàticament
|
||||
apachectl_path=Camí de l'ordre apachectl,3,Cap
|
||||
start_cmd=Ordre per iniciar Apache,3,Utilitza apachectl o inicia manualment
|
||||
stop_cmd=Ordre per aturar Apache,3,Utilitza apachectl o mata el procés
|
||||
apply_cmd=Ordre per aplicar la configuració,10,-Utilitza apachectl o senyal HUP,restart-Executa els ordres d'inici i aturada
|
||||
apply_cmd=Ordre per aplicar la configuració,10,-Utilitza apachectl o senyal HUP,restart-Executa les ordres d'inici i aturada
|
||||
graceful_cmd=Ordre per rellegir la configuració,3,La mateixa que per aplicar-la
|
||||
httpd_conf=Camí de httpd.conf o apache2.conf,3,Automàtic
|
||||
srm_conf=Camí de srm.conf,3,Automàtic
|
||||
@@ -28,6 +28,6 @@ access_conf=Cam
|
||||
mime_types=Camí de mime.types,3,Automàtic
|
||||
pid_file=Camí del fitxer de PID d'Apache,3,Determina'l automàticament
|
||||
line3=Variables d'Apache,11
|
||||
defines_file=Fitxer d'entorn que defineix les variabbles d'Apache,3,Cap
|
||||
defines_file=Fitxer d'entorn que defineix les variables d'Apache,3,Cap
|
||||
defines_name=Nom de la variable d'entorn al fitxer anterior,0
|
||||
defines_mods=Directoris que contenen els mòduls per a les variables HAVE_,9,40,3,\t
|
||||
|
||||
|
Before Width: | Height: | Size: 606 B |
@@ -9,7 +9,7 @@ index_tablist=Hosts virtuals existents
|
||||
index_tabcreate=Crea host virtual
|
||||
index_descglobal=Les opcions accedides fent clic sobre aquestes icones s'apliquen a tot el servidor Apache, incloent-hi tots els hosts virtuals.
|
||||
index_desclist=La llista de sota mostra tots els hosts virtuals Apache actualment definits, per als quals tens accés. L'entrada <b>Servidor per Defecte</b> defineix valors que s'apliquen a tots els altres hosts virtuals, a menys que s'obviïn.
|
||||
index_desccreate=Aquest formulari es pot utilitzar per afegir un nou host virtual Apache, que serveix el contingut d'un directori determinat en resposta a paticions per una adreça IP o nom de host particular.
|
||||
index_desccreate=Aquest formulari es pot utilitzar per afegir un nou host virtual Apache, que serveix el contingut d'un directori determinat en resposta a peticions per una adreça IP o nom de host particular.
|
||||
index_defserv=Servidor per Defecte
|
||||
index_defdesc1=Defineix els valors per defecte de tots els altres servidors virtuals, i processa qualsevol petició no gestionada.
|
||||
index_any=Qualsevol
|
||||
@@ -67,7 +67,7 @@ cvirt_ename='$1' no
|
||||
cvirt_eroot1=Has d'introduir l'arrel dels documents
|
||||
cvirt_eroot2=No s'ha pogut crear el directori '$1': $2
|
||||
cvirt_eroot3=No tens permís per utilitzar el directori arrel '$1'
|
||||
cvirt_eroot4=No hi ha cap usuari definit a la configuracio d'Apache
|
||||
cvirt_eroot4=No hi ha cap usuari definit a la configuració d'Apache
|
||||
cvirt_etaken=Ja existeix un servidor virtual amb el mateix nom i el mateix port
|
||||
cvirt_efile=No s'ha pogut escriure a $1: $2
|
||||
cvirt_emissing=S'ha afegit el nou servidor virtual a $1, però Apache no està utilitzant aquest fitxer. Comprova la <a href='$2'>configuració del mòdul</a> i assegura't que el 'Fitxer o directori on s'afegeixen els servidors virtuals' és correcte.
|
||||
@@ -190,7 +190,7 @@ type_9=Miscel
|
||||
type_10=Àlies i Redireccions
|
||||
type_11=Programes CGI
|
||||
type_12=Indexació de Directoris
|
||||
type_13=Proxies
|
||||
type_13=Proxys
|
||||
type_14=Opcions SSL
|
||||
type_15=Perl
|
||||
type_16=PHP
|
||||
@@ -241,7 +241,7 @@ htfile_header2=$1 de $2
|
||||
reconfig_title=Reconfiguració de Mòduls Coneguts
|
||||
reconfig_ecannot=No tens permís per reconfigurar l'Apache
|
||||
reconfig_ever=No s'ha pogut esbrinar la versió de l'executable servidor d'Apache $1. Comprova la <a href='$2'>configuració del mòdul</a> per assegurar que aquest és el camí correcte.
|
||||
reconfig_desc1=La configuració d'Apache ha canviat, o bé Webmin encara no l'ha examinat. A sota hi ha una llista de mòduls Apache suportats per Webmin amb els mòduls instal·lats seleccionats. Pots seleccionar o deseleccionar mòduls si la llista no és correcta.
|
||||
reconfig_desc1=La configuració d'Apache ha canviat, o bé Webmin encara no l'ha examinat. A sota hi ha una llista de mòduls Apache suportats per Webmin amb els mòduls instal·lats seleccionats. Pots seleccionar o desseleccionar mòduls si la llista no és correcta.
|
||||
reconfig_desc2=A sota hi ha una llista de mòduls Apache suportats per Webmin tal que tots aquells mòduls instal·lats estan seleccionats. Si estàs utilitzant mòduls carregats dinàmicament, llavors pot ser que hagis de seleccionar aquells que es carreguen dinàmicament.
|
||||
reconfig_desc3=Si no estàs segur/a de quins mòduls estan suportats per Apache, configura-ho de totes maneres, Webmin normalment pot determinar automàticament quins són els mòduls suportats.
|
||||
reconfig_ok=Configura
|
||||
@@ -459,7 +459,7 @@ core_eline=Mida de l
|
||||
core_epid=Fitxer de PID invàlid
|
||||
core_escore=Fitxer de puntuació invàlid
|
||||
core_sroot=Arrel del servidor
|
||||
core_group=Nom del group
|
||||
core_group=Nom del grup
|
||||
core_gid=ID del grup
|
||||
core_user=Nom de l'usuari
|
||||
core_uid=ID de l'usuari
|
||||
@@ -1091,7 +1091,7 @@ mod_band_client=Per als clients
|
||||
mod_band_all=Tots
|
||||
mod_band_ent=IP o domini
|
||||
mod_band_bandwidth=Límits d'amplada de banda del client
|
||||
mod_band_ebw='$1'no és un límit d'amplada de banda vàlid
|
||||
mod_band_ebw='$1' no és un límit d'amplada de banda vàlid
|
||||
mod_band_eclient=Hi falta la IP, xarxa o domini client per la límit '$1' d'amplada de banda o bé és invàlida
|
||||
mod_band_size=Mida mínima de fitxer
|
||||
mod_band_sizelimit=Límits d'amplada de banda de mides de fitxers
|
||||
|
||||
@@ -1068,3 +1068,4 @@ worker_ethreads=Anzahl der Threads pro Kindprozess muss eine Ganzzahl sein
|
||||
worker_maxspare=Maximale spare Threads
|
||||
worker_minspare=Minimale spare Threads
|
||||
worker_threads=Threads pro Kindprozess
|
||||
enewline=Ungueltiges Zeichen in der Eingabe
|
||||
|
||||
@@ -81,6 +81,7 @@ auth_return=access control
|
||||
default_serv=default server
|
||||
bytes=bytes
|
||||
eafter=Configuration verification failed : $1 Changes have not been saved.
|
||||
enewline=Invalid character in value
|
||||
|
||||
global_ecannot=You are not allowed to edit global options
|
||||
global_mime=Global MIME types list
|
||||
|
||||
1001
apache/lang/ru.UTF-8
@@ -40,6 +40,9 @@ my @sslprotos = ("SSLv2", "SSLv3", "TLSv1" );
|
||||
if ($httpd_modules{'core'} >= 2.215) {
|
||||
push(@sslprotos, "TLSv1.1", "TLSv1.2");
|
||||
}
|
||||
if ($httpd_modules{'core'} >= 2.437) {
|
||||
push(@sslprotos, "TLSv1.3");
|
||||
}
|
||||
return @sslprotos;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
risk=low medium high
|
||||
name=Apache
|
||||
category=servers
|
||||
os_support=solaris *-linux aix hpux freebsd osf1 irix unixware openserver macos openbsd netbsd windows
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
desc_cz.UTF-8=Apache WWW server
|
||||
@@ -1 +0,0 @@
|
||||
desc_hu.UTF-8=Apache Webkiszolgáló
|
||||
@@ -1 +0,0 @@
|
||||
desc_ja_JP.UTF-8=Apache Webサーバ
|
||||
@@ -1 +0,0 @@
|
||||
desc_ko_KR.UTF-8=Apache webServer
|
||||
@@ -1 +0,0 @@
|
||||
desc_pl.UTF-8=Serwer WWW Apache
|
||||
@@ -1 +0,0 @@
|
||||
desc_ru.UTF-8=Веб сервер Apache
|
||||
@@ -1 +0,0 @@
|
||||
desc_zh_CN.UTF-8=Apache 服务器
|
||||
@@ -1 +0,0 @@
|
||||
desc_zh_TW.UTF-8=Apache 網頁伺服器
|
||||
@@ -5,6 +5,7 @@
|
||||
require './apache-lib.pl';
|
||||
&ReadParse();
|
||||
($conf, $v) = &get_virtual_config($in{'virt'});
|
||||
&can_edit_virt($v) || &error($text{'virt_ecannot'});
|
||||
$desc = &text('virt_header', &virtual_name($v));
|
||||
&ui_print_header($desc, $text{'show_title'}, "");
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ if ($in{'virt'} && $access{'types'} eq '*') {
|
||||
"name" => $text{'virt_edit'},
|
||||
"link" => "manual_form.cgi?virt=$in{'virt'}" };
|
||||
}
|
||||
if ($v->{'value'} =~ /:80/ && $v->{'value'} !~ /:443/) {
|
||||
if ($v->{'value'} =~ /:80$/ || $v->{'value'} !~ /:/) {
|
||||
# Hide SSL icon for non-SSL sites
|
||||
$access_types{14} = 0;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
at_style=Tipus de sistema <tt>at</tt>,1,linux-Linux,solaris-Solaris,freebsd-FreeBSD,irix-Irix,macos-MacOS X,openserver-OpenServer
|
||||
at_dir=Directori de treballs <tt>at</tt>,0
|
||||
allow_file=Fitxer d'usuaris At permesos,3,Cap
|
||||
deny_file=DItxer d'usuaris At denegats,3,Cap
|
||||
deny_file=Fitxer d'usuaris At denegats,3,Cap
|
||||
|
||||
|
Before Width: | Height: | Size: 573 B |
@@ -1 +0,0 @@
|
||||
desc_cz.UTF-8=Plánované příkazy
|
||||
@@ -1 +0,0 @@
|
||||
desc_hu.UTF-8=Ütemezett feladatok
|
||||
@@ -1 +0,0 @@
|
||||
desc_pl.UTF-8=Zaplanowane polecenia
|
||||
@@ -1 +0,0 @@
|
||||
desc_ru.UTF-8=Расписание заданий
|
||||
@@ -1 +0,0 @@
|
||||
desc_sk.UTF-8=Plánované príkazy
|
||||
@@ -1 +0,0 @@
|
||||
desc_zh_TW.UTF-8=指令排程
|
||||
@@ -1,4 +1,4 @@
|
||||
<header>Fés la substitució strftime de les destinacions de còpia</header>
|
||||
<header>Fes la substitució strftime de les destinacions de còpia</header>
|
||||
|
||||
Si es posa aquesta opció a <b>Sí</b>, es poden utilitzar els codis com ara
|
||||
%d, %m, %Y i %u en el nom de fitxer de destinació de la còpia. Aquests se
|
||||
@@ -35,7 +35,7 @@ Alguns altres codis que es poden utilitzar s
|
||||
avall.
|
||||
|
||||
%G L'any ISO 8601 amb el segle com un número decimal.
|
||||
L'any de 4 dígits corresponent al númro de setmana ISO
|
||||
L'any de 4 dígits corresponent al número de setmana ISO
|
||||
(vegeu %V). Això té el mateix format i valor que %y,
|
||||
excepte que si el número de setmana ISO pertany a
|
||||
l'any següent o l'anterior, s'utilitza aquest any.
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -75,8 +75,8 @@ backup_epath=Hi falta el cam
|
||||
backup_epath2=Hi falta el camí absolut del servidor SSH o bé és invàlid
|
||||
backup_euser=Caràcters invàlids en l'usuari del servidor FTP
|
||||
backup_epass=Caràcters invàlids en la contrasenya del servidor FTP
|
||||
backup_eport=Hi falta el port FTP del seridor o bé és invàlid
|
||||
backup_esport=Hi falta el port SSH del seridor o bé és invàlid
|
||||
backup_eport=Hi falta el port FTP del servidor o bé és invàlid
|
||||
backup_esport=Hi falta el port SSH del servidor o bé és invàlid
|
||||
backup_emods=No has seleccionat cap mòdul
|
||||
backup_title=Configuració de Còpia
|
||||
backup_doing=S'està començant la còpia dels fitxers de configuració de mòduls a $1...
|
||||
@@ -111,7 +111,7 @@ run_doing=S'est
|
||||
run_ok=...la còpia s'ha completat correctament.
|
||||
run_failed=...la còpia ha fallat! Vegeu el missatge d'error per saber-ne el motiu.
|
||||
|
||||
email_mods=La còpia delss mòduls
|
||||
email_mods=La còpia dels mòduls
|
||||
email_failed=a $1 ha fallat:
|
||||
email_ok=a $1 ha reeixit.
|
||||
email_sfailed=La còpia de la configuració a $1 ha fallat
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
desc_cz.UTF-8=Záloha konfiguračních souborů
|
||||
@@ -1 +0,0 @@
|
||||
desc_hu.UTF-8=Konfigurációs file -ok mentése
|
||||
@@ -1 +0,0 @@
|
||||
desc_ja_JP.UTF-8=設定ファイルのバックアップ
|
||||
@@ -1 +0,0 @@
|
||||
desc_ko_KR.UTF-8=백업 설정 파일
|
||||
@@ -1 +0,0 @@
|
||||
desc_pl.UTF-8=Kopia plików konfiguracyjnych
|
||||
@@ -1 +0,0 @@
|
||||
desc_ru.UTF-8=Резервное копирование конфигурационных файлов
|
||||
@@ -1 +0,0 @@
|
||||
desc_sk.UTF-8=Záloha konfiguračných súborov
|
||||
@@ -3,7 +3,7 @@
|
||||
Pots utilitzar aquest formulari per ajustar la configuració del dimoni de
|
||||
fitxers de Bacula en execució al sistema. Els valor per defecte són típicament
|
||||
correctes, tot i que pots retocar el nom del dimoni i el nombre de treballs
|
||||
concorrents. Si el teu sistema Bacula suporta seguretat TLS, pots utilitzar
|
||||
concurrents. Si el teu sistema Bacula suporta seguretat TLS, pots utilitzar
|
||||
les opcions de TLS d'aquesta pàgina per assegurar la comunicació entre el
|
||||
dimoni de fitxers, el director i els dimonis d'emmagatzematge. <p>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Pots utilitzar aquest formulari per ajustar la configuració del dimoni
|
||||
d'emmagatzematge de Bacula en execució al sistema. Els valor per defecte són
|
||||
típicament correctes, tot i que pots retocar el nom del dimoni i el nombre
|
||||
de treballs concorrents. Si el teu sistema Bacula suporta seguretat TLS,
|
||||
de treballs concurrents. Si el teu sistema Bacula suporta seguretat TLS,
|
||||
pots utilitzar les opcions de TLS d'aquesta pàgina per assegurar la comunicació
|
||||
entre els dimonis d'emmagatzematge i els de fitxers. <p>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<header>Estat del Dimoni d'Emmagatzematge</header>
|
||||
|
||||
Aquesta pàgina mostra els treballs de còpia actualment en execució i els
|
||||
10 executats més recentment en un sistema de dimoni d'emmagazematge Bacula
|
||||
10 executats més recentment en un sistema de dimoni d'emmagatzematge Bacula
|
||||
seleccionat. Aquells que s'estan executant en un altre sistema no es mostraran.
|
||||
<p>
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -260,7 +260,7 @@ storage_port=Port SD de Bacula
|
||||
storage_pass=Contrasenya SD de Bacula
|
||||
storage_device=Nom del dispositiu d'emmagatzematge
|
||||
storage_media=Nom del tipus de mitjà
|
||||
storage_maxjobs=Nombre màxim de treballs concorrents
|
||||
storage_maxjobs=Nombre màxim de treballs concurrents
|
||||
storage_other=Altres...
|
||||
storage_err=No s'ha pogut desar el dimoni d'emmagatzematge
|
||||
storage_ename=Hi falta el nom del dimoni d'emmagatzematge
|
||||
@@ -270,7 +270,7 @@ storage_eaddress=Hi falta el nom de host o adre
|
||||
storage_eport=Hi falta el port SD o bé és invàlid
|
||||
storage_edevice=Hi falta el nom del dispositiu d'emmagatzematge
|
||||
storage_emedia=Hi falta el nom del tipus de mitjà
|
||||
storage_emaxjobs=Hi falta el nombre màxim de treballs concorrents
|
||||
storage_emaxjobs=Hi falta el nombre màxim de treballs concurrents
|
||||
storage_echild=No es pot suprimir aquest client, ja que $1 l'est+a utilitzant
|
||||
storage_status=Mostra l'Estat
|
||||
|
||||
@@ -503,14 +503,14 @@ director_title=Configuraci
|
||||
director_header=Opcions globals del director de Bacula
|
||||
director_name=Nom del director
|
||||
director_port=Escolta el port
|
||||
director_jobs=Nombre màxim de treballs concorrents
|
||||
director_jobs=Nombre màxim de treballs concurrents
|
||||
director_messages=Destinació dels missatges
|
||||
director_enone=No s'ha trobat cap configuració de director!
|
||||
director_dir=Directori de treball de Bacula
|
||||
director_err=No s'ha pogut desar la configuració del director
|
||||
director_ename=Hi falta el nom del director o bé és invàlid
|
||||
director_eport=Hi falta el número de port o bé és invàlid
|
||||
director_ejobs=Hi falta el nombre de treballs concorrents o bé és invàlid
|
||||
director_ejobs=Hi falta el nombre de treballs concurrents o bé és invàlid
|
||||
director_edir=Hi falta el directori de treball o bé no existeix
|
||||
|
||||
tls_enable=Activa el Xifratge TLS
|
||||
@@ -529,13 +529,13 @@ file_title=Configuraci
|
||||
file_header=Opcions del dimoni de fitxers de Bacula
|
||||
file_name=Nom del dimoni de fitxers
|
||||
file_port=Escolta el port
|
||||
file_jobs=Nombre màxim de treballs concorrents
|
||||
file_jobs=Nombre màxim de treballs concurrents
|
||||
file_dir=Directori de treball de Bacula
|
||||
file_enone=No s'ha trobat cap configuració de dimoni de fitxers!
|
||||
file_err=No s'ha pogut desar la configuració del dimoni de fitxers
|
||||
file_ename=Hi falta el nom del dimoni de fitxers o bé és invàlid
|
||||
file_eport=Hi falta el número de port o bé és invàlid
|
||||
file_ejobs=Hi falta el nombre de treballs concorrents o bé és invàlid
|
||||
file_ejobs=Hi falta el nombre de treballs concurrents o bé és invàlid
|
||||
file_edir=Hi falta el directori de treball o bé no existeix
|
||||
|
||||
fdirectors_title=Directors de Dimonis de Fitxers
|
||||
@@ -584,13 +584,13 @@ storagec_title=Configuraci
|
||||
storagec_header=Opcions del dimoni d'emmagatzematge de Bacula
|
||||
storagec_name=Nom del dimoni
|
||||
storagec_port=Escolta el port
|
||||
storagec_jobs=Nombre màxim de treballs concorrents
|
||||
storagec_jobs=Nombre màxim de treballs concurrents
|
||||
storagec_enone=No s'ha trobat cap configuració de dimoni d'emmagatzematge!
|
||||
storagec_dir=Directori de treball de Bacula
|
||||
storagec_err=No s'ha pogut desar la configuració del dimoni d'emmagatzematge
|
||||
storagec_ename=Hi falta el nom del dimoni d'emmagatzematge o bé és invàlid
|
||||
storagec_eport=Hi falta el número de port o bé és invàlid
|
||||
storagec_ejobs=Hi falta el nombre de treballs concorrents o bé és invàlid
|
||||
storagec_ejobs=Hi falta el nombre de treballs concurrents o bé és invàlid
|
||||
storagec_edir=Hi falta el directori de treball o bé no existeix
|
||||
|
||||
chooser_title=Selecció de Planificació
|
||||
@@ -635,7 +635,7 @@ restore_storage=Restaura-la del dispositiu d'emmagatzematge
|
||||
restore_where=Restaura al directori
|
||||
restore_where2=Un altre directori arrel
|
||||
restore_ewhere=Hi falta el directori de restauració
|
||||
restore_ok=Restura-la Ara
|
||||
restore_ok=Restaura-la Ara
|
||||
restore_err=No s'ha pogut restaurar la còpia
|
||||
restore_efiles=No has introduït cap fitxer
|
||||
restore_ejob=ID de treball invàlid
|
||||
@@ -646,7 +646,7 @@ restore_eok=...el treball no s'ha pogut iniciar
|
||||
restore_running=...la restauració s'està executant. Quan es completi, es mostraran els resultats a sota...
|
||||
restore_running2=...s'ha iniciat la restauració en segon pla.
|
||||
restore_done=...restauració completa.
|
||||
restore_failed=...la restauració no s'ha completat correctament. Compriva el missatge d'error de sobre per saber el perquè.
|
||||
restore_failed=...la restauració no s'ha completat correctament. Comprova el missatge d'error de sobre per saber el perquè.
|
||||
restore_clist=--Clients--
|
||||
restore_glist=--Grups Bacula--
|
||||
restore_eclient=No has seleccionat cap client ni cap grup Bacula
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
desc_pl.UTF-8=System kopii zapasowej Bacula
|
||||
@@ -1,3 +1,3 @@
|
||||
firewall_system=Tipus de tallafocs,4,firewall-IPtables,ipfw-IPFW,ipfilter-IPFilter,shorewall-Shorewall,-Detecta'l automàticament
|
||||
bandwidth_log=Fitxer de registre a crear per als missatges del tallafocs,0
|
||||
firewall_system=Tipus de tallafoc,4,firewall-IPtables,ipfw-IPFW,ipfilter-IPFilter,shorewall-Shorewall,-Detecta'l automàticament
|
||||
bandwidth_log=Fitxer de registre a crear per als missatges del tallafoc,0
|
||||
bandwidth_dir=Directori de dades de <i>bandwidth</i>,3,Defecte (/etc/webmin/bandwidth/hours)
|
||||
|
||||
@@ -6,23 +6,23 @@ o reenviat a trav
|
||||
per aquells que actuen de portal (possiblement amb NAT) d'una xarxa. <p>
|
||||
|
||||
Abans de poder-lo utilitzar, el mòdul ha de configurar algunes regles del
|
||||
tallafocs i una entrada de syslog per capturar el trànsit enviat i rebut
|
||||
tallafoc i una entrada de syslog per capturar el trànsit enviat i rebut
|
||||
a través del sistema. En el moment de configurar-lo, has de seleccionar
|
||||
la interfície de xarxa externa del sistema sobre la qual es monitoritzarà
|
||||
el trànsit. Això serà habitualment la interfície PPP utilitzada pel
|
||||
trucador o la connexió ADSL, o la interfície Ethernet connectada al mòdem
|
||||
de cable o encaminador. <p>
|
||||
|
||||
Un cop s'ha capturat almenys un ahora de trànsit, el mòdul es pot utilitzar
|
||||
Un cop s'ha capturat almenys una hora de trànsit, el mòdul es pot utilitzar
|
||||
per generar informes resumint el trànsit per una de les categories següents:
|
||||
<li><b>Hora</b><br>
|
||||
La data i hora en què s'han rebut les dades.
|
||||
<li><b>Dia</b><br>
|
||||
La data en què s'han rebut les dades.
|
||||
<li><b>Host</b><br>
|
||||
El host de la xarxa interna o host tallafocs que ha enviat o rebut les dades.
|
||||
El host de la xarxa interna o host tallafoc que ha enviat o rebut les dades.
|
||||
<li><b>Port intern</b><br>
|
||||
El port del host intern o tallafocs al qual s'han enviat les dades.
|
||||
El port del host intern o tallafoc al qual s'han enviat les dades.
|
||||
Aquest mode és útil per determinar quant trànsit s'ha generat per
|
||||
connexions a cadascun dels servidors.
|
||||
<li><b>Port extern</b><br>
|
||||
@@ -30,7 +30,7 @@ per generar informes resumint el tr
|
||||
Això es pot utilitzar per determinar a quins serveis estan accedint
|
||||
els usuaris de la xarxa.
|
||||
<li><b>Port</b><br>
|
||||
Ambdós ports, intern i extern. Útil per comparar tot lús de la xarxa
|
||||
Ambdós ports, intern i extern. Útil per comparar tot l'ús de la xarxa
|
||||
per tipus de servei.
|
||||
</ul>
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 752 B |
@@ -1,16 +1,16 @@
|
||||
index_title=Monitorització d'Amplada de Banda
|
||||
index_efiresys=No s'ha detectat al sistema cap dels tallafocs suportats (IPtables, IPFW, IPFilter o Shorewall). Comprova els mòduls apropiats per assegurar que estan configurats.
|
||||
index_efiresys2=No s'ha trobat al sistema el tallafocs $1 configurat. Ajusta la <a href='$2'>configuració del mòdul</a> per utilitzar el tallafocs correcte.
|
||||
index_efiresys=No s'ha detectat al sistema cap dels tallafoc suportats (IPtables, IPFW, IPFilter o Shorewall). Comprova els mòduls apropiats per assegurar que estan configurats.
|
||||
index_efiresys2=No s'ha trobat al sistema el tallafoc $1 configurat. Ajusta la <a href='$2'>configuració del mòdul</a> per utilitzar el tallafoc correcte.
|
||||
index_elog=El fitxer $1 utilitzat per al registre d'amplada de banda és de fet un directori del sistema. Ajusta la <a href='$2'>configuració del mòdul</a> per utilitzar un camí diferent.
|
||||
index_edir=El directori per emmagatzemar les dades $1 de bandwidth no existeix, o no és un directori. Ajusta la <a href='$2'>configuració del mòdul</a> per utilitzar un camí diferent.
|
||||
index_emod=El mòdul $1 de Webmin no es troba instal·lat al sistema, o bé no està suportat pel SO. El mòdul de Monitorització d'Amplada de Banda no pot operar sense ell.
|
||||
index_esyslog=No hi ha cap mòdul de Registres del Sistema instal·lat ni suportat pel sistema. El mòdul de Monitorització d'Amplada de Banda no pot operar sense un d'ells.
|
||||
index_firesys=S'està utilitzant el tallafocs $1 i $2
|
||||
index_firesys=S'està utilitzant el tallafoc $1 i $2
|
||||
index_setupcannot=De totes maneres, tu no tens permís per configurar-lo.
|
||||
index_setupdesc=Abans que aquest mòdul pugui informar de l'ús de la xarxa al sistema, cal configurar-lo per monitoritzar el trànsit en la interfície de xarxa externa seleccionada.
|
||||
index_setupdesc2=<b>Atenció - aquest mòdule registrarà TOT el transit de xarxa enviat o rebut sobre la interfície seleccionada. Això consumirà molt espai al disc dur i molt temps de CPU en una connexió de xraxa ràpida.</b>
|
||||
index_missing3=S'han d'afegir algunes regles del tallafocs, i crear una entrada de configuració de syslog.
|
||||
index_missing2=S'han d'afegir algunes regles del tallafocs.
|
||||
index_setupdesc2=<b>Atenció - aquest mòdul registrarà TOT el transit de xarxa enviat o rebut sobre la interfície seleccionada. Això consumirà molt espai al disc dur i molt temps de CPU en una connexió de xarxa ràpida.</b>
|
||||
index_missing3=S'han d'afegir algunes regles del tallafoc, i crear una entrada de configuració de syslog.
|
||||
index_missing2=S'han d'afegir algunes regles del tallafoc.
|
||||
index_missing1=S'ha de crear una entrada de configuració de syslog.
|
||||
index_iface=Interfície de xarxa externa
|
||||
index_other=Altres...
|
||||
@@ -52,10 +52,10 @@ index_low=Nom
|
||||
index_resolv=Resol els noms de host
|
||||
index_nomatch=No hi ha trànsit que coincideixi amb els criteris seleccionats.
|
||||
index_turnoff=Desactiva la Monitorització
|
||||
index_turnoffdesc=Fes clic sobre aquest botó per eliminar les regles del tallafocs, la configuració syslog i el treball cron utilitzats per a la monitorització de l'amplada de banda. Totes les dades recollides existents es mantindran intactes.
|
||||
index_turnoffdesc=Fes clic sobre aquest botó per eliminar les regles del tallafoc, la configuració syslog i el treball cron utilitzats per a la monitorització de l'amplada de banda. Totes les dades recollides existents es mantindran intactes.
|
||||
index_rotate=Actualitza les Estadístiques
|
||||
index_rotatedesc=Fes clic sobre aquest botó per processar tot el trànsit de xarxa registrat fins ara, fent-lo immediatament disponible per a l'informe.
|
||||
index_eiptables=Atenció - La teva configuració d'IPtables té un error: $1. Establir la monitorització d'amplada de banda esborrarà totes les regles del tallafocs.
|
||||
index_eiptables=Atenció - La teva configuració d'IPtables té un error: $1. Establir la monitorització d'amplada de banda esborrarà totes les regles del tallafoc.
|
||||
index_return=al formulari d'informe
|
||||
|
||||
log_setup=S'ha configurat la monitorització de l'amplada de banda sobre la interfície $1
|
||||
|
||||
@@ -7,7 +7,7 @@ index_efiresys=Keine der unterstützen Firewalls (IPtables, IPFW, IPFilter o
|
||||
index_efiresys2=Das konfigurierte Firewall-System $1 wurde auf Ihrem System nicht gefunden. Überprüfen Sie die <a href='$2'>Modulkonfiguration</a> um die richtige Firewall einzustellen.
|
||||
index_efrom=Ungültige(s) Startdatum und -zeit
|
||||
index_ehost=Fehlender oder ungültiger Host
|
||||
index_ehour=Ungültige Zeitangabe - Format JJJJ-MM-DD SS:MM
|
||||
index_ehour=Ungültige Zeitangabe - Format JJJJ-MM-TT SS:MM
|
||||
index_eiptables=Warnung - Ihre IPtables-Konfiguration hat einen Fehler : $1. Das Einrichten der Überwachung wird alle vorhandenen Regeln löschen!
|
||||
index_elog=Die Datei $1 wird für die Bandbreitenmessung benutzt und loggt derzeit Daten auf Ihrem Dateisystem. Benutzen Sie die <a href='$2'>Modulkonfiguration</a> um einen anderen Pfad einzustellen.
|
||||
index_emod=Das Webminmodul $1 ist nicht installiert oder wird auf diesem System nicht unterstützt. Ohne jenes Modul kann dieses Modul nicht arbeiten.
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
desc_cz.UTF-8=Bandwidth Monitoring
|
||||
@@ -1 +0,0 @@
|
||||
desc_hu.UTF-8=Forgalmi monitor
|
||||
@@ -1 +0,0 @@
|
||||
desc_pl.UTF-8=Monitorowanie pasma
|
||||
159
bin/disable-proxy
Executable file
@@ -0,0 +1,159 @@
|
||||
#!/usr/bin/env perl
|
||||
# disable-proxy - Reverse/remove the configuration options set by enable-proxy.
|
||||
use strict;
|
||||
use warnings;
|
||||
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
|
||||
use 5.010; # Version in CentOS 6
|
||||
|
||||
use Getopt::Long qw(:config permute pass_through);
|
||||
use Pod::Usage;
|
||||
use Term::ANSIColor qw(:constants);
|
||||
use Fcntl qw( :flock );
|
||||
use Sys::Hostname;
|
||||
|
||||
sub main {
|
||||
my %opt;
|
||||
GetOptions(
|
||||
'help|h' => \$opt{'help'},
|
||||
'config|c=s' => \$opt{'config'},
|
||||
);
|
||||
pod2usage(0) if ( $opt{'help'} );
|
||||
|
||||
$opt{'config'} ||= "/etc/webmin";
|
||||
|
||||
enable_proxy( \%opt );
|
||||
|
||||
return 0;
|
||||
}
|
||||
exit main( \@ARGV ) if !caller(0);
|
||||
|
||||
sub enable_proxy {
|
||||
my ($optref) = @_;
|
||||
|
||||
my @config_lines;
|
||||
my $file = "$optref->{'config'}/config";
|
||||
|
||||
my $referer;
|
||||
if ($optref->{'referer'}) {
|
||||
$referer = $optref->{'referer'};
|
||||
} else {
|
||||
$referer = hostname;
|
||||
}
|
||||
|
||||
# Setup Webmin
|
||||
if ($optref->{'prefix'}) {
|
||||
# Set'em up for proxying on https://domain.tld/prefix
|
||||
set_config('webprefix', '', $file);
|
||||
set_config('webprefix_noredir', '', $file);
|
||||
set_config('ssl_redirect', '1', "$optref->{'config'}/miniserv.conf");
|
||||
set_config('ssl', '1', "$optref->{'config'}/miniserv.conf");
|
||||
} else {
|
||||
# No prefix, just proxying at the root level: https://domain.tld/
|
||||
set_config('ssl_redirect', '1', "$optref->{'config'}/miniserv.conf");
|
||||
set_config('ssl', '1', "$optref->{'config'}/miniserv.conf");
|
||||
}
|
||||
|
||||
# Setup the local web server?
|
||||
|
||||
# Restart Webmin
|
||||
say "Restarting Webmin to apply changes...";
|
||||
system("$optref->{'config'}/restart");
|
||||
exit 0;
|
||||
}
|
||||
|
||||
sub set_config {
|
||||
my ($key, $value, $file, $module, $force) = @_;
|
||||
$key or die RED, "An --option must be specified", RESET;
|
||||
|
||||
my @config_lines;
|
||||
open my $fh, '+<', $file
|
||||
or die RED, "Unable to open $file", RESET;
|
||||
flock($fh, LOCK_EX) or die RED, "Unable to lock $file", RESET;
|
||||
chomp(@config_lines = <$fh>);
|
||||
# Change'em
|
||||
my $found = 0;
|
||||
my $exit_code = 0;
|
||||
# Validate it against the config.info if this is a module and
|
||||
if ($module && !$force) {
|
||||
validate_config_option($key, $value, $module);
|
||||
}
|
||||
for (@config_lines) {
|
||||
if (/^${key}=(.*)/) {
|
||||
s/^${key}=(.*)/${key}=${value}/;
|
||||
$found++;
|
||||
}
|
||||
}
|
||||
unless ($found > 0) {
|
||||
push(@config_lines, "$key=$value");
|
||||
$exit_code++;
|
||||
}
|
||||
# Write'em
|
||||
seek($fh, 0, 0);
|
||||
print $fh qq|$_\n| for @config_lines;
|
||||
close $fh;
|
||||
}
|
||||
|
||||
sub root {
|
||||
my ($config) = @_;
|
||||
open(my $CONF, "<", "$config/miniserv.conf") || die RED,
|
||||
"Failed to open $config/miniserv.conf", RESET;
|
||||
my $root;
|
||||
while (<$CONF>) {
|
||||
if (/^root=(.*)/) {
|
||||
$root = $1;
|
||||
}
|
||||
}
|
||||
close($CONF);
|
||||
# Does the Webmin root exist?
|
||||
if ( $root ) {
|
||||
die "$root is not a directory. Is --config correct?" unless (-d $root);
|
||||
} else {
|
||||
# Try to guess where Webmin lives, since config file didn't know.
|
||||
die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}";
|
||||
}
|
||||
|
||||
return $root;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
disable-proxy
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Disable proxy-related features in Webmin.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
disable-proxy [options]
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over
|
||||
|
||||
=item --help, -h
|
||||
|
||||
Print this usage summary and exit.
|
||||
|
||||
=item --config, -c
|
||||
|
||||
Specify the full path to the Webmin configuration directory. Defaults to
|
||||
C</etc/webmin>
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXIT CODES
|
||||
|
||||
0 on success
|
||||
|
||||
non-0 on error
|
||||
|
||||
=head1 LICENSE AND COPYRIGHT
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
|
||||
<joe@virtualmin.com>.
|
||||
|
||||
121
bin/disable-twofactor
Executable file
@@ -0,0 +1,121 @@
|
||||
#!/usr/bin/env perl
|
||||
# disable-twofactor - Disable two-factor authentication for a user.
|
||||
use strict;
|
||||
use warnings;
|
||||
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
|
||||
use 5.010; # Version in CentOS 6
|
||||
|
||||
use Getopt::Long;
|
||||
use Pod::Usage;
|
||||
use Term::ANSIColor qw(:constants);
|
||||
|
||||
sub main {
|
||||
my %opt;
|
||||
GetOptions(
|
||||
'help|h' => \$opt{'help'},
|
||||
'config|c=s' => \$opt{'config'},
|
||||
'user|u=s' => \$opt{'user'}
|
||||
);
|
||||
pod2usage(0) if ( $opt{'help'} );
|
||||
|
||||
$opt{'config'} ||= "/etc/webmin";
|
||||
|
||||
# Boilerplate, boilerplate, boilerplate...
|
||||
$ENV{'WEBMIN_CONFIG'} = $opt{'config'};
|
||||
$ENV{'WEBMIN_VAR'} ||= "/var/webmin";
|
||||
$ENV{'MINISERV_CONFIG'} = $ENV{'WEBMIN_CONFIG'} . "/miniserv.conf";
|
||||
|
||||
my $root = root($opt{'config'});
|
||||
chdir($root);
|
||||
$0 = "$root/bin/webmin";
|
||||
push(@INC, $root);
|
||||
eval 'use WebminCore'; ## no critic
|
||||
init_config();
|
||||
foreign_require('acl', 'acl-lib.pl');
|
||||
our (%config);
|
||||
|
||||
# Get the user
|
||||
my @users = acl::list_users();
|
||||
my $user;
|
||||
($user) = grep { $_->{'name'} eq $opt{'user'} } @users;
|
||||
|
||||
# Cancel twofactor authentication
|
||||
$user->{'twofactor_provider'} = undef;
|
||||
$user->{'twofactor_id'} = undef;
|
||||
$user->{'twofactor_apikey'} = undef;
|
||||
acl::modify_user($user->{'name'}, $user);
|
||||
reload_miniserv();
|
||||
webmin_log("onefactor", "user", $user->{'name'});
|
||||
|
||||
exit 0;
|
||||
}
|
||||
exit main( \@ARGV ) if !caller(0);
|
||||
|
||||
sub root {
|
||||
my ($config) = @_;
|
||||
open(my $CONF, "<", "$config/miniserv.conf") || die RED,
|
||||
"Failed to open $config/miniserv.conf", RESET;
|
||||
my $root;
|
||||
while (<$CONF>) {
|
||||
if (/^root=(.*)/) {
|
||||
$root = $1;
|
||||
}
|
||||
}
|
||||
close($CONF);
|
||||
# Does the Webmin root exist?
|
||||
if ( $root ) {
|
||||
die "$root is not a directory. Is --config correct?" unless (-d $root);
|
||||
} else {
|
||||
die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}";
|
||||
}
|
||||
|
||||
return $root;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
disable-twofactor
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Disable two factor authentication for a given user. Useful in cases where the
|
||||
second factor (e.g. phone or USB key) has been lost.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
disable-twofactor --user username
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over
|
||||
|
||||
=item --help, -h
|
||||
|
||||
Print this usage summary and exit.
|
||||
|
||||
=item --config, -c
|
||||
|
||||
Specify the full path to the Webmin configuration directory. Defaults to
|
||||
C</etc/webmin>
|
||||
|
||||
=item --user, -u
|
||||
|
||||
Name of the user to disable two-factor authentication for.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXIT CODES
|
||||
|
||||
0 on successfully replacing configuration options
|
||||
|
||||
non-0 on error
|
||||
|
||||
=head1 LICENSE AND COPYRIGHT
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
|
||||
<joe@virtualmin.com>.
|
||||
|
||||
174
bin/enable-proxy
Executable file
@@ -0,0 +1,174 @@
|
||||
#!/usr/bin/env perl
|
||||
# enable-proxy - Set Webmin configuration options to support being served
|
||||
# through a proxy.
|
||||
use strict;
|
||||
use warnings;
|
||||
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
|
||||
use 5.010; # Version in CentOS 6
|
||||
|
||||
use Getopt::Long qw(:config permute pass_through);
|
||||
use Pod::Usage;
|
||||
use Term::ANSIColor qw(:constants);
|
||||
use Fcntl qw( :flock );
|
||||
use Sys::Hostname;
|
||||
|
||||
sub main {
|
||||
my %opt;
|
||||
GetOptions(
|
||||
'help|h' => \$opt{'help'},
|
||||
'config|c=s' => \$opt{'config'},
|
||||
'prefix|p=s' => \$opt{'prefix'},
|
||||
'referer|r=s' => \$opt{'referer'}
|
||||
);
|
||||
pod2usage(0) if ( $opt{'help'} );
|
||||
|
||||
$opt{'config'} ||= "/etc/webmin";
|
||||
|
||||
enable_proxy( \%opt );
|
||||
|
||||
return 0;
|
||||
}
|
||||
exit main( \@ARGV ) if !caller(0);
|
||||
|
||||
sub enable_proxy {
|
||||
my ($optref) = @_;
|
||||
|
||||
my @config_lines;
|
||||
my $file = "$optref->{'config'}/config";
|
||||
|
||||
my $referer;
|
||||
if ($optref->{'referer'}) {
|
||||
$referer = $optref->{'referer'};
|
||||
} else {
|
||||
$referer = hostname;
|
||||
}
|
||||
|
||||
# Setup Webmin
|
||||
if ($optref->{'prefix'}) {
|
||||
# Set'em up for proxying on https://domain.tld/prefix
|
||||
set_config('webprefix', $optref->{'prefix'}, $file);
|
||||
set_config('webprefix_noredir', '1', $file);
|
||||
set_config('referer', $referer, $file);
|
||||
set_config('ssl_redirect', '0', "$optref->{'config'}/miniserv.conf");
|
||||
set_config('ssl', '0', "$optref->{'config'}/miniserv.conf");
|
||||
} else {
|
||||
# No prefix, just proxying at the root level: https://domain.tld/
|
||||
set_config('referer', $referer, $file);
|
||||
set_config('ssl_redirect', '0', "$optref->{'config'}/miniserv.conf");
|
||||
set_config('ssl', '0', "$optref->{'config'}/miniserv.conf");
|
||||
}
|
||||
|
||||
# Setup the local web server?
|
||||
|
||||
# Restart Webmin
|
||||
say "Restarting Webmin to apply changes...";
|
||||
system("$optref->{'config'}/restart");
|
||||
exit 0;
|
||||
}
|
||||
|
||||
sub set_config {
|
||||
my ($key, $value, $file, $module, $force) = @_;
|
||||
$key or die RED, "An --option must be specified", RESET;
|
||||
|
||||
my @config_lines;
|
||||
open my $fh, '+<', $file
|
||||
or die RED, "Unable to open $file", RESET;
|
||||
flock($fh, LOCK_EX) or die RED, "Unable to lock $file", RESET;
|
||||
chomp(@config_lines = <$fh>);
|
||||
# Change'em
|
||||
my $found = 0;
|
||||
my $exit_code = 0;
|
||||
# Validate it against the config.info if this is a module and
|
||||
if ($module && !$force) {
|
||||
validate_config_option($key, $value, $module);
|
||||
}
|
||||
for (@config_lines) {
|
||||
if (/^${key}=(.*)/) {
|
||||
s/^${key}=(.*)/${key}=${value}/;
|
||||
$found++;
|
||||
}
|
||||
}
|
||||
unless ($found > 0) {
|
||||
push(@config_lines, "$key=$value");
|
||||
$exit_code++;
|
||||
}
|
||||
# Write'em
|
||||
seek($fh, 0, 0);
|
||||
print $fh qq|$_\n| for @config_lines;
|
||||
close $fh;
|
||||
}
|
||||
|
||||
sub root {
|
||||
my ($config) = @_;
|
||||
open(my $CONF, "<", "$config/miniserv.conf") || die RED,
|
||||
"Failed to open $config/miniserv.conf", RESET;
|
||||
my $root;
|
||||
while (<$CONF>) {
|
||||
if (/^root=(.*)/) {
|
||||
$root = $1;
|
||||
}
|
||||
}
|
||||
close($CONF);
|
||||
# Does the Webmin root exist?
|
||||
if ( $root ) {
|
||||
die "$root is not a directory. Is --config correct?" unless (-d $root);
|
||||
} else {
|
||||
# Try to guess where Webmin lives, since config file didn't know.
|
||||
die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}";
|
||||
}
|
||||
|
||||
return $root;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
enable-proxy
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Configure the Webmin web server to be proxied through another web server, like Apache or nginx. This is not usually recommended, and disables some security features, but can help traverse a firewall.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
enable-proxy [options]
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over
|
||||
|
||||
=item --help, -h
|
||||
|
||||
Print this usage summary and exit.
|
||||
|
||||
=item --config, -c
|
||||
|
||||
Specify the full path to the Webmin configuration directory. Defaults to
|
||||
C</etc/webmin>
|
||||
|
||||
=item --prefix, -p
|
||||
|
||||
To use a directory prefix for URLs (e.g. https://domain.tld/webmin) provide
|
||||
it using this option.
|
||||
|
||||
=item --referer, -r
|
||||
|
||||
The hostname you'll be using in your browser to contact the server. (e.g.
|
||||
domain.tld)
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXIT CODES
|
||||
|
||||
0 on success
|
||||
|
||||
non-0 on error
|
||||
|
||||
=head1 LICENSE AND COPYRIGHT
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
|
||||
<joe@virtualmin.com>.
|
||||
|
||||
207
bin/list-config
Executable file
@@ -0,0 +1,207 @@
|
||||
#!/usr/bin/env perl
|
||||
# list-config - List one or all config directives for Webmin or a specific
|
||||
# module.
|
||||
use strict;
|
||||
use warnings;
|
||||
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
|
||||
use 5.010; # Version in CentOS 6
|
||||
|
||||
use Getopt::Long qw(:config permute pass_through);
|
||||
use Pod::Usage;
|
||||
use Term::ANSIColor qw(:constants);
|
||||
|
||||
sub main {
|
||||
my %opt;
|
||||
GetOptions(
|
||||
'help|h' => \$opt{'help'},
|
||||
'config|c=s' => \$opt{'config'},
|
||||
'module|m=s' => \$opt{'module'},
|
||||
'option|o=s' => \$opt{'option'},
|
||||
'describe|d' => \$opt{'describe'}
|
||||
);
|
||||
pod2usage(0) if ( $opt{'help'} );
|
||||
|
||||
$opt{'config'} ||= "/etc/webmin";
|
||||
|
||||
list_config( \%opt );
|
||||
|
||||
return 0;
|
||||
}
|
||||
exit main( \@ARGV ) if !caller(0);
|
||||
|
||||
sub list_config {
|
||||
my ($optref) = @_;
|
||||
|
||||
my @config_lines;
|
||||
# Module or root-level config?
|
||||
if ($optref->{'module'}) {
|
||||
# Read the module config file
|
||||
@config_lines = load_config($optref->{'config'}, "$optref->{'module'}/config");
|
||||
} else {
|
||||
@config_lines = load_config($optref->{'config'}, "miniserv.conf");
|
||||
}
|
||||
|
||||
# Display either a single item or the whole thing
|
||||
if ($optref->{'option'}) {
|
||||
# Show one item
|
||||
my $value;
|
||||
if ($optref->{'module'} and $optref->{'describe'}) {
|
||||
$value = get_description($optref);
|
||||
} else {
|
||||
$value = get_config_value($optref->{'option'}, \@config_lines)
|
||||
|| die RED, "Unable to retrieve value of $optref->{'option'}", RESET;
|
||||
}
|
||||
say $value;
|
||||
} else {
|
||||
# Show all
|
||||
if ($optref->{'module'} and $optref->{'describe'}) {
|
||||
@config_lines = get_description($optref);
|
||||
} elsif ($optref->{'describe'}) {
|
||||
die RED, "--describe only available for modules", RESET;
|
||||
}
|
||||
say for @config_lines;
|
||||
}
|
||||
}
|
||||
|
||||
sub load_config {
|
||||
my ($config_dir, $file_path) = @_;
|
||||
|
||||
my @config_lines;
|
||||
if (-e "$config_dir/$file_path") {
|
||||
open my $fh, '<', "$config_dir/$file_path"
|
||||
|| die RED, "Unable to open $config_dir/$file_path", RESET;
|
||||
chomp(@config_lines = <$fh>);
|
||||
close $fh;
|
||||
} else {
|
||||
die RED, "Unable to open $config_dir/$file_path.", RESET;
|
||||
}
|
||||
return @config_lines;
|
||||
}
|
||||
|
||||
# get_config_var
|
||||
# Read the file at $config and return the value of key
|
||||
sub get_config_value {
|
||||
my ($key, $config_lines_ref) = @_;
|
||||
my $value;
|
||||
|
||||
foreach my $line (@$config_lines_ref) {
|
||||
if ($line =~ /^${key}=(.*)/) {
|
||||
$value = $1;
|
||||
}
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
# get_description
|
||||
# Return a description of one or more options from config.info
|
||||
sub get_description {
|
||||
my ($optref) = @_;
|
||||
|
||||
my $root = root($optref->{'config'});
|
||||
my $config_info = "$root/$optref->{'module'}/config.info";
|
||||
my $key = $optref->{'option'};
|
||||
|
||||
open my $fh, '<', $config_info
|
||||
or die RED, "Unable to open $config_info", RESET;
|
||||
if ($optref->{'option'}) {
|
||||
my $found = 0;
|
||||
# return one description
|
||||
while (<$fh>) {
|
||||
if (/^${key}=([^,]*)/) {
|
||||
$found++;
|
||||
return "$key - $1";
|
||||
}
|
||||
}
|
||||
$found or die RED, "Unrecognized option $key", RESET;
|
||||
} else {
|
||||
my $found;
|
||||
# return all descriptions
|
||||
my @lines;
|
||||
while (<$fh>) {
|
||||
if (/^(.*)=([^,]*)/) {
|
||||
push (@lines, "$1 - $2");
|
||||
$found++;
|
||||
}
|
||||
}
|
||||
$found or die RED, "No options found for module $optref->{'module'}";
|
||||
return @lines;
|
||||
}
|
||||
}
|
||||
|
||||
sub root {
|
||||
my ($config) = @_;
|
||||
open(my $CONF, "<", "$config/miniserv.conf") || die RED,
|
||||
"Failed to open $config/miniserv.conf", RESET;
|
||||
my $root;
|
||||
while (<$CONF>) {
|
||||
if (/^root=(.*)/) {
|
||||
$root = $1;
|
||||
}
|
||||
}
|
||||
close($CONF);
|
||||
# Does the Webmin root exist?
|
||||
if ( $root ) {
|
||||
die "$root is not a directory. Is --config correct?" unless (-d $root);
|
||||
} else {
|
||||
# Try to guess where Webmin lives, since config file didn't know.
|
||||
die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}";
|
||||
}
|
||||
|
||||
return $root;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
list-config
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
List one or all configuration directives for C<miniserv.conf> or a module C<config> file.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
list-config [options]
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over
|
||||
|
||||
=item --help, -h
|
||||
|
||||
Print this usage summary and exit.
|
||||
|
||||
=item --config, -c
|
||||
|
||||
Specify the full path to the Webmin configuration directory. Defaults to
|
||||
C</etc/webmin>
|
||||
|
||||
=item --module, -m
|
||||
|
||||
Specify which module configuration to display. If none given, configuration will be assumed to be the Webmin core configuration (/etc/webmin/miniserv.conf).
|
||||
|
||||
=item --option, -o
|
||||
|
||||
Specify a single option to display. By default, the entire configuration file will be displayed. If this option is given, only the option specified will be shown.
|
||||
|
||||
=item --describe, -d
|
||||
|
||||
Display the description of the option from the module C<config.info> file, instead of it's current value. This option is only available for modules, as miniserv.conf does not have a config.info.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXIT CODES
|
||||
|
||||
0 on success
|
||||
|
||||
non-0 on error
|
||||
|
||||
=head1 LICENSE AND COPYRIGHT
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
|
||||
<joe@virtualmin.com>.
|
||||
|
||||
185
bin/set-config
Executable file
@@ -0,0 +1,185 @@
|
||||
#!/usr/bin/env perl
|
||||
# set-config - Set a Webmin configuration option to the value provided and
|
||||
# restart Webmin to apply the change.
|
||||
use strict;
|
||||
use warnings;
|
||||
BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
|
||||
use 5.010; # Version in CentOS 6
|
||||
|
||||
use Getopt::Long qw(:config permute pass_through);
|
||||
use Pod::Usage;
|
||||
use Term::ANSIColor qw(:constants);
|
||||
use Fcntl qw( :flock );
|
||||
|
||||
sub main {
|
||||
my %opt;
|
||||
GetOptions(
|
||||
'help|h' => \$opt{'help'},
|
||||
'config|c=s' => \$opt{'config'},
|
||||
'module|m=s' => \$opt{'module'},
|
||||
'option|o=s' => \$opt{'option'},
|
||||
'value|v=s' => \$opt{'value'},
|
||||
'force|f' => \$opt{'force'}
|
||||
);
|
||||
pod2usage(0) if ( $opt{'help'} );
|
||||
|
||||
$opt{'config'} ||= "/etc/webmin";
|
||||
|
||||
set_config( \%opt );
|
||||
|
||||
return 0;
|
||||
}
|
||||
exit main( \@ARGV ) if !caller(0);
|
||||
|
||||
sub set_config {
|
||||
my ($optref) = @_;
|
||||
my $key = $optref->{'option'};
|
||||
my $value = $optref->{'value'};
|
||||
$key or die RED, "An --option must be specified", RESET;
|
||||
|
||||
my @config_lines;
|
||||
# Module or root-level config?
|
||||
my $config_file;
|
||||
if ($optref->{'module'}) {
|
||||
$config_file = "$optref->{'config'}/$optref->{'module'}/config";
|
||||
} else {
|
||||
$config_file = "$optref->{'config'}/miniserv.conf";
|
||||
}
|
||||
# Read'em
|
||||
open my $fh, '+<', $config_file
|
||||
or die RED, "Unable to open $config_file", RESET;
|
||||
flock($fh, LOCK_EX) or die RED, "Unable to lock $config_file", RESET;
|
||||
chomp(@config_lines = <$fh>);
|
||||
# Change'em
|
||||
my $found = 0;
|
||||
my $exit_code = 0;
|
||||
# Validate it against the config.info if this is a module and
|
||||
if ($optref->{'module'} && !($optref->{'force'})) {
|
||||
validate_config_option($optref);
|
||||
}
|
||||
for (@config_lines) {
|
||||
if (/^${key}=(.*)/) {
|
||||
s/^${key}=(.*)/${key}=${value}/;
|
||||
$found++;
|
||||
}
|
||||
}
|
||||
unless ($found > 0) {
|
||||
push(@config_lines, "$key=$value");
|
||||
$exit_code++;
|
||||
}
|
||||
# Write'em
|
||||
seek($fh, 0, 0);
|
||||
print $fh qq|$_\n| for @config_lines;
|
||||
close $fh;
|
||||
|
||||
# Restart Webmin if editing miniserv.conf
|
||||
unless ($optref->{'module'}) {
|
||||
say "Restarting Webmin to apply miniserv.conf changes...";
|
||||
system("$optref->{'config'}/restart");
|
||||
}
|
||||
exit $exit_code;
|
||||
}
|
||||
|
||||
sub validate_config_option {
|
||||
my ($optref) = @_;
|
||||
|
||||
my $root = root($optref->{'config'});
|
||||
my $key = $optref->{'option'};
|
||||
|
||||
# Load the config.info
|
||||
open my $fh, '<', "$root/$optref->{'module'}/config.info";
|
||||
# Does this key exist?
|
||||
my $found;
|
||||
while (<$fh>) {
|
||||
if (/^${key}=(.*)/) {
|
||||
$found++;
|
||||
}
|
||||
}
|
||||
close $fh;
|
||||
$found or
|
||||
die RED, "Option '$key' is unknown in module $optref->{'module'}", RESET;
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub root {
|
||||
my ($config) = @_;
|
||||
open(my $CONF, "<", "$config/miniserv.conf") || die RED,
|
||||
"Failed to open $config/miniserv.conf", RESET;
|
||||
my $root;
|
||||
while (<$CONF>) {
|
||||
if (/^root=(.*)/) {
|
||||
$root = $1;
|
||||
}
|
||||
}
|
||||
close($CONF);
|
||||
# Does the Webmin root exist?
|
||||
if ( $root ) {
|
||||
die "$root is not a directory. Is --config correct?" unless (-d $root);
|
||||
} else {
|
||||
die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}";
|
||||
}
|
||||
|
||||
return $root;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
set-config
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Set a configuration directive in either C<miniserv.conf> (the core Webmin config) or in the specified module C<config>.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
set-config [options] [--module] --option <option-name> --value <value>
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over
|
||||
|
||||
=item --help, -h
|
||||
|
||||
Print this usage summary and exit.
|
||||
|
||||
=item --config, -c
|
||||
|
||||
Specify the full path to the Webmin configuration directory. Defaults to
|
||||
C</etc/webmin>
|
||||
|
||||
=item --module, -m
|
||||
|
||||
Specify which module configuration to modify. If none given, configuration will be assumed to be the Webmin core configuration (/etc/webmin/miniserv.conf).
|
||||
|
||||
=item --option, -o
|
||||
|
||||
Specify the option to change.
|
||||
|
||||
=item --value, -o
|
||||
|
||||
The value to change the option to.
|
||||
|
||||
=item --force, -f
|
||||
|
||||
Skip validation of the option name. Allows modifying hidden options, and adding unknown options.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXIT CODES
|
||||
|
||||
0 on successfully replacing a config variable
|
||||
|
||||
1 on successfully adding a new config variable (the specified option did not
|
||||
already exist in the file, and was added)
|
||||
|
||||
>1 on error
|
||||
|
||||
=head1 LICENSE AND COPYRIGHT
|
||||
|
||||
Copyright 2018 Jamie Cameron <jcameron@webmin.com>, Joe Cooper
|
||||
<joe@virtualmin.com>.
|
||||
|
||||