mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 14:13:29 +00:00
Compare commits
230 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
220d3124ef | ||
|
|
8b88034335 | ||
|
|
e5bff8f31b | ||
|
|
ba4e72dfc2 | ||
|
|
45eaad6eff | ||
|
|
cd113a468a | ||
|
|
4c6ffd19a4 | ||
|
|
92e71e9ba3 | ||
|
|
e56ea150fe | ||
|
|
e191220178 | ||
|
|
097ef22bbc | ||
|
|
66be8e9c20 | ||
|
|
cf6b79b740 | ||
|
|
81aa781bc9 | ||
|
|
69b707e945 | ||
|
|
1424e248ff | ||
|
|
249dabde7e | ||
|
|
443883d364 | ||
|
|
156cb80104 | ||
|
|
0885a17f55 | ||
|
|
0ffaed090a | ||
|
|
55013abadc | ||
|
|
83a85aed93 | ||
|
|
81b0bee9ee | ||
|
|
b53504dd01 | ||
|
|
c2c99e3305 | ||
|
|
671c62289d | ||
|
|
d296b83192 | ||
|
|
1d898d83fb | ||
|
|
90fa7fede0 | ||
|
|
415e7116f9 | ||
|
|
033d94483f | ||
|
|
69035e0a34 | ||
|
|
bab8d7a0f0 | ||
|
|
9e6ae753e0 | ||
|
|
42b6cac7b4 | ||
|
|
6ca908cf80 | ||
|
|
3be8a327ad | ||
|
|
16110e3e3e | ||
|
|
8f508724e4 | ||
|
|
e2646af3ab | ||
|
|
ef55f007a4 | ||
|
|
613b9e5ffa | ||
|
|
06744537d6 | ||
|
|
3925dd829b | ||
|
|
e5bff72e57 | ||
|
|
dd445a67f1 | ||
|
|
29a4b6b598 | ||
|
|
56729f7e3d | ||
|
|
92b90a8170 | ||
|
|
783ad6f3a2 | ||
|
|
0fd02d4381 | ||
|
|
4c2fde6847 | ||
|
|
9065de316a | ||
|
|
679a1c386e | ||
|
|
462483b667 | ||
|
|
58467ece0b | ||
|
|
e864fa785f | ||
|
|
5aba173111 | ||
|
|
9305ddbdd5 | ||
|
|
08d990ab13 | ||
|
|
ecbeaf7bc7 | ||
|
|
f8cb0db802 | ||
|
|
77b134fec1 | ||
|
|
060a2f2853 | ||
|
|
88c71b5dd4 | ||
|
|
f99f5fbae6 | ||
|
|
2037af9d25 | ||
|
|
d8988bd9f0 | ||
|
|
5ee080d24a | ||
|
|
54bb5eac1e | ||
|
|
10790ccc7f | ||
|
|
820453cc8c | ||
|
|
3d2ea49a47 | ||
|
|
69681c01d4 | ||
|
|
fe8545703d | ||
|
|
f130112177 | ||
|
|
c32b04a7e6 | ||
|
|
afa9e9bd38 | ||
|
|
73d6333f19 | ||
|
|
549c786b84 | ||
|
|
e15ab46a98 | ||
|
|
63abfbfe87 | ||
|
|
da5b814d2b | ||
|
|
187b7c72a8 | ||
|
|
a08d104f82 | ||
|
|
71f441375b | ||
|
|
53fb520392 | ||
|
|
f5305eb065 | ||
|
|
cd51f76062 | ||
|
|
147a10dd8a | ||
|
|
f17f92c5c0 | ||
|
|
69b9756b4a | ||
|
|
6935174133 | ||
|
|
76efb4ee10 | ||
|
|
ed42dd5822 | ||
|
|
51c86d41d4 | ||
|
|
d8166e9a8e | ||
|
|
0a0ad2f119 | ||
|
|
137af3637b | ||
|
|
d2863b7c4c | ||
|
|
0f721a17ae | ||
|
|
72014ab2d7 | ||
|
|
2d86d8c77a | ||
|
|
0bcbcd94b8 | ||
|
|
f353ae31d8 | ||
|
|
24cd121642 | ||
|
|
11de78ce51 | ||
|
|
6b75672534 | ||
|
|
c0f886b670 | ||
|
|
784b2b42e7 | ||
|
|
9dc877910f | ||
|
|
a65f9f5d6c | ||
|
|
4d417ea4bf | ||
|
|
2e245a1035 | ||
|
|
049542b7ed | ||
|
|
780cc982b7 | ||
|
|
848422d256 | ||
|
|
f1e96e3097 | ||
|
|
90f4265389 | ||
|
|
37f9ce4bb4 | ||
|
|
ceb3e583a3 | ||
|
|
436d6f70bb | ||
|
|
72621c2929 | ||
|
|
af07c6c9d9 | ||
|
|
740f5b9d49 | ||
|
|
cb1368f07c | ||
|
|
755325f9a5 | ||
|
|
dd914c7ecf | ||
|
|
489583708e | ||
|
|
58580b7f4b | ||
|
|
d9a120c760 | ||
|
|
fb832eff82 | ||
|
|
75b0a6f7bb | ||
|
|
40707d8602 | ||
|
|
ac45266ee4 | ||
|
|
522aeb5264 | ||
|
|
1d24db1686 | ||
|
|
527043b54d | ||
|
|
56b62346b4 | ||
|
|
ee39f99d23 | ||
|
|
a223243db4 | ||
|
|
b59bdc4f1a | ||
|
|
d087f9f024 | ||
|
|
1607a59239 | ||
|
|
70589cf88a | ||
|
|
c429fbb202 | ||
|
|
f24375e13a | ||
|
|
d428f4d4c1 | ||
|
|
f0e07518c9 | ||
|
|
29709c3c51 | ||
|
|
fb71fbd5ae | ||
|
|
a1f06c5548 | ||
|
|
10e8a420c0 | ||
|
|
8149eef10a | ||
|
|
c4b98ef376 | ||
|
|
621d5c22bc | ||
|
|
98000bb007 | ||
|
|
d90a33bb0c | ||
|
|
d795fc7d60 | ||
|
|
b397ece0ab | ||
|
|
0a11f182b0 | ||
|
|
7c05368e8f | ||
|
|
49ceeebbf8 | ||
|
|
01867c86e0 | ||
|
|
008890dfa1 | ||
|
|
5d846e80b2 | ||
|
|
ce6bbe44ff | ||
|
|
3bc15788af | ||
|
|
faa5dddb0a | ||
|
|
55d03d426a | ||
|
|
da9aa22fa7 | ||
|
|
06ce137903 | ||
|
|
5462c3bbf8 | ||
|
|
bae4af7490 | ||
|
|
bfd2bfbc11 | ||
|
|
8de7fde8bb | ||
|
|
e5e8cde28e | ||
|
|
09d0b26aea | ||
|
|
87ba4dd181 | ||
|
|
282b28da5e | ||
|
|
d519c4099f | ||
|
|
0be73ac433 | ||
|
|
b0c029887f | ||
|
|
ce16f80848 | ||
|
|
cc407bc1c3 | ||
|
|
8e5633d9af | ||
|
|
125c3865a3 | ||
|
|
9bfe56f127 | ||
|
|
c3545cf836 | ||
|
|
16c3030bb4 | ||
|
|
b6b803fe58 | ||
|
|
b0c89fe440 | ||
|
|
c1545a5a5e | ||
|
|
addd0a431c | ||
|
|
0e7121aafc | ||
|
|
b48a24dfb6 | ||
|
|
cf22fb1ea3 | ||
|
|
af73be4d1e | ||
|
|
5d586597f5 | ||
|
|
fd75a63570 | ||
|
|
fdba1ad005 | ||
|
|
89d32c1ff5 | ||
|
|
d41b2d70e7 | ||
|
|
d8409f8dac | ||
|
|
2d5768a612 | ||
|
|
77b2be8202 | ||
|
|
97b4b046fc | ||
|
|
84fb582e2a | ||
|
|
e5f67a2394 | ||
|
|
c2c33130ab | ||
|
|
947d8e3f05 | ||
|
|
f3088ad7d0 | ||
|
|
d51076b219 | ||
|
|
01b07559f8 | ||
|
|
9d2f906439 | ||
|
|
0334d55da1 | ||
|
|
40d27ad53e | ||
|
|
695c78f631 | ||
|
|
967018828a | ||
|
|
efe99ddd80 | ||
|
|
464f4eb3e2 | ||
|
|
60d4eadcd1 | ||
|
|
784435d3ca | ||
|
|
b04f0a5160 | ||
|
|
28ba2ea754 | ||
|
|
be436183cf | ||
|
|
60c66764cb | ||
|
|
0a0f0389c3 | ||
|
|
76bf648f94 |
14
.editorconfig
Normal file
14
.editorconfig
Normal file
@@ -0,0 +1,14 @@
|
||||
# EditorConfig for Perl project
|
||||
# - Indentation: tabs
|
||||
# - Tab width: 8
|
||||
# - Indentation style: Ratliff
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = tab
|
||||
indent_size = 8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
56
CHANGELOG.md
56
CHANGELOG.md
@@ -1,5 +1,55 @@
|
||||
## Changelog
|
||||
|
||||
#### 2.500 (September 4, 2025)
|
||||
* Add support for the Webmin webserver to work in both HTTP and HTTPS modes at the same time
|
||||
* Add distinct warning to the login page if the connection is not secure
|
||||
* Add support for timeouts in temporary rules in FirewallD module
|
||||
* Add support for the new Dovecot version 2.4
|
||||
* Add support for MariaDB version 12 #2522
|
||||
* Add support for IMAP through a local command for Usermin
|
||||
* Add latest SSLeay support for redirects to SSL work
|
||||
* Add improvements to "Bootup and Shutdown" module for _systemd_ systems
|
||||
* Add field for secondary server key in BIND module
|
||||
* Add reversible encryption helpers API
|
||||
* Add API to display relative dates
|
||||
* Add API to mask sensitive text, like displayed passwords, unless hovered over
|
||||
* Add status monitor for PHP FPM #2499
|
||||
* Add support for DNF5 format in the "Software Packages" module
|
||||
* Add support for redirecting to the enforced domain when the `musthost_redirect` directive is set
|
||||
* Add option to customize the SMTP login for scheduled background monitoring in the "System and Server Status" module
|
||||
* Change to show relative dates in "Webmin Users: Current Login Sessions" and "Webmin Actions Log: Search Results" pages
|
||||
* Change "Last Logins" on the dashboard to show usernames, relative dates, and all users from the past 3 days
|
||||
* Change to always enable HSTS by default
|
||||
* Fix MySQL/MariaDB to remove obsolete `set-variable` options that break modern config files #2497
|
||||
* Fix download link in table rows in MySQL/MariaDB module
|
||||
* Fix module not to fail on old MySQL 5.5
|
||||
* Update the Authentic theme to the latest version with various improvements and fixes:
|
||||
- Add support to automatically set the color palette based on OS or browser preferences
|
||||
- Add improvements to tooltips in dark palette
|
||||
- Change the default shortcut key for toggling the light/dark palette
|
||||
- Change the default shortcut key for toggling right slider
|
||||
- Change wording to use "shortcut" instead of "hotkey"
|
||||
- Change the default maximum column width
|
||||
- Fix navigation menu load in proxy mode #2502
|
||||
- Fix navigation menu to always stay in sync with the product switch
|
||||
- Fix sporadic issue where the navigation menu disappeared and the content page was shifted
|
||||
- Fix info alert text color and button color in the dark palette
|
||||
- Fix styling of checkboxes and radios for backup and restore pages in Virtualmin
|
||||
- Fix styling for extra backup destinations in Virtualmin
|
||||
- Fix advanced schedule display in the cron chooser in Virtualmin
|
||||
[More details...](https://github.com/webmin/authentic-theme/releases/tag/25.00)
|
||||
|
||||
#### 2.402 (June 16, 2025)
|
||||
* Update the Authentic theme to the latest version with various fixes and improvements
|
||||
* Fix support for EL10-based systems
|
||||
|
||||
#### 2.401 (June 2, 2025)
|
||||
* Add forgotten password recovery support for Virtualmin mailbox users
|
||||
* Add forgotten password recovery support in Usermin
|
||||
* Fix account lock status check in MySQL/MariaDB module that was blocking new database user creation #2484
|
||||
* Fix to prevent safe users from sending emails
|
||||
* Fix to always show password recovery link if enabled
|
||||
|
||||
#### 2.400 (May 25, 2025)
|
||||
* Add built-in support for forgotten password recovery
|
||||
* Add support for SSL certificates and DNS over TLS in the BIND module
|
||||
@@ -112,7 +162,7 @@
|
||||
* Update the Authentic theme to the latest version with various fixes and improvements
|
||||
|
||||
#### 2.201 (July 24, 2024)
|
||||
* Fix real-time monitoring not updating graphs in the Dashboard [#2222](https://github.com/webmin/webmin/issues/2222)
|
||||
* Fix real-time monitoring not updating graphs in the dashboard [#2222](https://github.com/webmin/webmin/issues/2222)
|
||||
* Fix Terminal module to work correctly with _sudo_-capable users [#2223](https://github.com/webmin/webmin/issues/2223)
|
||||
|
||||
#### 2.200 (July 21, 2024)
|
||||
@@ -225,7 +275,7 @@
|
||||
* Add support for editing ACLs in File Manager
|
||||
* Add support to configure SSL connection for MySQL/MariaDB module
|
||||
* Add support for compressed backups in PostgreSQL module
|
||||
* Add support for displaying inodes too in Disk Usage in the Dashboard
|
||||
* Add support for displaying inodes too in Disk Usage in the dashboard
|
||||
* Add better support for CloudLinux
|
||||
* Fix to always default to RSA key type in Let's Encrypt requests
|
||||
* Fix setup repository script for Oracle
|
||||
@@ -233,7 +283,7 @@
|
||||
* Fix support for SpamAssassin 4
|
||||
* Fix to use system default hashing format for `htpasswd` file
|
||||
* Fix FastRPC issues
|
||||
* Update the Authentic theme to the latest version, with sped-up Dashboard performance
|
||||
* Update the Authentic theme to the latest version, with sped-up dashboard performance
|
||||
|
||||
#### 2.013 (January 19, 2023)
|
||||
* Fix Authentic theme issue with error handling
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -7,6 +7,7 @@ edit_readonly=This Webmin user should not be edited as it is managed by the $1 m
|
||||
edit_rights=Webmin حقوق وصول المستخدم
|
||||
edit_cloneof=استنساخ المستخدم Webmin
|
||||
edit_real=الاسم الحقيقي
|
||||
edit_email=البريد الإلكتروني للتواصل
|
||||
edit_group=عضو في المجموعة
|
||||
edit_pass=كلمه السر
|
||||
edit_same=نفس يونيكس
|
||||
@@ -60,6 +61,7 @@ edit_selall=اختر الكل
|
||||
edit_invert=اختيار المقلوب
|
||||
edit_hide=إخفاء غير المستخدمة
|
||||
edit_switch=التبديل إلى المستخدم
|
||||
edit_forgot=إرسال رابط إعادة تعيين كلمة المرور
|
||||
edit_return=Webmin المستخدم
|
||||
edit_return2=مجموعة Webmin
|
||||
edit_rbacdeny=وضع الوصول RBAC
|
||||
@@ -118,6 +120,7 @@ save_edays=لا أيام للسماح المحدد
|
||||
save_ehours=أوقات مفقودة أو غير صالحة للسماح بها
|
||||
save_ehours2=يجب أن يكون وقت البدء للسماح قبل النهاية
|
||||
save_etemp=The option to force a password change at next login cannot be used unless <a href='$1'>prompting users to enter new passwords</a> is enabled
|
||||
save_eemail=لا يمكن أن يحتوي عنوان البريد الإلكتروني على الحرف :
|
||||
|
||||
cert_title=طلب شهادة
|
||||
cert_msg=يسمح لك هذا النموذج بطلب شهادة عميل SSL والتي سيتم استخدامها في المستقبل لمنحك حق الوصول إلى Webmin بدلاً من اسم المستخدم وكلمة المرور الخاصة بك. هذا أكثر أمانًا ، ولكن نظرًا لأن المصادقة تلقائية ، فلن تتمكن من التبديل إلى مستخدم مختلف عند استخدام الشهادة.
|
||||
@@ -148,6 +151,9 @@ log_sync=تغيير تزامن المستخدم يونيكس
|
||||
log_sql=تم تغيير قاعدة بيانات المستخدم والمجموعة
|
||||
log_twofactor=Enrolled user $1 with two-factor provider $2
|
||||
log_onefactor=Dis-enrolled user $1 for two-factor authentication
|
||||
log_forgot_send=تم إرسال بريد إلكتروني لإعادة تعيين كلمة المرور للمستخدم $1 إلى $2
|
||||
log_forgot_reset=إعادة تعيين كلمة المرور للمستخدم $1 مع البريد الإلكتروني $2
|
||||
log_forgot_admin=أرسل المسؤول بريدًا إلكترونيًا لإعادة تعيين كلمة المرور للمستخدم $1 إلى $2
|
||||
|
||||
gedit_ecannot=غير مسموح لك بتحرير المجموعات
|
||||
gedit_title=تحرير Webmin Group
|
||||
@@ -363,3 +369,20 @@ sql_timeout_def=استخدام مهلة الاتصال الافتراضية (60
|
||||
sql_timeout_for=إغلاق الاتصالات المخبأة بعد
|
||||
sql_timeout_secs=ثواني
|
||||
sql_etimeout=يجب أن تكون مهلة الاتصال المخزنة مؤقتًا رقمًا
|
||||
|
||||
forgot_title=إرسال رابط إعادة تعيين كلمة المرور
|
||||
forgot_err=فشل في إرسال رابط إعادة تعيين كلمة المرور
|
||||
forgot_header=تفاصيل رابط إعادة تعيين كلمة المرور
|
||||
forgot_user=إعادة تعيين كلمة المرور للمستخدم
|
||||
forgot_email=طريقة توصيل الرابط
|
||||
forgot_email_def=عرض الرابط في Webmin
|
||||
forgot_email_sel=أرسل الرابط عبر البريد الإلكتروني إلى
|
||||
forgot_send=إرسال الرابط
|
||||
forgot_desc=تتيح لك هذه الصفحة إنشاء أو إرسال رابط لاختيار كلمة مرور جديدة لمستخدم Webmin إلى أي عنوان بريد إلكتروني. انتبه جيدًا إلى عنوان البريد الإلكتروني الذي تُرسل إليه هذا الرابط، لأنه سيمنحك فعليًا حق الوصول الكامل إلى بيانات تسجيل الدخول إلى Webmin!
|
||||
forgot_adminmsg=لقد تلقيت هذا البريد الإلكتروني من مسؤول نظام Webmin في $3، لتسجيل الدخول $1.\n\nإذا كنت ترغب في المتابعة بإعادة تعيين كلمة المرور، فاتبع هذا الرابط:\n$2
|
||||
forgot_sending=إرسال بريد إلكتروني لإعادة تعيين كلمة المرور لـ $2 إلى $1 ..
|
||||
forgot_sent=.. مرسل
|
||||
forgot_link=يمكن استخدام الرابط أدناه لإعادة تعيين كلمة مرور Webmin لـ $1 للدقائق $2 القادمة :
|
||||
forgot_enosudo=Sudo غير متوفر على هذا النظام!
|
||||
forgot_ecansudo=المستخدم الذي تم إدخاله لا يملك صلاحيات sudo
|
||||
forgot_eunix=المستخدم القادر على استخدام sudo غير موجود!
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
index_screate=Създайте нов безопасен потребител.
|
||||
|
||||
edit_title3=Създайте безопасен потребител на Webmin
|
||||
edit_email=Контактен имейл
|
||||
edit_locale=локал
|
||||
edit_forgot=Изпрати линк за нулиране на паролата
|
||||
edit_safe=Ниво на привилегии
|
||||
edit_safe0=неограничен
|
||||
edit_safe1=Само безопасни модули
|
||||
edit_unsafe=Нулиране до неограничено
|
||||
|
||||
save_eunixname=Потребителското име '$1' не е потребител на Unix и затова не може да се използва в безопасен режим
|
||||
save_eemail=Имейл адресът не може да съдържа символа :
|
||||
|
||||
acl_locale=Може ли да промени локала?
|
||||
|
||||
log_forgot_send=Изпратен имейл за нулиране на паролата за потребител $1 до $2
|
||||
log_forgot_reset=Нулиране на паролата за потребител $1 с имейл $2
|
||||
log_forgot_admin=Администраторът изпрати имейл за нулиране на паролата за потребител $1 до $2
|
||||
|
||||
sync_modify=Преименувайте съответстващия потребител на Webmin, когато потребител на Unix е преименуван.
|
||||
|
||||
sessions_all=Всички сесии..
|
||||
@@ -22,3 +29,20 @@ sql_timeout_def=Използвайте времето за изчакване н
|
||||
sql_timeout_for=Затворете кешираните връзки след
|
||||
sql_timeout_secs=секунди
|
||||
sql_etimeout=Времето за изчакване на кешираната връзка трябва да бъде число
|
||||
|
||||
forgot_title=Изпрати линк за нулиране на паролата
|
||||
forgot_err=Изпращането на линк за нулиране на паролата не бе успешно
|
||||
forgot_header=Подробности за връзката за нулиране на паролата
|
||||
forgot_user=Нулиране на паролата за потребителя
|
||||
forgot_email=Метод за доставка на връзки
|
||||
forgot_email_def=Показване на линк в Webmin
|
||||
forgot_email_sel=Изпрати линк по имейл до
|
||||
forgot_send=Изпрати линк
|
||||
forgot_desc=Тази страница ви позволява да генерирате или изпратите линк, който може да се използва за избор на нова парола за потребител на Webmin, до произволен имейл адрес. Внимавайте на кой адрес изпращате този линк, тъй като той ефективно ще ви предостави пълен достъп до входа в Webmin!
|
||||
forgot_adminmsg=Получавате този имейл от администратора на системата Webmin на адрес $3, за вход $1.\n\nАко искате да продължите с нулирането на паролата, следвайте тази връзка:\n$2
|
||||
forgot_sending=Изпраща се имейл за нулиране на паролата за $2 до $1 ..
|
||||
forgot_sent=.. изпратен
|
||||
forgot_link=Връзката по-долу може да се използва за нулиране на паролата за Webmin за $1 за следващите $2 минути :
|
||||
forgot_enosudo=Sudo не е наличен на тази система!
|
||||
forgot_ecansudo=Въведеният потребител няма sudo разрешения
|
||||
forgot_eunix=Въведеният потребител, който поддържа sudo, не съществува!
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
index_screate=Creeu un nou usuari segur.
|
||||
|
||||
edit_title3=Creeu un usuari Webmin segur
|
||||
edit_email=Correu electrònic de contacte
|
||||
edit_locale=Localització
|
||||
edit_forgot=Enviar enllaç de restabliment de contrasenya
|
||||
edit_safe=Nivell de privilegi
|
||||
edit_safe0=Sense restriccions
|
||||
edit_safe1=Només mòduls segurs
|
||||
edit_unsafe=Restableix-lo a sense restriccions
|
||||
|
||||
save_eunixname=El nom d'usuari '$1' no és un usuari Unix, per la qual cosa no es pot utilitzar en mode segur
|
||||
save_eemail=L'adreça de correu electrònic no pot contenir el caràcter :
|
||||
|
||||
acl_locale=Es pot canviar la configuració regional?
|
||||
|
||||
log_forgot_send=S'ha enviat un correu electrònic de restabliment de contrasenya per a l'usuari $1 a $2
|
||||
log_forgot_reset=Restableix la contrasenya per a l'usuari $1 amb el correu electrònic $2
|
||||
log_forgot_admin=L'administrador ha enviat un correu electrònic de restabliment de contrasenya per a l'usuari $1 a $2
|
||||
|
||||
sync_modify=Canvieu el nom de l'usuari Webmin coincident quan es canvia el nom d'un usuari Unix.
|
||||
|
||||
sessions_all=Totes les sessions..
|
||||
@@ -22,3 +29,20 @@ sql_timeout_def=Utilitza el temps d'espera de connexió predeterminat (60 segons
|
||||
sql_timeout_for=Tanqueu les connexions a la memòria cau després
|
||||
sql_timeout_secs=segons
|
||||
sql_etimeout=El temps d'espera de la connexió a la memòria cau ha de ser un número
|
||||
|
||||
forgot_title=Enviar enllaç de restabliment de contrasenya
|
||||
forgot_err=No s'ha pogut enviar l'enllaç de restabliment de la contrasenya
|
||||
forgot_header=Detalls de l'enllaç de restabliment de contrasenya
|
||||
forgot_user=Restablir la contrasenya de l'usuari
|
||||
forgot_email=Mètode de lliurament d'enllaços
|
||||
forgot_email_def=Mostra l'enllaç a Webmin
|
||||
forgot_email_sel=Enviar enllaç per correu electrònic a
|
||||
forgot_send=Enviar enllaç
|
||||
forgot_desc=Aquesta pàgina us permet generar o enviar un enllaç que es pot utilitzar per seleccionar una nova contrasenya per a un usuari de Webmin a qualsevol adreça de correu electrònic. Aneu amb compte a quina adreça envieu aquest enllaç, ja que us atorgarà accés complet a l'inici de sessió de Webmin!
|
||||
forgot_adminmsg=Heu rebut aquest correu electrònic de l'administrador del sistema Webmin a $3, per a l'inici de sessió $1.\n\nSi voleu continuar amb el restabliment de la contrasenya, seguiu aquest enllaç:\n$2
|
||||
forgot_sending=Enviant un correu electrònic de restabliment de contrasenya de $2 a $1. ..
|
||||
forgot_sent=.. enviat
|
||||
forgot_link=L'enllaç següent es pot utilitzar per restablir la contrasenya de Webmin per a $1 durant els propers $2 minuts :
|
||||
forgot_enosudo=El Sudo no està disponible en aquest sistema!
|
||||
forgot_ecansudo=L'usuari introduït no té permisos de sudo
|
||||
forgot_eunix=L'usuari amb capacitat per a sudo introduït no existeix!
|
||||
|
||||
@@ -5,6 +5,7 @@ index_eulist=Seznam uživatelů se nepodařilo uvést: $1
|
||||
index_eglist=Seznam se nezdařil: $1
|
||||
|
||||
edit_title3=Vytvořte bezpečného webmin uživatele
|
||||
edit_email=Kontaktní e-mail
|
||||
edit_twofactor=Typ dvoufaktorové autentizace
|
||||
edit_twofactorprov=Použití poskytovatele $1 s ID $2
|
||||
edit_twofactorcancel=Odstraňte požadavek na dvoufaktorovou autentizaci
|
||||
@@ -15,6 +16,7 @@ edit_nochange=Vynutit dny změny hesla?
|
||||
edit_egone=Vybraný uživatel již neexistuje!
|
||||
edit_overlay=Překrytí osobního motivu
|
||||
edit_overlayglobal=Žádné - použijte výchozí nastavení motivu
|
||||
edit_forgot=Odeslat odkaz pro obnovení hesla
|
||||
edit_global=Oprávnění pro všechny moduly
|
||||
edit_temppass=Vynutit změnu při příštím přihlášení
|
||||
edit_proto=Typ úložiště
|
||||
@@ -30,6 +32,7 @@ edit_unsafe=Obnovit na neomezené
|
||||
save_eunixname=Uživatelské jméno '$1' není uživatel Unixu, a proto jej nelze použít v nouzovém režimu
|
||||
save_eoverlay=Překrytí motivu nelze vybrat, pokud není motivem
|
||||
save_etemp=Možnost vynutit změnu hesla při příštím přihlášení nelze použít, pokud není povoleno <a href='$1'>vyzývající uživatele k zadání nových hesel</a>
|
||||
save_eemail=E-mailová adresa nesmí obsahovat znak :
|
||||
|
||||
delete_eanonuser=Tento uživatel je používán pro anonymní přístup k modulu
|
||||
|
||||
@@ -43,6 +46,9 @@ log_joingroup=Přidáno $1 Webmin users do skupiny $2
|
||||
log_sql=Změněna databáze uživatelů a skupin
|
||||
log_twofactor=Registrovaný uživatel $1 s dvoufaktorovým poskytovatelem $2
|
||||
log_onefactor=Registrovaný uživatel $1 pro dvoufaktorové ověření
|
||||
log_forgot_send=E-mail pro resetování hesla odeslán uživateli $1 uživateli $2
|
||||
log_forgot_reset=Obnovení hesla pro uživatele $1 s e-mailem $2
|
||||
log_forgot_admin=Administrátor odeslal e-mail s resetováním hesla pro uživatele $1 uživateli $2
|
||||
|
||||
gedit_desc=Popis skupiny
|
||||
gedit_egone=Vybraná skupina již neexistuje!
|
||||
@@ -161,3 +167,20 @@ twofactor_failed=.. zápis se nezdařil: $1
|
||||
twofactor_done=.. kompletní. Vaše ID u tohoto poskytovatele je <tt>$1</tt>.
|
||||
twofactor_setup=V tomto systému zatím není aktivována dvoufaktorová autentizace, ale lze ji zapnout pomocí modulu <a href='$1'>Webmin Configuration</a>.
|
||||
twofactor_ebutton=Nebylo kliknuto žádné tlačítko!
|
||||
|
||||
forgot_title=Odeslat odkaz pro obnovení hesla
|
||||
forgot_err=Odeslání odkazu pro obnovení hesla se nezdařilo
|
||||
forgot_header=Podrobnosti o odkazu pro resetování hesla
|
||||
forgot_user=Obnovit heslo pro uživatele
|
||||
forgot_email=Způsob doručení odkazu
|
||||
forgot_email_def=Zobrazit odkaz ve Webminu
|
||||
forgot_email_sel=Odeslat odkaz e-mailem na
|
||||
forgot_send=Odeslat odkaz
|
||||
forgot_desc=Tato stránka vám umožňuje vygenerovat nebo odeslat odkaz, který lze použít k výběru nového hesla pro uživatele Webminu, na libovolnou e-mailovou adresu. Buďte opatrní, na kterou adresu tento odkaz odesíláte, protože vám v podstatě poskytne plný přístup k přihlášení do Webminu!
|
||||
forgot_adminmsg=Tento e-mail vám byl zaslán od administrátora systému Webmin na adrese $3 pro přihlášení $1.\n\nPokud chcete pokračovat v resetování hesla, klikněte na tento odkaz:\n$2
|
||||
forgot_sending=Odesílání e-mailu pro resetování hesla pro $2 na $1 ..
|
||||
forgot_sent=.. odesláno
|
||||
forgot_link=Níže uvedený odkaz lze použít k resetování hesla Webmin pro $1 na následujících $2 minut :
|
||||
forgot_enosudo=Sudo není na tomto systému k dispozici!
|
||||
forgot_ecansudo=Zadaný uživatel nemá oprávnění sudo
|
||||
forgot_eunix=Zadaný uživatel s podporou sudo neexistuje!
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
index_screate=Opret en ny sikker bruger.
|
||||
|
||||
edit_title3=Opret sikker webmin-bruger
|
||||
edit_email=Kontakt e-mail
|
||||
edit_locale=Lokalitet
|
||||
edit_forgot=Send link til nulstilling af adgangskode
|
||||
edit_safe=Privilegieniveau
|
||||
edit_safe0=Ubegrænset
|
||||
edit_safe1=Kun sikre moduler
|
||||
edit_unsafe=Nulstil til ubegrænset
|
||||
|
||||
save_eunixname=Brugernavnet '$1' er ikke en Unix-bruger, og kan derfor ikke bruges i sikker tilstand
|
||||
save_eemail=E-mailadressen må ikke indeholde tegnet:
|
||||
|
||||
acl_locale=Kan du ændre lokalitet?
|
||||
|
||||
log_forgot_send=Sendte e-mail om nulstilling af adgangskode for bruger $1 til $2
|
||||
log_forgot_reset=Nulstil adgangskode for bruger $1 med e-mail $2
|
||||
log_forgot_admin=Admin sendte en e-mail med nulstilling af adgangskode for bruger $1 til $2
|
||||
|
||||
sync_modify=Omdøb den matchende Webmin-bruger, når en Unix-bruger omdøbes.
|
||||
|
||||
sessions_all=Alle sessioner..
|
||||
@@ -22,3 +29,20 @@ sql_timeout_def=Brug standardforbindelse timeout (60 sekunder)
|
||||
sql_timeout_for=Luk cachelagrede forbindelser efter
|
||||
sql_timeout_secs=sekunder
|
||||
sql_etimeout=Timeout for cachelagret forbindelse skal være et tal
|
||||
|
||||
forgot_title=Send link til nulstilling af adgangskode
|
||||
forgot_err=Kunne ikke sende link til nulstilling af adgangskode
|
||||
forgot_header=Detaljer om link til nulstilling af adgangskode
|
||||
forgot_user=Nulstil adgangskode for bruger
|
||||
forgot_email=Linkleveringsmetode
|
||||
forgot_email_def=Vis link i Webmin
|
||||
forgot_email_sel=Send link via e-mail til
|
||||
forgot_send=Send link
|
||||
forgot_desc=Denne side giver dig mulighed for at generere eller sende et link, der kan bruges til at vælge en ny adgangskode til en Webmin-bruger, til en hvilken som helst e-mailadresse. Vær forsigtig med, hvilken adresse du sender dette link til, da det effektivt vil give fuld adgang til Webmin-login!
|
||||
forgot_adminmsg=Du modtager denne e-mail fra administratoren af Webmin-systemet på $3, for login $1.\n\nHvis du vil fortsætte med at nulstille adgangskoden, skal du følge dette link:\n$2
|
||||
forgot_sending=Sender e-mail om nulstilling af adgangskode for $2 til $1 ..
|
||||
forgot_sent=.. sendt
|
||||
forgot_link=Linket nedenfor kan bruges til at nulstille Webmin-adgangskoden for $1 i de næste $2 minutter :
|
||||
forgot_enosudo=Sudo er ikke tilgængelig på dette system!
|
||||
forgot_ecansudo=Den indtastede bruger har ikke sudo-tilladelser
|
||||
forgot_eunix=Den indtastede sudo-kompatible bruger findes ikke!
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
index_screate=Δημιουργήστε ένα νέο ασφαλές χρήστη.
|
||||
|
||||
edit_title3=Δημιουργία ασφαλούς χρήστη Webmin
|
||||
edit_email=Ηλεκτρονική διεύθυνση επικοινωνίας
|
||||
edit_locale=Μικρός λοβός
|
||||
edit_forgot=Αποστολή συνδέσμου επαναφοράς κωδικού πρόσβασης
|
||||
edit_safe=Επίπεδο προνομίου
|
||||
edit_safe0=Απεριόριστος
|
||||
edit_safe1=Μόνο ασφαλή μονάδες
|
||||
edit_unsafe=Επαναφορά σε απεριόριστη
|
||||
|
||||
save_eunixname=Το όνομα χρήστη '$1' δεν είναι χρήστης Unix και έτσι δεν μπορεί να χρησιμοποιηθεί σε ασφαλή λειτουργία
|
||||
save_eemail=Η διεύθυνση ηλεκτρονικού ταχυδρομείου δεν μπορεί να περιέχει τον χαρακτήρα :
|
||||
|
||||
acl_locale=Μπορεί να αλλάξει τοπική;
|
||||
|
||||
log_forgot_send=Αποστολή email επαναφοράς κωδικού πρόσβασης για τον χρήστη $1 στον χρήστη $2
|
||||
log_forgot_reset=Επαναφορά κωδικού πρόσβασης για τον χρήστη $1 με email $2
|
||||
log_forgot_admin=Ο διαχειριστής έστειλε email επαναφοράς κωδικού πρόσβασης για τον χρήστη $1 στον χρήστη $2
|
||||
|
||||
sync_modify=Μετονομάστε τον αντίστοιχο χρήστη Webmin όταν μετονομάζεται ένας χρήστης Unix.
|
||||
|
||||
sessions_all=Όλες οι συνεδρίες..
|
||||
@@ -22,3 +29,20 @@ sql_timeout_def=Χρήση προεπιλεγμένου χρονικού ορί
|
||||
sql_timeout_for=Κλείστε τις προσωρινά αποθηκευμένες συνδέσεις μετά
|
||||
sql_timeout_secs=δευτερόλεπτα
|
||||
sql_etimeout=Το χρονικό όριο λήξης της προσωρινής αποθήκευσης πρέπει να είναι αριθμός
|
||||
|
||||
forgot_title=Αποστολή συνδέσμου επαναφοράς κωδικού πρόσβασης
|
||||
forgot_err=Αποτυχία αποστολής συνδέσμου επαναφοράς κωδικού πρόσβασης
|
||||
forgot_header=Λεπτομέρειες συνδέσμου επαναφοράς κωδικού πρόσβασης
|
||||
forgot_user=Επαναφορά κωδικού πρόσβασης για τον χρήστη
|
||||
forgot_email=Μέθοδος παράδοσης συνδέσμου
|
||||
forgot_email_def=Εμφάνιση συνδέσμου στο Webmin
|
||||
forgot_email_sel=Αποστολή συνδέσμου μέσω email στο
|
||||
forgot_send=Αποστολή συνδέσμου
|
||||
forgot_desc=Αυτή η σελίδα σάς επιτρέπει να δημιουργήσετε ή να στείλετε έναν σύνδεσμο που μπορεί να χρησιμοποιηθεί για την επιλογή ενός νέου κωδικού πρόσβασης για έναν χρήστη Webmin σε οποιαδήποτε διεύθυνση email. Να είστε προσεκτικοί σε ποια διεύθυνση στέλνετε αυτόν τον σύνδεσμο, καθώς ουσιαστικά θα παρέχει πλήρη πρόσβαση στα στοιχεία σύνδεσης του Webmin!
|
||||
forgot_adminmsg=Λαμβάνετε αυτό το email από τον διαχειριστή του συστήματος Webmin στο $3, για τη σύνδεση $1.\n\nΕάν θέλετε να προχωρήσετε στην επαναφορά του κωδικού πρόσβασης, ακολουθήστε αυτόν τον σύνδεσμο:\n$2
|
||||
forgot_sending=Αποστολή email επαναφοράς κωδικού πρόσβασης για $2 σε $1 ..
|
||||
forgot_sent=.. έστειλε
|
||||
forgot_link=Ο παρακάτω σύνδεσμος μπορεί να χρησιμοποιηθεί για την επαναφορά του κωδικού πρόσβασης Webmin για το $1 για τα επόμενα $2 λεπτά :
|
||||
forgot_enosudo=Το Sudo δεν είναι διαθέσιμο σε αυτό το σύστημα!
|
||||
forgot_ecansudo=Ο χρήστης που καταχωρήθηκε δεν έχει δικαιώματα sudo
|
||||
forgot_eunix=Ο χρήστης με δυνατότητα sudo που καταχωρήσατε δεν υπάρχει!
|
||||
|
||||
@@ -355,6 +355,7 @@ unix_utable=Allowed Unix users
|
||||
sessions_title=Current Login Sessions
|
||||
sessions_id=Session ID
|
||||
sessions_user=Webmin user
|
||||
sessions_login_ago=Last active ago
|
||||
sessions_login=Last active at
|
||||
sessions_host=IP address
|
||||
sessions_lview=View logs..
|
||||
|
||||
@@ -1,18 +1,25 @@
|
||||
index_screate=Crea un nuevo usuario seguro.
|
||||
|
||||
edit_title3=Crear usuario seguro de Webmin
|
||||
edit_email=Correo electrónico de contacto
|
||||
edit_locale=Lugar
|
||||
edit_forgot=Enviar enlace de restablecimiento de contraseña
|
||||
edit_safe=Nivel de privilegio
|
||||
edit_safe0=Irrestricto
|
||||
edit_safe1=Solo módulos seguros
|
||||
edit_unsafe=Restablecer a sin restricciones
|
||||
|
||||
save_eunixname=El nombre de usuario '$1' no es un usuario de Unix, por lo que no se puede usar en modo seguro
|
||||
save_eemail=La dirección de correo electrónico no puede contener el carácter :
|
||||
|
||||
delete_eanonuser=Este usuario se está utilizando para acceder al módulo anónimo
|
||||
|
||||
acl_locale=¿Se puede cambiar de ubicación?
|
||||
|
||||
log_forgot_send=Se envió un correo electrónico de restablecimiento de contraseña para el usuario $1 a $2
|
||||
log_forgot_reset=Restablecer la contraseña del usuario $1 con el correo electrónico $2
|
||||
log_forgot_admin=El administrador envió un correo electrónico de restablecimiento de contraseña para el usuario $1 a $2
|
||||
|
||||
sync_modify=Cambie el nombre del usuario de Webmin coincidente cuando se cambie el nombre de un usuario de Unix.
|
||||
|
||||
sessions_actions=Comportamiento..
|
||||
@@ -35,3 +42,20 @@ sql_timeout_def=Usar tiempo de espera de conexión predeterminado (60 segundos)
|
||||
sql_timeout_for=Cerrar las conexiones en caché después
|
||||
sql_timeout_secs=segundos
|
||||
sql_etimeout=El tiempo de espera de la conexión en caché debe ser un número
|
||||
|
||||
forgot_title=Enviar enlace de restablecimiento de contraseña
|
||||
forgot_err=No se pudo enviar el enlace de restablecimiento de contraseña
|
||||
forgot_header=Detalles del enlace de restablecimiento de contraseña
|
||||
forgot_user=Restablecer contraseña para el usuario
|
||||
forgot_email=Método de entrega del enlace
|
||||
forgot_email_def=Mostrar enlace en Webmin
|
||||
forgot_email_sel=Enviar enlace por correo electrónico a
|
||||
forgot_send=Enviar enlace
|
||||
forgot_desc=Esta página le permite generar o enviar un enlace a cualquier dirección de correo electrónico para seleccionar una nueva contraseña para un usuario de Webmin. Tenga cuidado con la dirección a la que envía este enlace, ya que otorgará acceso completo al inicio de sesión de Webmin
|
||||
forgot_adminmsg=Estás recibiendo este correo electrónico del administrador del sistema Webmin en $3, para el inicio de sesión $1.\n\nSi deseas continuar con el restablecimiento de la contraseña, sigue este enlace:\n$2
|
||||
forgot_sending=Enviando correo electrónico de restablecimiento de contraseña de $2 a $1 ..
|
||||
forgot_sent=.. enviado
|
||||
forgot_link=El siguiente enlace se puede utilizar para restablecer la contraseña de Webmin para $1 durante los próximos $2 minutos :
|
||||
forgot_enosudo=¡Sudo no está disponible en este sistema!
|
||||
forgot_ecansudo=El usuario ingresado no tiene permisos de sudo
|
||||
forgot_eunix=¡El usuario con capacidad sudo ingresado no existe!
|
||||
|
||||
@@ -6,6 +6,7 @@ index_eulist=Ezin izan da erabiltzaileak zerrendatu: $1
|
||||
index_eglist=Huts egin du taldeen zerrendak: $1
|
||||
|
||||
edit_title3=Sortu Webmin erabiltzaile segurua
|
||||
edit_email=Harremanetarako helbide elektronikoa
|
||||
edit_twofactor=Bi faktoreen autentikazio mota
|
||||
edit_twofactorprov=Hornitzailea $1 erabiliz $2
|
||||
edit_twofactorcancel=Kendu bi faktoreen autentikazio baldintza
|
||||
@@ -14,6 +15,7 @@ edit_twofactoradd=Gaitu erabiltzailearentzako bi faktore
|
||||
edit_locale=Tokikoa
|
||||
edit_egone=Aukeratutako erabiltzailea ez da existitzen!
|
||||
edit_overlay=Gai pertsonalen gainjartzea
|
||||
edit_forgot=Pasahitza berrezartzeko esteka bidali
|
||||
edit_proto=Biltegiratze mota
|
||||
edit_proto_mysql=MySQL datu-basea
|
||||
edit_proto_postgresql=PostgreSQL datu-basea
|
||||
@@ -26,6 +28,7 @@ edit_unsafe=Berrezarri mugarik gabekoetara
|
||||
|
||||
save_eunixname='$1' erabiltzailea ez da Unix erabiltzailea eta, beraz, ezin da modu seguruan erabili
|
||||
save_etemp=Pasahitz aldaketa hurrengo behartzeko aukera ezin da erabili <a href='$1'>erabiltzaileek pasahitz berriak sartzeko eskatuko duten</a> gaituta ez badago
|
||||
save_eemail=Helbide elektronikoak ezin du izan: karakterea
|
||||
|
||||
delete_eanonuser=Erabiltzaile hau modulu anonimoetarako sarbidea erabiltzen ari da
|
||||
|
||||
@@ -39,6 +42,9 @@ log_joingroup=Gehitu dira $1 Webmin erabiltzaileak $2
|
||||
log_sql=Erabiltzaileen eta taldeen datu baseak aldatu dira
|
||||
log_twofactor=Matrikulatutako erabiltzailea $1 bi faktore hornitzaile $2
|
||||
log_onefactor=Bi erabiltzaileak bi faktoreen autentikaziorako matrikulatutako erabiltzailea $1
|
||||
log_forgot_send=$1etik $2ra bitarteko erabiltzailearentzako pasahitza berrezartzeko mezu elektronikoa bidali da
|
||||
log_forgot_reset=Berrezarri $1 erabiltzailearen pasahitza, $2 helbide elektronikoarekin
|
||||
log_forgot_admin=Administratzaileak $1 erabiltzailearentzako pasahitza berrezartzeko mezu elektronikoa bidali du $2 erabiltzaileari
|
||||
|
||||
gedit_desc=Taldearen deskribapena
|
||||
gedit_egone=Hautatutako taldea ez dago jada!
|
||||
@@ -156,3 +162,20 @@ twofactor_failed=.. matrikulazioak huts egin du: $1
|
||||
twofactor_done=.. osatu. Hornitzaile honen IDa <tt>$1</tt> da.
|
||||
twofactor_setup=Bi faktoreen autentikazioa ez da gaituta oraindik sistema honetan, baina <a href='$1'>Webmin Konfigurazioa</a> modulua erabilita aktibatu daiteke.
|
||||
twofactor_ebutton=Ez da botoia sakatu!
|
||||
|
||||
forgot_title=Pasahitza berrezartzeko esteka bidali
|
||||
forgot_err=Pasahitza berrezartzeko esteka bidaltzea huts egin da
|
||||
forgot_header=Pasahitza berrezartzeko estekaren xehetasunak
|
||||
forgot_user=Erabiltzailearen pasahitza berrezarri
|
||||
forgot_email=Esteka bidaltzeko metodoa
|
||||
forgot_email_def=Erakutsi esteka Webminen
|
||||
forgot_email_sel=Bidali esteka posta elektronikoz helbide honetara:
|
||||
forgot_send=Bidali esteka
|
||||
forgot_desc=Orrialde honek Webmin erabiltzaile baten pasahitz berri bat edozein helbide elektronikotara hautatzeko erabil daitekeen esteka bat sortu edo bidaltzeko aukera ematen dizu. Kontuz ibili esteka hau zein helbidetara bidaltzen duzun, Webmin saioa hasteko sarbide osoa emango dizulako!
|
||||
forgot_adminmsg=$3 helbideko Webmin sistemaren administratzailearengandik jaso duzu mezu elektroniko hau, $1 saioa hasteko.\n\nPasahitza berrezarri nahi baduzu, jarraitu esteka honi:\n$2
|
||||
forgot_sending=$2-ren pasahitza berrezartzeko mezu elektronikoa $1-era bidaltzen. ..
|
||||
forgot_sent=... bidalita
|
||||
forgot_link=Beheko esteka erabil daiteke $1-en Webmin pasahitza hurrengo $2 minutuetarako berrezartzeko :
|
||||
forgot_enosudo=Sudo ez dago eskuragarri sistema honetan!
|
||||
forgot_ecansudo=Sartutako erabiltzaileak ez du sudo baimenik
|
||||
forgot_eunix=Sartutako sudo gaitasuna duen erabiltzailea ez da existitzen!
|
||||
|
||||
@@ -8,6 +8,7 @@ edit_title3=کاربر وبمین ایمن ایجاد کنید
|
||||
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_cloneof=کلونینگ کاربر وبمین
|
||||
edit_real=اسم واقعی
|
||||
edit_email=ایمیل تماس
|
||||
edit_passlocked=Password has not been changed for $1 days - account locked!
|
||||
edit_passmax=Password has not been changed for $1 days - must be changed at next login
|
||||
edit_passold=Password was last changed $1 days ago
|
||||
@@ -26,6 +27,7 @@ edit_nochange=روزهای تغییر رمز عبور را اجرا می کنی
|
||||
edit_egone=کاربر انتخاب شده دیگر وجود ندارد!
|
||||
edit_overlay=پوشش شخصی موضوع
|
||||
edit_overlayglobal=هیچ یک - از پیش فرض های موضوعی استفاده نکنید
|
||||
edit_forgot=ارسال لینک بازیابی رمز عبور
|
||||
edit_global=مجوز برای همه ماژول ها
|
||||
edit_templock=به طور موقت قفل شده است
|
||||
edit_temppass=تغییر نیرو در ورود بعدی
|
||||
@@ -58,6 +60,7 @@ save_edays=هیچ روز اجازه انتخاب وجود ندارد
|
||||
save_ehours=بارهای نامعتبر یا نامعتبر است
|
||||
save_ehours2=زمان شروع اجازه باید قبل از پایان باشد
|
||||
save_etemp=The option to force a password change at next login cannot be used unless <a href='$1'>prompting users to enter new passwords</a> is enabled
|
||||
save_eemail=آدرس ایمیل نمیتواند شامل کاراکتر : باشد
|
||||
|
||||
delete_eanonuser=این کاربر برای دسترسی به ماژول ناشناس استفاده می شود
|
||||
|
||||
@@ -78,6 +81,9 @@ log_sync=همگام سازی کاربر یونیکس تغییر کرده است
|
||||
log_sql=بانک اطلاعاتی کاربر و گروه تغییر یافت
|
||||
log_twofactor=Enrolled user $1 with two-factor provider $2
|
||||
log_onefactor=Dis-enrolled user $1 for two-factor authentication
|
||||
log_forgot_send=ایمیل بازنشانی رمز عبور برای کاربران $1 تا $2 ارسال شد
|
||||
log_forgot_reset=بازنشانی رمز عبور برای کاربر $1 با ایمیل $2
|
||||
log_forgot_admin=مدیر ایمیل بازنشانی رمز عبور را برای کاربران $1 تا $2 ارسال کرد
|
||||
|
||||
gedit_desc=توضیحات گروه
|
||||
gedit_egone=گروه منتخب دیگر وجود ندارد!
|
||||
@@ -153,7 +159,7 @@ pass_maxdays=روزهای قبل باید رمزعبور تغییر کند
|
||||
pass_lockdays=روزها قبل از تغییر حساب قفل رمز عبور بدون تغییر
|
||||
pass_nomaxdays=تغییر هرگز مورد نیاز نیست
|
||||
pass_nolockdays=حساب هرگز قفل نیست
|
||||
pass_nouser=Ú¯Ø°Ø±ÙØ§ÚÙÙØ§Û ØØ§ÙÛ ÙØ§Ù
Ú©Ø§Ø±Ø¨Ø±Û Ù
جاز ÙÛØ³ØªØ
|
||||
pass_nouser=رمزهای عبور حاوی نام کاربری را غیرفعال کنید؟
|
||||
pass_nodict=کلمه عبور کلمه لغت را مجاز نمی دانید؟
|
||||
pass_oldblock=تعداد کلمه عبورهای قدیمی برای رد کردن
|
||||
pass_nooldblock=محدودیتی برای استفاده مجدد از گذرواژه وجود ندارد
|
||||
@@ -255,3 +261,20 @@ twofactor_failed=.. enrollment failed : $1
|
||||
twofactor_done=.. complete. Your ID with this provider is <tt>$1</tt>.
|
||||
twofactor_setup=Two-factor authentication has not been enabled on this system yet, but can be turned on using the <a href='$1'>Webmin Configuration</a> module.
|
||||
twofactor_ebutton=هیچ دکمه ای کلیک نشد!
|
||||
|
||||
forgot_title=ارسال لینک بازیابی رمز عبور
|
||||
forgot_err=ارسال لینک بازیابی رمز عبور ناموفق بود
|
||||
forgot_header=جزئیات لینک بازنشانی رمز عبور
|
||||
forgot_user=بازنشانی رمز عبور برای کاربر
|
||||
forgot_email=روش تحویل لینک
|
||||
forgot_email_def=نمایش لینک در وبمین
|
||||
forgot_email_sel=ارسال لینک از طریق ایمیل به
|
||||
forgot_send=ارسال لینک
|
||||
forgot_desc=این صفحه به شما امکان میدهد لینکی ایجاد کنید یا آن را به هر آدرس ایمیلی ارسال کنید که میتواند برای انتخاب رمز عبور جدید برای کاربر وبمین استفاده شود. مراقب باشید که این لینک را به کدام آدرس ایمیل ارسال میکنید، زیرا عملاً دسترسی کامل به ورود به وبمین را اعطا میکند!
|
||||
forgot_adminmsg=شما این ایمیل را از مدیر سیستم وبمین در $3، برای ورود به سیستم $1 دریافت میکنید.\n\nاگر مایل به تنظیم مجدد رمز عبور هستید، این لینک را دنبال کنید:\n$2
|
||||
forgot_sending=ارسال ایمیل بازنشانی رمز عبور برای $2 تا $1 ..
|
||||
forgot_sent=.. ارسال شد
|
||||
forgot_link=از لینک زیر میتوان برای تنظیم مجدد رمز عبور وبمین برای $1 در $2 دقیقه بعدی استفاده کرد :
|
||||
forgot_enosudo=سودو روی این سیستم در دسترس نیست!
|
||||
forgot_ecansudo=کاربر وارد شده مجوزهای sudo را ندارد
|
||||
forgot_eunix=کاربر وارد شده که قابلیت sudo دارد، وجود ندارد!
|
||||
|
||||
@@ -36,6 +36,7 @@ edit_rights=Webmin-käyttäjän käyttöoikeudet
|
||||
edit_user=Käyttäjätunnus
|
||||
edit_cloneof=Kloonaa Webmin-käyttäjä
|
||||
edit_real=Oikea nimi
|
||||
edit_email=Yhteystiedot
|
||||
edit_group=Ryhmän jäsen
|
||||
edit_pass=Salasana
|
||||
edit_same=Sama kuin Unix
|
||||
@@ -90,6 +91,7 @@ edit_selall=Valitse kaikki
|
||||
edit_invert=Käänteinen valinta
|
||||
edit_hide=Piilota käyttämätön
|
||||
edit_switch=Vaihda käyttäjälle
|
||||
edit_forgot=Lähetä salasanan palautuslinkki
|
||||
edit_return=Webmin-käyttäjä
|
||||
edit_return2=Webmin-ryhmä
|
||||
edit_rbacdeny=RBAC-käyttötila
|
||||
@@ -148,6 +150,7 @@ save_edays=Ei valittuja päiviä
|
||||
save_ehours=Puuttuvat tai virheelliset ajat sallia
|
||||
save_ehours2=Aloitusajan on oltava ennen loppua
|
||||
save_etemp=Vaihtoehtoa pakottaa salasananvaihto seuraavan kirjautumisen yhteydessä ei voida käyttää, ellei <a href='$1'>kehoteta käyttäjiä syöttämään uusia salasanoja</a> on käytössä
|
||||
save_eemail=Sähköpostiosoite ei voi sisältää merkkiä :
|
||||
|
||||
delete_err=Käyttäjän poistaminen epäonnistui
|
||||
delete_eself=Et voi poistaa itseäsi
|
||||
@@ -247,6 +250,9 @@ log_sync=Vaihdettu unix-käyttäjän synkronointi
|
||||
log_sql=Muutettu käyttäjän ja ryhmän tietokanta
|
||||
log_twofactor=Rekisteröity käyttäjä $1 kaksikerroisen palveluntarjoajan kanssa $2
|
||||
log_onefactor=Rekisteröitynyt käyttäjä $1 kaksikerroiseen todennukseen
|
||||
log_forgot_send=Salasanan palautusviesti käyttäjälle $1 lähetetty käyttäjälle $2
|
||||
log_forgot_reset=Käyttäjän $1 salasanan vaihtaminen sähköpostiosoitteella $2
|
||||
log_forgot_admin=Ylläpitäjä lähetti salasanan palautusviestin käyttäjälle $1 käyttäjälle $2
|
||||
|
||||
gedit_ecannot=Et voi muokata ryhmiä
|
||||
gedit_title=Muokkaa Webmin-ryhmää
|
||||
@@ -509,3 +515,20 @@ twofactor_failed=.. ilmoittautuminen epäonnistui: $1
|
||||
twofactor_done=.. saattaa loppuun. Tunnuksesi tämän palveluntarjoajan kanssa on <tt>$1</tt>.
|
||||
twofactor_setup=Kaksifaktorista todennusta ei ole vielä otettu käyttöön tässä järjestelmässä, mutta se voidaan ottaa käyttöön <a href='$1'>Webmin-määritys</a> -moduulilla.
|
||||
twofactor_ebutton=Yhtään painiketta ei napsautettu!
|
||||
|
||||
forgot_title=Lähetä salasanan palautuslinkki
|
||||
forgot_err=Salasanan palautuslinkin lähettäminen epäonnistui
|
||||
forgot_header=Salasanan palautuslinkin tiedot
|
||||
forgot_user=Käyttäjän salasanan vaihtaminen
|
||||
forgot_email=Linkin toimitustapa
|
||||
forgot_email_def=Näytä linkki Webminissä
|
||||
forgot_email_sel=Lähetä linkki sähköpostitse osoitteeseen
|
||||
forgot_send=Lähetä linkki
|
||||
forgot_desc=Tämän sivun avulla voit luoda tai lähettää linkin, jota voidaan käyttää uuden salasanan valitsemiseen Webmin-käyttäjälle mihin tahansa sähköpostiosoitteeseen. Ole varovainen, mihin osoitteeseen lähetät tämän linkin, sillä se antaa käytännössä täyden pääsyn Webmin-kirjautumiseen!
|
||||
forgot_adminmsg=Saat tämän sähköpostin Webmin-järjestelmän ylläpitäjältä osoitteessa $3, kirjautumistunnukselle $1.\n\nJos haluat jatkaa salasanan vaihtamista, seuraa tätä linkkiä:\n$2
|
||||
forgot_sending=Lähetetään salasanan palautusviesti osoitteelle $2 käyttäjälle $1 ..
|
||||
forgot_sent=.. lähetetty
|
||||
forgot_link=Alla olevaa linkkiä voidaan käyttää Webmin-salasanan nollaamiseen käyttäjälle $1 seuraavien $2 minuutin ajaksi :
|
||||
forgot_enosudo=Sudo ei ole käytettävissä tässä järjestelmässä!
|
||||
forgot_ecansudo=Annetulla käyttäjällä ei ole sudo-oikeuksia
|
||||
forgot_eunix=Annettua sudo-kykyistä käyttäjää ei ole olemassa!
|
||||
|
||||
@@ -5,6 +5,7 @@ index_eulist=Échec de la liste des utilisateurs: $1
|
||||
index_eglist=Échec de la liste des groupes: $1
|
||||
|
||||
edit_title3=Créer un utilisateur Webmin sécurisé
|
||||
edit_email=Courriel de contact
|
||||
edit_passold=Le dernier mot de passe a été modifié il y a $1 jours
|
||||
edit_passtoday=Le mot de passe a été modifié il y a moins d'un jour
|
||||
edit_twofactor=Type d'authentification à deux facteurs
|
||||
@@ -15,6 +16,7 @@ edit_twofactoradd=Activer deux facteurs pour l'utilisateur
|
||||
edit_locale=Lieu
|
||||
edit_nochange=Appliquer les jours de changement de mot de passe?
|
||||
edit_overlay=Superposition de thème personnel
|
||||
edit_forgot=Envoyer le lien de réinitialisation du mot de passe
|
||||
edit_temppass=Forcer le changement à la prochaine connexion
|
||||
edit_security=Options de sécurité et de limites
|
||||
edit_proto=Type de stockage
|
||||
@@ -28,6 +30,7 @@ save_eunixname=Le nom d'utilisateur '$1' n'est pas un utilisateur Unix et ne peu
|
||||
save_eoverlay=Une superposition de thème ne peut être sélectionnée que si un thème est
|
||||
save_eminsize=Longueur minimale du mot de passe manquante ou non numérique
|
||||
save_etemp=L'option pour forcer un changement de mot de passe à la prochaine connexion ne peut être utilisée que si <a href='$1'>invitant les utilisateurs à entrer de nouveaux mots de passe</a> est activée
|
||||
save_eemail=L'adresse e-mail ne peut pas contenir le caractère :
|
||||
|
||||
delete_eanonuser=Cet utilisateur est utilisé pour l'accès au module anonyme
|
||||
|
||||
@@ -42,6 +45,9 @@ log_sync=Changement de la synchronisation des utilisateurs Unix
|
||||
log_sql=Base de données d'utilisateurs et de groupes modifiée
|
||||
log_twofactor=Utilisateur inscrit $1 avec un fournisseur à deux facteurs $2
|
||||
log_onefactor=Utilisateur désinscrit $1 pour l'authentification à deux facteurs
|
||||
log_forgot_send=Envoi d'un e-mail de réinitialisation du mot de passe pour l'utilisateur $1 à $2
|
||||
log_forgot_reset=Réinitialiser le mot de passe de l'utilisateur $1 avec l'e-mail $2
|
||||
log_forgot_admin=L'administrateur a envoyé un e-mail de réinitialisation du mot de passe pour l'utilisateur $1 à $2
|
||||
|
||||
convert_sync2=Synchroniser le mot de passe avec l'utilisateur Unix à l'avenir?
|
||||
convert_user=Utilisateur Unix
|
||||
@@ -147,3 +153,20 @@ twofactor_failed=.. l'inscription a échoué: $1
|
||||
twofactor_done=.. Achevée. Votre ID auprès de ce fournisseur est <tt>$1</tt>.
|
||||
twofactor_setup=L'authentification à deux facteurs n'a pas encore été activée sur ce système, mais peut être activée à l'aide du module <a href='$1'>Configuration Webmin</a>.
|
||||
twofactor_ebutton=Aucun bouton cliqué!
|
||||
|
||||
forgot_title=Envoyer le lien de réinitialisation du mot de passe
|
||||
forgot_err=Échec de l'envoi du lien de réinitialisation du mot de passe
|
||||
forgot_header=Détails du lien de réinitialisation du mot de passe
|
||||
forgot_user=Réinitialiser le mot de passe de l'utilisateur
|
||||
forgot_email=Méthode de livraison du lien
|
||||
forgot_email_def=Afficher le lien dans Webmin
|
||||
forgot_email_sel=Envoyer le lien par e-mail à
|
||||
forgot_send=Envoyer le lien
|
||||
forgot_desc=Cette page vous permet de générer ou d'envoyer un lien permettant de choisir un nouveau mot de passe pour un utilisateur Webmin, à n'importe quelle adresse e-mail. Soyez vigilant quant à l'adresse à laquelle vous envoyez ce lien, car il vous accordera un accès complet à la connexion Webmin !
|
||||
forgot_adminmsg=Vous recevez cet e-mail de l'administrateur du système Webmin à $3, pour la connexion $1.\n\nSi vous souhaitez procéder à la réinitialisation du mot de passe, suivez ce lien :\n$2
|
||||
forgot_sending=Envoi d'un e-mail de réinitialisation du mot de passe pour $2 à $1 ..
|
||||
forgot_sent=.. envoyé
|
||||
forgot_link=Le lien ci-dessous peut être utilisé pour réinitialiser le mot de passe Webmin pour $1 pour les $2 prochaines minutes :
|
||||
forgot_enosudo=Sudo n'est pas disponible sur ce système !
|
||||
forgot_ecansudo=L'utilisateur saisi n'a pas les autorisations sudo
|
||||
forgot_eunix=L'utilisateur compatible sudo saisi n'existe pas !
|
||||
|
||||
@@ -6,6 +6,7 @@ index_eglist=Nije uspjelo popis grupa: $1
|
||||
|
||||
edit_title3=Stvorite sigurnog korisnika Webmin-a
|
||||
edit_cloneof=Kloniranje korisnika Webmin-a
|
||||
edit_email=Kontaktna e-pošta
|
||||
edit_twofactor=Dvofaktorska vrsta autentifikacije
|
||||
edit_twofactorprov=Korištenje davatelja $1 s ID-om $2
|
||||
edit_twofactorcancel=Uklonite dvofaktorni zahtjev za provjeru autentičnosti
|
||||
@@ -16,6 +17,7 @@ edit_nochange=Da li provodite dane za promjenu zaporke?
|
||||
edit_egone=Odabrani korisnik više ne postoji!
|
||||
edit_overlay=Prekrivanje osobne teme
|
||||
edit_overlayglobal=Nema - koristite zadane postavke teme
|
||||
edit_forgot=Pošalji poveznicu za resetiranje lozinke
|
||||
edit_global=Dozvole za sve module
|
||||
edit_temppass=Prisilite promjenu pri sljedećoj prijavi
|
||||
edit_proto=Vrsta skladištenja
|
||||
@@ -31,6 +33,7 @@ edit_unsafe=Ponovno postavite na neograničeno
|
||||
save_eunixname=Korisničko ime '$1' nije Unix korisnik i zato ga nije moguće koristiti u sigurnom načinu rada
|
||||
save_eoverlay=Prekrivanje teme ne može se odabrati ako nije tema
|
||||
save_etemp=Opcija prisiljavanja promjene lozinke pri sljedećoj prijavi ne može se koristiti ako nije omogućen <a href='$1'>pozivanje korisnika da unose nove lozinke</a>
|
||||
save_eemail=Adresa e-pošte ne smije sadržavati znak :
|
||||
|
||||
delete_eanonuser=Ovaj korisnik se koristi za anonimni pristup modulu
|
||||
|
||||
@@ -44,6 +47,9 @@ log_joingroup=Dodana $1 korisnici webminova u grupu $2
|
||||
log_sql=Izmijenjena korisnička i grupna baza podataka
|
||||
log_twofactor=Registrirani korisnik $1 s davateljem s dva faktora $2
|
||||
log_onefactor=Zabranjen korisnik $1 za dvofaktorsku provjeru autentičnosti
|
||||
log_forgot_send=Poslana je e-pošta za poništavanje lozinke za korisnika $1 na $2
|
||||
log_forgot_reset=Poništi lozinku za korisnika $1 s e-poštom $2
|
||||
log_forgot_admin=Administrator je poslao e-poruku za resetiranje lozinke za korisnika $1 na $2
|
||||
|
||||
gedit_desc=Opis grupe
|
||||
gedit_egone=Odabrana skupina više ne postoji!
|
||||
@@ -162,3 +168,20 @@ twofactor_failed=.. registracija nije uspjela: $1
|
||||
twofactor_done=.. kompletna. Vaš ID kod ovog davatelja usluga je <tt>$1</tt>.
|
||||
twofactor_setup=Dvofaktorna provjera identiteta još nije omogućena na ovom sustavu, ali se može uključiti pomoću modula <a href='$1'>Konfiguracija Webmin</a>.
|
||||
twofactor_ebutton=Nijedan gumb nije kliknut!
|
||||
|
||||
forgot_title=Pošalji poveznicu za resetiranje lozinke
|
||||
forgot_err=Slanje poveznice za resetiranje lozinke nije uspjelo
|
||||
forgot_header=Detalji poveznice za resetiranje lozinke
|
||||
forgot_user=Poništi lozinku za korisnika
|
||||
forgot_email=Način isporuke poveznice
|
||||
forgot_email_def=Prikaži poveznicu u Webminu
|
||||
forgot_email_sel=Pošalji poveznicu putem e-pošte na
|
||||
forgot_send=Pošalji poveznicu
|
||||
forgot_desc=Ova stranica vam omogućuje generiranje ili slanje poveznice koja se može koristiti za odabir nove lozinke za Webmin korisnika na bilo koju adresu e-pošte. Budite oprezni na koju adresu šaljete ovu poveznicu jer će ona zapravo omogućiti puni pristup Webmin prijavi!
|
||||
forgot_adminmsg=Ovu e-poruku primate od administratora Webmin sustava na $3, za prijavu $1.\n\nAko želite nastaviti s resetiranjem lozinke, slijedite ovu poveznicu:\n$2
|
||||
forgot_sending=Slanje e-pošte za resetiranje lozinke za $2 na $1 ..
|
||||
forgot_sent=poslano
|
||||
forgot_link=Donja poveznica može se koristiti za resetiranje Webmin lozinke za $1 za sljedećih $2 minuta :
|
||||
forgot_enosudo=Sudo nije dostupan na ovom sustavu!
|
||||
forgot_ecansudo=Uneseni korisnik nema sudo dozvole
|
||||
forgot_eunix=Uneseni korisnik koji podržava sudo ne postoji!
|
||||
|
||||
@@ -6,6 +6,7 @@ index_eglist=A csoportok felsorolása nem sikerült: $1
|
||||
|
||||
edit_title3=Hozzon létre biztonságos Webmin felhasználót
|
||||
edit_cloneof=A Webmin felhasználó klónozása
|
||||
edit_email=Kapcsolatfelvételi e-mail cím
|
||||
edit_passlocked=A jelszó nem változott $1 napig - a fiók zárolva van!
|
||||
edit_passmax=A jelszó nem változott $1 napig - a következő bejelentkezéskor meg kell változtatni
|
||||
edit_passold=A jelszó utoljára megváltozott $1 nappal ezelőtt
|
||||
@@ -22,6 +23,7 @@ edit_nochange=Végrehajtja a jelszócsere napjait?
|
||||
edit_egone=A kiválasztott felhasználó már nem létezik!
|
||||
edit_overlay=Személyes téma overlay
|
||||
edit_overlayglobal=Nincs - használja a téma alapértelmezéseit
|
||||
edit_forgot=Jelszó-visszaállítási link küldése
|
||||
edit_global=Minden modul engedélyei
|
||||
edit_temppass=A változtatás kényszerítése a következő bejelentkezéskor
|
||||
edit_days=A hét megengedett napjai
|
||||
@@ -48,6 +50,7 @@ save_edays=Nincs nap kiválasztva
|
||||
save_ehours=Hiányzó vagy érvénytelen idő megengedhető
|
||||
save_ehours2=A megengedett kezdési időnek vége előtt kell lennie
|
||||
save_etemp=A jelszó megváltoztatásának kényszerítését a következő bejelentkezéskor csak akkor lehet használni, ha a <a href='$1'>felszólítja a felhasználókat új jelszavak megadására</a>.
|
||||
save_eemail=Az e-mail cím nem tartalmazhatja a : karaktert
|
||||
|
||||
delete_eanonuser=Ezt a felhasználót anonim modul-hozzáféréshez használják
|
||||
|
||||
@@ -65,6 +68,9 @@ log_sync=Megváltozott az unix felhasználói szinkronizálás
|
||||
log_sql=Megváltozott felhasználói és csoport adatbázis
|
||||
log_twofactor=Regisztrált felhasználó $2
|
||||
log_onefactor=Nem regisztrált felhasználó $1 két tényezős hitelesítéshez
|
||||
log_forgot_send=Jelszó-visszaállító e-mail elküldve a(z) $1 felhasználó jelszavának visszaállítására vonatkozó e-mailben a következő címre: $2
|
||||
log_forgot_reset=Jelszó visszaállítása a(z) $1 felhasználóhoz, amelynek e-mail címe $2
|
||||
log_forgot_admin=Az adminisztrátor jelszó-visszaállító e-mailt küldött a(z) $1 felhasználónak a következő címre: $2
|
||||
|
||||
gedit_desc=Csoport leírás
|
||||
gedit_egone=A kiválasztott csoport már nem létezik!
|
||||
@@ -212,3 +218,20 @@ twofactor_failed=.. a regisztráció sikertelen: $1
|
||||
twofactor_done=.. teljes. Az Ön azonosítója ezzel a szolgáltatóval <tt>$1</tt>.
|
||||
twofactor_setup=A kétfaktoros hitelesítés még nem engedélyezve van ebben a rendszeren, de bekapcsolható a <a href='$1'>Webmin konfigurálása</a> modul segítségével.
|
||||
twofactor_ebutton=Nincs gombra kattintva!
|
||||
|
||||
forgot_title=Jelszó-visszaállítási link küldése
|
||||
forgot_err=Nem sikerült elküldeni a jelszó-visszaállító linket
|
||||
forgot_header=Jelszó-visszaállítási link részletei
|
||||
forgot_user=Jelszó visszaállítása a felhasználóhoz
|
||||
forgot_email=Link kézbesítési módja
|
||||
forgot_email_def=Link megjelenítése a Webminben
|
||||
forgot_email_sel=Link küldése e-mailben ide:
|
||||
forgot_send=Link küldése
|
||||
forgot_desc=Ez az oldal lehetővé teszi egy link létrehozását vagy elküldését, amellyel új jelszót választhat egy Webmin felhasználó számára bármely e-mail címre. Ügyeljen arra, hogy melyik címre küldi ezt a linket, mivel az gyakorlatilag teljes hozzáférést biztosít a Webmin bejelentkezéshez!
|
||||
forgot_adminmsg=Ezt az e-mailt a(z) $3 címen található Webmin rendszer adminisztrátorától kapja a(z) $1 bejelentkezési névhez.\n\nHa folytatni szeretné a jelszó visszaállítását, kövesse ezt a linket:\n$2
|
||||
forgot_sending=Jelszó-visszaállító e-mail küldése a(z) $2 címhez $1 címre ..
|
||||
forgot_sent=.. elküldve
|
||||
forgot_link=Az alábbi linkre kattintva visszaállíthatja a(z) $1 Webmin jelszavát a következő $2 percre :
|
||||
forgot_enosudo=A Sudo nem érhető el ezen a rendszeren!
|
||||
forgot_ecansudo=A megadott felhasználónak nincsenek sudo jogosultságai
|
||||
forgot_eunix=A megadott sudo-képes felhasználó nem létezik!
|
||||
|
||||
@@ -3,18 +3,21 @@ index_twofactor=Autenticazione a due fattori
|
||||
index_joingroup=Aggiungi al gruppo:
|
||||
|
||||
edit_title3=Crea un utente Webmin sicuro
|
||||
edit_email=Email di contatto
|
||||
edit_twofactor=Tipo di autenticazione a due fattori
|
||||
edit_twofactorprov=Utilizzo del provider $1 con ID $2
|
||||
edit_twofactorcancel=Rimuovere i requisiti di autenticazione a due fattori
|
||||
edit_twofactornone=Nessuna configurazione ancora
|
||||
edit_twofactoradd=Abilita due fattori per l'utente
|
||||
edit_locale=Locale
|
||||
edit_forgot=Invia collegamento per reimpostare la password
|
||||
edit_safe=Livello di privilegio
|
||||
edit_safe0=illimitato
|
||||
edit_safe1=Solo moduli sicuri
|
||||
edit_unsafe=Ripristina su senza restrizioni
|
||||
|
||||
save_eunixname=Il nome utente '$1' non è un utente Unix, quindi non può essere utilizzato in modalità provvisoria
|
||||
save_eemail=L'indirizzo email non può contenere il carattere :
|
||||
|
||||
delete_eanonuser=Questo utente viene utilizzato per l'accesso al modulo anonimo
|
||||
|
||||
@@ -25,6 +28,9 @@ acl_locale=È possibile modificare le impostazioni locali?
|
||||
log_joingroup=Aggiunti $1 utenti Webmin al gruppo $2
|
||||
log_twofactor=Utente registrato $1 con provider a due fattori $2
|
||||
log_onefactor=Utente non registrato $1 per l'autenticazione a due fattori
|
||||
log_forgot_send=Inviata email di reimpostazione password per l'utente $1 a $2
|
||||
log_forgot_reset=Reimposta la password per l'utente $1 con e-mail $2
|
||||
log_forgot_admin=L'amministratore ha inviato un'e-mail per la reimpostazione della password per l'utente $1 a $2
|
||||
|
||||
convert_sync2=Sincronizzare la password con l'utente Unix in futuro?
|
||||
convert_user=Utente Unix
|
||||
@@ -75,3 +81,20 @@ twofactor_failed=.. registrazione non riuscita: $1
|
||||
twofactor_done=.. completare. Il tuo ID con questo provider è <tt>$1</tt>.
|
||||
twofactor_setup=L'autenticazione a due fattori non è stata ancora abilitata su questo sistema, ma può essere attivata utilizzando il modulo <a href='$1'>Configurazione Webmin</a>.
|
||||
twofactor_ebutton=Nessun pulsante cliccato!
|
||||
|
||||
forgot_title=Invia collegamento per reimpostare la password
|
||||
forgot_err=Impossibile inviare il link per la reimpostazione della password
|
||||
forgot_header=Dettagli del collegamento per la reimpostazione della password
|
||||
forgot_user=Reimposta la password per l'utente
|
||||
forgot_email=Metodo di consegna del collegamento
|
||||
forgot_email_def=Visualizza collegamento in Webmin
|
||||
forgot_email_sel=Invia il collegamento via email a
|
||||
forgot_send=Invia collegamento
|
||||
forgot_desc=Questa pagina consente di generare o inviare a qualsiasi indirizzo email un link che può essere utilizzato per selezionare una nuova password per un utente Webmin. Fai attenzione all'indirizzo a cui invii questo link, poiché di fatto garantirà l'accesso completo al login di Webmin!
|
||||
forgot_adminmsg=Stai ricevendo questa e-mail dall'amministratore del sistema Webmin all'indirizzo $3, per l'accesso $1.\n\nSe desideri procedere con la reimpostazione della password, segui questo collegamento:\n$2
|
||||
forgot_sending=Invio dell'e-mail di reimpostazione della password per $2 a $1 ..
|
||||
forgot_sent=.. inviato
|
||||
forgot_link=Il collegamento sottostante può essere utilizzato per reimpostare la password Webmin per $1 per i prossimi $2 minuti :
|
||||
forgot_enosudo=Sudo non è disponibile su questo sistema!
|
||||
forgot_ecansudo=L'utente inserito non ha i permessi sudo
|
||||
forgot_eunix=L'utente abilitato a sudo immesso non esiste!
|
||||
|
||||
@@ -5,6 +5,7 @@ index_eulist=ユーザーのリストに失敗しました: $1
|
||||
index_eglist=グループのリストに失敗しました: $1
|
||||
|
||||
edit_title3=安全なWebminユーザーを作成する
|
||||
edit_email=連絡先メールアドレス
|
||||
edit_twofactor=二要素認証タイプ
|
||||
edit_twofactorprov=ID $2 のプロバイダー $1 を使用する
|
||||
edit_twofactorcancel=二要素認証要件を削除する
|
||||
@@ -14,6 +15,7 @@ edit_locale=ロケール
|
||||
edit_egone=選択したユーザーは存在しません!
|
||||
edit_overlay=個人テーマのオーバーレイ
|
||||
edit_overlayglobal=なし-テーマのデフォルトを使用
|
||||
edit_forgot=パスワードリセットリンクを送信
|
||||
edit_global=すべてのモジュールの権限
|
||||
edit_proto=保管タイプ
|
||||
edit_proto_mysql=MySQLデータベース
|
||||
@@ -28,6 +30,7 @@ edit_unsafe=無制限にリセット
|
||||
save_eunixname=ユーザー名「$1」はUnixユーザーではないため、セーフモードでは使用できません
|
||||
save_eoverlay=テーマオーバーレイを選択できないのは、テーマが
|
||||
save_etemp=<a href='$1'>ユーザーに新しいパスワードの入力を促す</a>が有効になっていない限り、次回ログイン時にパスワードの変更を強制するオプションは使用できません
|
||||
save_eemail=メールアドレスには「:」文字を含めることはできません
|
||||
|
||||
delete_eanonuser=このユーザーは匿名モジュールアクセスに使用されています
|
||||
|
||||
@@ -41,6 +44,9 @@ log_joingroup=$1 Webminユーザーをグループ $2 に追加しました
|
||||
log_sql=変更されたユーザーおよびグループデータベース
|
||||
log_twofactor=登録済みユーザー $1 と2要素プロバイダー $2
|
||||
log_onefactor=二要素認証の登録解除ユーザー $1
|
||||
log_forgot_send=ユーザー $1 のパスワード リセット メールを $2 に送信しました
|
||||
log_forgot_reset=メール $2 を使用してユーザー $1 のパスワードをリセットします
|
||||
log_forgot_admin=管理者がユーザー $1 のパスワード リセット メールを $2 に送信しました
|
||||
|
||||
gedit_desc=グループの説明
|
||||
gedit_egone=選択したグループはもう存在しません!
|
||||
@@ -158,3 +164,20 @@ twofactor_failed=..登録に失敗しました: $1
|
||||
twofactor_done=..完了。このプロバイダーのIDは<tt>$1</tt>です。
|
||||
twofactor_setup=このシステムでは2要素認証はまだ有効になっていませんが、<a href='$1'>Webmin Configuration</a>モジュールを使用して有効にすることができます。
|
||||
twofactor_ebutton=ボタンがクリックされていません!
|
||||
|
||||
forgot_title=パスワードリセットリンクを送信
|
||||
forgot_err=パスワードリセットリンクの送信に失敗しました
|
||||
forgot_header=パスワードリセットリンクの詳細
|
||||
forgot_user=ユーザーのパスワードをリセットする
|
||||
forgot_email=リンク配信方法
|
||||
forgot_email_def=Webminでリンクを表示する
|
||||
forgot_email_sel=リンクをメールで送信
|
||||
forgot_send=リンクを送信
|
||||
forgot_desc=このページでは、Webminユーザーの新しいパスワードを設定するためのリンクを生成または任意のメールアドレスに送信できます。このリンクを送信するアドレスにはご注意ください。送信先はWebminログインへのフルアクセスを許可することになりますのでご注意ください。
|
||||
forgot_adminmsg=このメールは、$3 の Webmin システムの管理者から、ログイン $1 に対して送信されました。\n\nパスワードのリセットを続行する場合は、次のリンクをクリックしてください :\n$2
|
||||
forgot_sending=$2 のパスワード リセット メールを $1 に送信しています。
|
||||
forgot_sent=.. 送信済み
|
||||
forgot_link=以下のリンクを使用すると、今後 $2 分間、$1 の Webmin パスワードをリセットできます。
|
||||
forgot_enosudo=このシステムでは Sudo は使用できません。
|
||||
forgot_ecansudo=入力されたユーザーにはsudo権限がありません
|
||||
forgot_eunix=入力された sudo 対応ユーザーは存在しません。
|
||||
|
||||
@@ -5,6 +5,7 @@ index_eulist=사용자를 나열하지 못했습니다 : $1
|
||||
index_eglist=그룹을 나열하지 못했습니다 : $1
|
||||
|
||||
edit_title3=안전한 Webmin 사용자 생성
|
||||
edit_email=연락처 이메일
|
||||
edit_twofactor=이중 인증 유형
|
||||
edit_twofactorprov=ID가 $2 인 제공자 $1 사용
|
||||
edit_twofactorcancel=이중 인증 요구 사항 제거
|
||||
@@ -14,6 +15,7 @@ edit_locale=장소
|
||||
edit_egone=선택된 사용자가 더 이상 존재하지 않습니다!
|
||||
edit_overlay=개인 테마 오버레이
|
||||
edit_overlayglobal=없음-테마 기본값 사용
|
||||
edit_forgot=비밀번호 재설정 링크 보내기
|
||||
edit_global=모든 모듈에 대한 권한
|
||||
edit_proto=저장 유형
|
||||
edit_proto_mysql=MySQL 데이터베이스
|
||||
@@ -28,6 +30,7 @@ edit_unsafe=무제한으로 재설정
|
||||
save_eunixname=사용자 이름 '$1'은 (는) Unix 사용자가 아니므로 안전 모드에서 사용할 수 없습니다
|
||||
save_eoverlay=테마가 아닌 경우 테마 오버레이를 선택할 수 없습니다
|
||||
save_etemp=<a href='$1'>사용자에게 새 비밀번호를 입력하도록 프롬프트</a>하지 않으면 다음 로그인시 비밀번호를 강제로 변경하는 옵션을 사용할 수 없습니다.
|
||||
save_eemail=이메일 주소에는 : 문자를 포함할 수 없습니다
|
||||
|
||||
delete_eanonuser=이 사용자는 익명 모듈 액세스에 사용되고 있습니다
|
||||
|
||||
@@ -41,6 +44,9 @@ log_joingroup=$1 Webmin 사용자를 $2 그룹에 추가했습니다.
|
||||
log_sql=변경된 사용자 및 그룹 데이터베이스
|
||||
log_twofactor=2 단계 공급자 $2 에 등록 된 사용자 $1
|
||||
log_onefactor=이중 인증을위한 등록 해제 된 사용자 $1
|
||||
log_forgot_send=사용자 $1의 비밀번호 재설정 이메일을 $2에게 보냈습니다
|
||||
log_forgot_reset=이메일 주소 $2를 사용하여 사용자 $1의 비밀번호를 재설정합니다
|
||||
log_forgot_admin=관리자가 사용자 $1에 대한 비밀번호 재설정 이메일을 $2에게 보냈습니다
|
||||
|
||||
gedit_desc=그룹 설명
|
||||
gedit_egone=선택된 그룹이 더 이상 존재하지 않습니다!
|
||||
@@ -158,3 +164,20 @@ twofactor_failed=.. 등록 실패 : $1
|
||||
twofactor_done=.. 완료 이 제공자의 귀하의 ID는 <tt>$1</tt>입니다.
|
||||
twofactor_setup=이 시스템에서 2 단계 인증이 아직 활성화되지 않았지만 <a href='$1'>Webmin 구성</a> 모듈을 사용하여 켤 수 있습니다.
|
||||
twofactor_ebutton=버튼을 클릭하지 않았습니다!
|
||||
|
||||
forgot_title=비밀번호 재설정 링크 보내기
|
||||
forgot_err=비밀번호 재설정 링크를 보내지 못했습니다
|
||||
forgot_header=비밀번호 재설정 링크 세부 정보
|
||||
forgot_user=사용자 비밀번호 재설정
|
||||
forgot_email=링크 전달 방식
|
||||
forgot_email_def=Webmin에서 링크 표시
|
||||
forgot_email_sel=이메일로 링크 보내기
|
||||
forgot_send=링크 보내기
|
||||
forgot_desc=이 페이지에서는 Webmin 사용자의 새 비밀번호를 선택하는 데 사용할 수 있는 링크를 생성하거나 모든 이메일 주소로 전송할 수 있습니다. 이 링크를 어떤 이메일 주소로 보낼지 신중하게 선택해야 합니다. Webmin 로그인에 대한 모든 권한이 부여되기 때문입니다!
|
||||
forgot_adminmsg=$3의 Webmin 시스템 관리자로부터 $1 로그인에 대한 이메일을 받았습니다.\n\n비밀번호 재설정을 진행하려면 이 링크를 따르세요:\n$2
|
||||
forgot_sending=$2에 대한 비밀번호 재설정 이메일을 $1(으)로 보내는 중 ..
|
||||
forgot_sent=.. 전송된
|
||||
forgot_link=아래 링크를 사용하면 $1의 Webmin 비밀번호를 다음 $2분 동안 재설정할 수 있습니다
|
||||
forgot_enosudo=이 시스템에서는 sudo를 사용할 수 없습니다!
|
||||
forgot_ecansudo=입력된 사용자에게 sudo 권한이 없습니다
|
||||
forgot_eunix=sudo 권한이 있는 사용자가 존재하지 않습니다!
|
||||
|
||||
@@ -1,18 +1,25 @@
|
||||
index_screate=Buat pengguna selamat yang baru.
|
||||
|
||||
edit_title3=Buat Pengguna Webmin Selamat
|
||||
edit_email=E-mel hubungan
|
||||
edit_locale=Tempatan
|
||||
edit_forgot=Hantar Pautan Tetapan Semula Kata Laluan
|
||||
edit_safe=Tahap keistimewaan
|
||||
edit_safe0=Tidak terkawal
|
||||
edit_safe1=Modul selamat sahaja
|
||||
edit_unsafe=Tetapkan semula kepada tanpa had
|
||||
|
||||
save_eunixname=Nama pengguna '$1' bukan pengguna Unix, dan oleh itu tidak boleh digunakan dalam mod selamat
|
||||
save_eemail=Alamat e-mel tidak boleh mengandungi : aksara
|
||||
|
||||
delete_eanonuser=Pengguna ini sedang digunakan untuk akses modul tanpa nama
|
||||
|
||||
acl_locale=Boleh tukar tempat?
|
||||
|
||||
log_forgot_send=Menghantar e-mel tetapan semula kata laluan untuk pengguna $1 hingga $2
|
||||
log_forgot_reset=Tetapkan semula kata laluan untuk pengguna $1 dengan e-mel $2
|
||||
log_forgot_admin=Pentadbir menghantar e-mel tetapan semula kata laluan untuk pengguna $1 hingga $2
|
||||
|
||||
sync_modify=Ganti nama pengguna Webmin yang sepadan apabila pengguna Unix dinamakan semula.
|
||||
|
||||
sessions_actions=Tindakan..
|
||||
@@ -37,3 +44,20 @@ sql_timeout_secs=saat
|
||||
sql_etimeout=Tamat masa sambungan cache mestilah nombor
|
||||
|
||||
twofactor_ebutton=Tiada butang diklik!
|
||||
|
||||
forgot_title=Hantar Pautan Tetapan Semula Kata Laluan
|
||||
forgot_err=Gagal menghantar pautan tetapan semula kata laluan
|
||||
forgot_header=Butiran pautan tetapan semula kata laluan
|
||||
forgot_user=Tetapkan semula kata laluan untuk pengguna
|
||||
forgot_email=Kaedah penghantaran pautan
|
||||
forgot_email_def=Paparkan pautan dalam Webmin
|
||||
forgot_email_sel=Hantar pautan melalui e-mel ke
|
||||
forgot_send=Hantar Pautan
|
||||
forgot_desc=Halaman ini membolehkan anda menjana atau menghantar pautan yang boleh digunakan untuk memilih kata laluan baharu untuk pengguna Webmin ke mana-mana alamat e-mel. Berhati-hati ke alamat mana anda menghantar pautan ini, kerana ia akan memberikan akses penuh kepada log masuk Webmin dengan berkesan!
|
||||
forgot_adminmsg=Anda menerima e-mel ini daripada pentadbir sistem Webmin di $3, untuk log masuk $1.\n\nJika anda ingin meneruskan penetapan semula kata laluan, ikuti pautan ini :\n$2
|
||||
forgot_sending=Menghantar e-mel tetapan semula kata laluan untuk $2 hingga $1 ..
|
||||
forgot_sent=.. dihantar
|
||||
forgot_link=Pautan di bawah boleh digunakan untuk menetapkan semula kata laluan Webmin untuk $1 untuk $2 minit seterusnya :
|
||||
forgot_enosudo=Sudo tidak tersedia pada sistem ini!
|
||||
forgot_ecansudo=Pengguna yang dimasukkan tidak mempunyai kebenaran sudo
|
||||
forgot_eunix=Pengguna berkemampuan sudo yang dimasukkan tidak wujud!
|
||||
|
||||
@@ -3,18 +3,21 @@ index_twofactor=Twee-factor authenticatie
|
||||
index_joingroup=Aan groep toevoegen:
|
||||
|
||||
edit_title3=Maak een veilige webmingebruiker aan
|
||||
edit_email=Contact e-mailadres
|
||||
edit_twofactor=Twee-factor authenticatietype
|
||||
edit_twofactorprov=Gebruik provider $1 met ID $2
|
||||
edit_twofactorcancel=Verwijder twee-factor authenticatie vereiste
|
||||
edit_twofactornone=Nog geen configuratie
|
||||
edit_twofactoradd=Twee-factor voor gebruiker inschakelen
|
||||
edit_locale=Lokaal
|
||||
edit_forgot=Stuur wachtwoordherstellink
|
||||
edit_safe=Privilege niveau
|
||||
edit_safe0=onbeperkt
|
||||
edit_safe1=Alleen veilige modules
|
||||
edit_unsafe=Reset naar onbeperkt
|
||||
|
||||
save_eunixname=De gebruikersnaam '$1' is geen Unix-gebruiker en kan dus niet in de veilige modus worden gebruikt
|
||||
save_eemail=E-mailadres mag het teken : niet bevatten
|
||||
|
||||
delete_eanonuser=Deze gebruiker wordt gebruikt voor anonieme moduletoegang
|
||||
|
||||
@@ -25,6 +28,9 @@ acl_locale=Kan de locatie worden gewijzigd?
|
||||
log_joingroup=$1 Webmin-gebruikers toegevoegd aan $2
|
||||
log_twofactor=Ingeschreven gebruiker $1 bij two-factor provider $2
|
||||
log_onefactor=Uitgeschreven gebruiker $1 voor tweefactorauthenticatie
|
||||
log_forgot_send=Verzonden e-mail voor wachtwoordherstel voor gebruiker $1 naar $2
|
||||
log_forgot_reset=Wachtwoord opnieuw instellen voor gebruiker $1 met e-mailadres $2
|
||||
log_forgot_admin=Beheerder heeft wachtwoordherstel-e-mail verzonden voor gebruiker $1 naar $2
|
||||
|
||||
convert_sync2=Wachtwoord synchroniseren met Unix-gebruiker in de toekomst?
|
||||
convert_user=Unix-gebruiker
|
||||
@@ -74,3 +80,20 @@ twofactor_failed=.. inschrijving mislukt: $1
|
||||
twofactor_done=.. compleet. Uw ID bij deze provider is <tt>$1</tt>.
|
||||
twofactor_setup=Tweefactorauthenticatie is nog niet ingeschakeld op dit systeem, maar kan worden ingeschakeld met de module <a href='$1'>Webmin-configuratie</a>.
|
||||
twofactor_ebutton=Er is niet op een knop geklikt!
|
||||
|
||||
forgot_title=Stuur wachtwoordherstellink
|
||||
forgot_err=Het is niet gelukt om de link voor het opnieuw instellen van het wachtwoord te versturen
|
||||
forgot_header=Details voor wachtwoordherstellink
|
||||
forgot_user=Wachtwoord voor gebruiker opnieuw instellen
|
||||
forgot_email=Linkleveringsmethode
|
||||
forgot_email_def=Link weergeven in Webmin
|
||||
forgot_email_sel=Link via e-mail verzenden naar
|
||||
forgot_send=Link verzenden
|
||||
forgot_desc=Met deze pagina kunt u een link genereren of versturen naar elk e-mailadres waarmee u een nieuw wachtwoord voor een Webmin-gebruiker kunt kiezen. Let op naar welk adres u deze link stuurt, want hiermee krijgt u in feite volledige toegang tot de Webmin-login!
|
||||
forgot_adminmsg=U ontvangt deze e-mail van de beheerder van het Webmin-systeem op $3, voor de login $1.\n\nAls u wilt doorgaan met het opnieuw instellen van het wachtwoord, volgt u deze link:\n$2
|
||||
forgot_sending=Verzenden van e-mail voor wachtwoordherstel van $2 naar $1 ..
|
||||
forgot_sent=.. verstuurd
|
||||
forgot_link=U kunt de onderstaande link gebruiken om het Webmin-wachtwoord voor $1 opnieuw in te stellen voor de komende $2 minuten :
|
||||
forgot_enosudo=Sudo is niet beschikbaar op dit systeem!
|
||||
forgot_ecansudo=De ingevoerde gebruiker heeft geen sudo-rechten
|
||||
forgot_eunix=De ingevoerde sudo-compatibele gebruiker bestaat niet!
|
||||
|
||||
@@ -1,7 +1,15 @@
|
||||
edit_email=Kontakt-e-postadresse
|
||||
edit_locale=Språk
|
||||
edit_forgot=Send lenke til tilbakestilling av passord
|
||||
|
||||
save_eemail=E-postadressen kan ikke inneholde tegnet:
|
||||
|
||||
acl_locale=Kan du endre lokalitet?
|
||||
|
||||
log_forgot_send=Sendte e-post for tilbakestilling av passord for bruker $1 til $2
|
||||
log_forgot_reset=Tilbakestill passord for bruker $1 med e-postadressen $2
|
||||
log_forgot_admin=Admin sendte e-post om tilbakestilling av passord for bruker $1 til $2
|
||||
|
||||
sync_modify=Gi nytt navn til den samsvarende Webmin-brukeren når en Unix-bruker får nytt navn.
|
||||
|
||||
sessions_all=Alle økter..
|
||||
@@ -13,3 +21,20 @@ sql_timeout_def=Bruk standard tilkoblingstimeout (60 sekunder)
|
||||
sql_timeout_for=Lukk hurtigbufrede tilkoblinger etter
|
||||
sql_timeout_secs=sekunder
|
||||
sql_etimeout=Tidsavbrudd for hurtigbufret tilkobling må være et tall
|
||||
|
||||
forgot_title=Send lenke til tilbakestilling av passord
|
||||
forgot_err=Kunne ikke sende lenken for tilbakestilling av passord
|
||||
forgot_header=Detaljer om lenke til tilbakestilling av passord
|
||||
forgot_user=Tilbakestill passord for bruker
|
||||
forgot_email=Leveringsmetode for lenker
|
||||
forgot_email_def=Vis lenke i Webmin
|
||||
forgot_email_sel=Send lenke via e-post til
|
||||
forgot_send=Send lenke
|
||||
forgot_desc=Denne siden lar deg generere eller sende en lenke som kan brukes til å velge et nytt passord for en Webmin-bruker til en hvilken som helst e-postadresse. Vær forsiktig med hvilken adresse du sender denne lenken til, da den effektivt vil gi full tilgang til Webmin-påloggingen!
|
||||
forgot_adminmsg=Du mottar denne e-posten fra administratoren av Webmin-systemet på $3, for påloggingen $1.\n\nHvis du vil fortsette med å tilbakestille passordet, følg denne lenken:\n$2
|
||||
forgot_sending=Sender e-post for tilbakestilling av passord for $2 til $1 ..
|
||||
forgot_sent=.. sendt
|
||||
forgot_link=Lenken nedenfor kan brukes til å tilbakestille Webmin-passordet for $1 for de neste $2 minuttene :
|
||||
forgot_enosudo=Sudo er ikke tilgjengelig på dette systemet!
|
||||
forgot_ecansudo=Brukeren som ble oppgitt har ikke sudo-tillatelser
|
||||
forgot_eunix=Den oppgitte sudo-kompatible brukeren finnes ikke!
|
||||
|
||||
25
acl/lang/pl.auto
Normal file
25
acl/lang/pl.auto
Normal file
@@ -0,0 +1,25 @@
|
||||
edit_email=Adres e-mail kontaktowy
|
||||
edit_forgot=Wyślij link do resetowania hasła
|
||||
|
||||
save_eemail=Adres e-mail nie może zawierać znaku :
|
||||
|
||||
log_forgot_send=Wysłano e-mail z resetem hasła dla użytkownika $1 do $2
|
||||
log_forgot_reset=Zresetuj hasło dla użytkownika $1 za pomocą adresu e-mail $2
|
||||
log_forgot_admin=Administrator wysłał e-mail z resetem hasła dla użytkownika $1 do $2
|
||||
|
||||
forgot_title=Wyślij link do resetowania hasła
|
||||
forgot_err=Nie udało się wysłać linku do resetowania hasła
|
||||
forgot_header=Szczegóły łącza do resetowania hasła
|
||||
forgot_user=Zresetuj hasło dla użytkownika
|
||||
forgot_email=Metoda dostarczania linków
|
||||
forgot_email_def=Wyświetl link w Webmin
|
||||
forgot_email_sel=Wyślij link e-mailem na adres
|
||||
forgot_send=Wyślij link
|
||||
forgot_desc=Ta strona umożliwia wygenerowanie lub wysłanie linku, który może zostać użyty do wybrania nowego hasła dla użytkownika Webmin na dowolny adres e-mail. Uważaj, na jaki adres wysyłasz ten link, ponieważ skutecznie przyzna on pełny dostęp do logowania Webmin!
|
||||
forgot_adminmsg=Otrzymujesz tę wiadomość e-mail od administratora systemu Webmin w $3, dla loginu $1.\n\nJeśli chcesz kontynuować resetowanie hasła, kliknij ten link:\n$2
|
||||
forgot_sending=Wysyłanie wiadomości e-mail z prośbą o zresetowanie hasła dla $2 do $1 ..
|
||||
forgot_sent=.. wysłano
|
||||
forgot_link=Poniższy link może zostać użyty do zresetowania hasła Webmin dla $1 na następne $2 minuty :
|
||||
forgot_enosudo=Sudo nie jest dostępne w tym systemie!
|
||||
forgot_ecansudo=Wprowadzony użytkownik nie ma uprawnień sudo
|
||||
forgot_eunix=Podany użytkownik obsługujący sudo nie istnieje!
|
||||
@@ -27,6 +27,7 @@ edit_title3=Criar usuário Webmin seguro
|
||||
edit_readonly=Esse usuário do Webmin não deve ser editado, pois é gerenciado pelo módulo $1. <a href='$2'>Clique aqui</a> para ignorar este aviso e editar o usuário de qualquer maneira - mas lembre-se de que qualquer alteração manual pode ser sobrescrita!
|
||||
edit_cloneof=Clonando usuário Webmin
|
||||
edit_real=Nome real
|
||||
edit_email=E-mail de contato
|
||||
edit_group=Membro do grupo
|
||||
edit_lock=Nenhuma senha aceita
|
||||
edit_pam=Autenticação PAM
|
||||
@@ -75,6 +76,7 @@ edit_selall=Selecionar tudo
|
||||
edit_invert=Seleção invertida
|
||||
edit_hide=Ocultar não utilizado
|
||||
edit_switch=Mudar para usuário
|
||||
edit_forgot=Enviar link para redefinição de senha
|
||||
edit_return=Usuário Webmin
|
||||
edit_return2=Grupo Webmin
|
||||
edit_rbacdeny=Modo de acesso RBAC
|
||||
@@ -128,6 +130,7 @@ save_edays=Não há dias para permitir selecionados
|
||||
save_ehours=Tempos ausentes ou inválidos para permitir
|
||||
save_ehours2=A hora de início permitida deve ser antes do final
|
||||
save_etemp=A opção de forçar uma alteração de senha no próximo login não pode ser usada, a menos que <a href='$1'>solicite aos usuários que insiram novas senhas</a> esteja ativado
|
||||
save_eemail=O endereço de e-mail não pode conter o caractere :
|
||||
|
||||
delete_err=Falha ao excluir usuário
|
||||
delete_eself=Você não pode se excluir
|
||||
@@ -223,6 +226,9 @@ log_sync=Sincronização de usuário unix alterada
|
||||
log_sql=Banco de dados de usuário e grupo alterado
|
||||
log_twofactor=Usuário registrado $1 com o provedor de dois fatores $2
|
||||
log_onefactor=Usuário desinscrito $1 para autenticação de dois fatores
|
||||
log_forgot_send=Enviou e-mail de redefinição de senha para o usuário $1 para $2
|
||||
log_forgot_reset=Redefinir senha para usuário $1 com e-mail $2
|
||||
log_forgot_admin=O administrador enviou um e-mail de redefinição de senha para o usuário $1 para $2
|
||||
|
||||
gedit_ecannot=Você não tem permissão para editar grupos
|
||||
gedit_title=Editar grupo Webmin
|
||||
@@ -485,3 +491,20 @@ twofactor_failed=.. inscrição falhou: $1
|
||||
twofactor_done=.. completo. Seu ID com este provedor é <tt>$1</tt>.
|
||||
twofactor_setup=A autenticação de dois fatores ainda não foi ativada neste sistema, mas pode ser ativada usando o módulo <a href='$1'>Webmin Configuration</a>.
|
||||
twofactor_ebutton=Nenhum botão clicou!
|
||||
|
||||
forgot_title=Enviar link para redefinição de senha
|
||||
forgot_err=Falha ao enviar link para redefinição de senha
|
||||
forgot_header=Detalhes do link para redefinição de senha
|
||||
forgot_user=Redefinir senha do usuário
|
||||
forgot_email=Método de entrega de links
|
||||
forgot_email_def=Exibir link no Webmin
|
||||
forgot_email_sel=Enviar link por e-mail para
|
||||
forgot_send=Enviar link
|
||||
forgot_desc=Esta página permite que você gere ou envie um link que pode ser usado para selecionar uma nova senha para um usuário do Webmin para qualquer endereço de e-mail. Tenha cuidado com o endereço para o qual você envia este link, pois ele efetivamente concederá acesso total ao login do Webmin!
|
||||
forgot_adminmsg=Você está recebendo este e-mail do administrador do sistema Webmin em $3, para o login $1.\n\nSe desejar prosseguir com a redefinição da senha, siga este link:\n$2
|
||||
forgot_sending=Enviando e-mail de redefinição de senha de $2 para $1 ..
|
||||
forgot_sent=.. enviado
|
||||
forgot_link=O link abaixo pode ser usado para redefinir a senha do Webmin para $1 pelos próximos $2 minutos :
|
||||
forgot_enosudo=Sudo não está disponível neste sistema!
|
||||
forgot_ecansudo=O usuário inserido não possui permissões sudo
|
||||
forgot_eunix=O usuário habilitado para sudo inserido não existe!
|
||||
|
||||
@@ -5,6 +5,7 @@ index_eulist=Falha ao listar usuários: $1
|
||||
index_eglist=Falha ao listar grupos: $1
|
||||
|
||||
edit_title3=Criar usuário Webmin seguro
|
||||
edit_email=E-mail de contato
|
||||
edit_twofactor=Tipo de autenticação de dois fatores
|
||||
edit_twofactorprov=Usando o provedor $1 com o ID $2
|
||||
edit_twofactorcancel=Remover requisito de autenticação de dois fatores
|
||||
@@ -12,6 +13,7 @@ edit_twofactornone=Nenhuma configuração ainda
|
||||
edit_twofactoradd=Ativar dois fatores para o usuário
|
||||
edit_locale=Localidade
|
||||
edit_egone=O usuário selecionado não existe mais!
|
||||
edit_forgot=Enviar link para redefinição de senha
|
||||
edit_proto=Tipo de armazenamento
|
||||
edit_proto_mysql=Banco de dados MySQL
|
||||
edit_proto_postgresql=Banco de dados PostgreSQL
|
||||
@@ -24,6 +26,7 @@ edit_unsafe=Redefinir para irrestrito
|
||||
|
||||
save_eunixname=O nome de usuário '$1' não é um usuário Unix e, portanto, não pode ser usado no modo de segurança
|
||||
save_etemp=A opção de forçar uma alteração de senha no próximo login não pode ser usada, a menos que <a href='$1'>solicite aos usuários que insiram novas senhas</a> esteja ativado
|
||||
save_eemail=O endereço de e-mail não pode conter o caractere :
|
||||
|
||||
delete_eanonuser=Este usuário está sendo usado para acesso anônimo ao módulo
|
||||
|
||||
@@ -37,6 +40,9 @@ log_joingroup=Adicionados $1 usuários Webmin ao grupo $2
|
||||
log_sql=Banco de dados de usuário e grupo alterado
|
||||
log_twofactor=Usuário registrado $1 com o provedor de dois fatores $2
|
||||
log_onefactor=Usuário desinscrito $1 para autenticação de dois fatores
|
||||
log_forgot_send=Enviou e-mail de redefinição de senha para o usuário $1 para $2
|
||||
log_forgot_reset=Redefinir senha para usuário $1 com e-mail $2
|
||||
log_forgot_admin=O administrador enviou um e-mail de redefinição de senha para o usuário $1 para $2
|
||||
|
||||
gedit_desc=Descrição do grupo
|
||||
gedit_egone=O grupo selecionado não existe mais!
|
||||
@@ -154,3 +160,20 @@ twofactor_failed=.. inscrição falhou: $1
|
||||
twofactor_done=.. completo. Seu ID com este provedor é <tt>$1</tt>.
|
||||
twofactor_setup=A autenticação de dois fatores ainda não foi ativada neste sistema, mas pode ser ativada usando o módulo <a href='$1'>Webmin Configuration</a>.
|
||||
twofactor_ebutton=Nenhum botão clicou!
|
||||
|
||||
forgot_title=Enviar link para redefinição de senha
|
||||
forgot_err=Falha ao enviar link para redefinição de senha
|
||||
forgot_header=Detalhes do link para redefinição de senha
|
||||
forgot_user=Redefinir senha do usuário
|
||||
forgot_email=Método de entrega de links
|
||||
forgot_email_def=Exibir link no Webmin
|
||||
forgot_email_sel=Enviar link por e-mail para
|
||||
forgot_send=Enviar link
|
||||
forgot_desc=Esta página permite que você gere ou envie um link que pode ser usado para selecionar uma nova senha para um usuário do Webmin para qualquer endereço de e-mail. Tenha cuidado com o endereço para o qual você envia este link, pois ele efetivamente concederá acesso total ao login do Webmin!
|
||||
forgot_adminmsg=Você está recebendo este e-mail do administrador do sistema Webmin em $3, para o login $1.\n\nSe desejar prosseguir com a redefinição da senha, siga este link:\n$2
|
||||
forgot_sending=Enviando e-mail de redefinição de senha de $2 para $1 ..
|
||||
forgot_sent=.. enviado
|
||||
forgot_link=O link abaixo pode ser usado para redefinir a senha do Webmin para $1 pelos próximos $2 minutos :
|
||||
forgot_enosudo=Sudo não está disponível neste sistema!
|
||||
forgot_ecansudo=O usuário inserido não possui permissões sudo
|
||||
forgot_eunix=O usuário habilitado para sudo inserido não existe!
|
||||
|
||||
@@ -5,6 +5,7 @@ index_eulist=Не удалось составить список пользов
|
||||
index_eglist=Не удалось перечислить группы: $1
|
||||
|
||||
edit_title3=Создать безопасный пользователь Webmin
|
||||
edit_email=Контактный адрес электронной почты
|
||||
edit_twofactor=Тип двухфакторной аутентификации
|
||||
edit_twofactorprov=Использование поставщика $1 с идентификатором $2
|
||||
edit_twofactorcancel=Удалить требование двухфакторной аутентификации
|
||||
@@ -13,6 +14,7 @@ edit_twofactoradd=Включить двухфакторный для польз
|
||||
edit_locale=Регион
|
||||
edit_nochange=Принудительно менять дни?
|
||||
edit_egone=Выбранный пользователь больше не существует!
|
||||
edit_forgot=Отправить ссылку для сброса пароля
|
||||
edit_rbacdeny0=RBAC контролирует только выбранные ACL модуля
|
||||
edit_rbacdeny1=RBAC контролирует все модули и ACL
|
||||
edit_proto=Тип хранения
|
||||
@@ -26,6 +28,7 @@ edit_safe1=Только безопасные модули
|
||||
edit_unsafe=Сброс на неограниченный
|
||||
|
||||
save_eunixname=Имя пользователя '$1' не является пользователем Unix и поэтому не может использоваться в безопасном режиме
|
||||
save_eemail=Адрес электронной почты не может содержать символ :
|
||||
|
||||
delete_eanonuser=Этот пользователь используется для доступа к анонимному модулю
|
||||
|
||||
@@ -39,6 +42,9 @@ log_joingroup=Добавлены $1 пользователи Webmin в груп
|
||||
log_sql=Изменена база данных пользователей и групп
|
||||
log_twofactor=Зарегистрированный пользователь $1 с двухфакторным поставщиком $2
|
||||
log_onefactor=Зарегистрированный пользователь $1 для двухфакторной аутентификации
|
||||
log_forgot_send=Отправлено электронное письмо для сброса пароля для пользователя $1 пользователю $2
|
||||
log_forgot_reset=Сброс пароля для пользователя $1 с адресом электронной почты $2
|
||||
log_forgot_admin=Администратор отправил электронное письмо для сброса пароля пользователя $1 пользователю $2
|
||||
|
||||
gedit_desc=Описание группы
|
||||
gedit_egone=Выбранная группа больше не существует!
|
||||
@@ -162,3 +168,20 @@ twofactor_failed=.. регистрация не выполнена: $1
|
||||
twofactor_done=.. завершено Ваш идентификатор этого провайдера составляет <tt>$1</tt>.
|
||||
twofactor_setup=Двухфакторная аутентификация еще не была включена в этой системе, но ее можно включить с помощью модуля <a href='$1'>Webmin Configuration</a>.
|
||||
twofactor_ebutton=Ни одна кнопка не нажата!
|
||||
|
||||
forgot_title=Отправить ссылку для сброса пароля
|
||||
forgot_err=Не удалось отправить ссылку для сброса пароля
|
||||
forgot_header=Подробности ссылки для сброса пароля
|
||||
forgot_user=Сбросить пароль пользователя
|
||||
forgot_email=Метод доставки ссылки
|
||||
forgot_email_def=Показать ссылку в Webmin
|
||||
forgot_email_sel=Отправить ссылку по электронной почте
|
||||
forgot_send=Отправить ссылку
|
||||
forgot_desc=Эта страница позволяет вам сгенерировать или отправить ссылку, которая может быть использована для выбора нового пароля для пользователя Webmin на любой адрес электронной почты. Будьте осторожны, на какой адрес вы отправляете эту ссылку, так как она фактически предоставит полный доступ к логину Webmin!
|
||||
forgot_adminmsg=Вы получили это письмо от администратора системы Webmin по адресу $3 для входа в систему $1.\n\nЕсли вы хотите продолжить сброс пароля, перейдите по этой ссылке:\n$2
|
||||
forgot_sending=Отправляю электронное письмо для сброса пароля для $2 на $1 ..
|
||||
forgot_sent=.. отправил
|
||||
forgot_link=Ссылку ниже можно использовать для сброса пароля Webmin для $1 на следующие $2 минуты :
|
||||
forgot_enosudo=Sudo недоступен в этой системе!
|
||||
forgot_ecansudo=У введенного пользователя нет прав sudo
|
||||
forgot_eunix=Введенный пользователь с правами sudo не существует!
|
||||
|
||||
@@ -8,6 +8,7 @@ edit_title3=Vytvorte bezpečného používateľa Webmin
|
||||
edit_readonly=Tento užívateľ Webmin by nemal byť upravovaný, pretože je spravovaný modulom $1. <a href='$2'>Kliknite tu</a>, aby ste toto upozornenie obišli a upravili používateľa - buďte si však vedomí, že akékoľvek manuálne zmeny môžu byť prepísané!
|
||||
edit_cloneof=Klonovanie užívateľa Webmin
|
||||
edit_real=Skutočné meno
|
||||
edit_email=Kontaktný e-mail
|
||||
edit_passlocked=Heslo sa nezmenilo už do $1 dní - účet je zablokovaný!
|
||||
edit_passmax=Heslo sa nezmenilo do $1 dní - pri nasledujúcom prihlásení sa musí zmeniť
|
||||
edit_passold=Heslo bolo naposledy zmenené pred $1 dňami
|
||||
@@ -25,6 +26,7 @@ edit_nochange=Vynútiť dni na zmenu hesla?
|
||||
edit_egone=Vybraný používateľ už neexistuje!
|
||||
edit_overlay=Prekrytie osobnej témy
|
||||
edit_overlayglobal=Žiadne - použite predvolené motívy
|
||||
edit_forgot=Odoslať odkaz na obnovenie hesla
|
||||
edit_rbacdeny0=RBAC riadi iba vybrané ACL modulov
|
||||
edit_rbacdeny1=RBAC riadi všetky moduly a ACL
|
||||
edit_global=Povolenia pre všetky moduly
|
||||
@@ -53,6 +55,7 @@ save_edays=Vybraté nie sú žiadne dni na povolenie
|
||||
save_ehours=Chýbajúce alebo neplatné časy na povolenie
|
||||
save_ehours2=Čas začiatku, ktorý sa má povoliť, musí byť pred koncom
|
||||
save_etemp=Možnosť vynútiť zmenu hesla pri ďalšom prihlásení nie je možné použiť, pokiaľ nie je povolená možnosť <a href='$1'>vyzývajúca používateľov na zadanie nových hesiel</a>.
|
||||
save_eemail=E-mailová adresa nemôže obsahovať znak :
|
||||
|
||||
delete_eanonuser=Tento užívateľ sa používa na anonymný prístup k modulu
|
||||
|
||||
@@ -73,6 +76,9 @@ log_sync=Zmenená synchronizácia unixového používateľa
|
||||
log_sql=Zmenená databáza používateľov a skupín
|
||||
log_twofactor=Registrovaný používateľ $1 s dvojfaktorovým poskytovateľom $2
|
||||
log_onefactor=Registrovaný používateľ $1 na dvojfaktorové overenie
|
||||
log_forgot_send=E-mail na obnovenie hesla odoslaný pre používateľa $1 používateľovi $2
|
||||
log_forgot_reset=Obnoviť heslo pre používateľa $1 s e-mailom $2
|
||||
log_forgot_admin=Správca odoslal e-mail na obnovenie hesla pre používateľa $1 používateľovi $2
|
||||
|
||||
gedit_members=Používatelia a skupiny členov
|
||||
gedit_desc=Popis skupiny
|
||||
@@ -247,3 +253,20 @@ twofactor_failed=.. zápis zlyhal: $1
|
||||
twofactor_done=.. dokončené. Vaše ID u tohto poskytovateľa je <tt>$1</tt>.
|
||||
twofactor_setup=V tomto systéme zatiaľ nie je povolená dvojfaktorová autentifikácia, ale dá sa zapnúť pomocou modulu <a href='$1'>Webmin Configuration</a>.
|
||||
twofactor_ebutton=Klikli na žiadne tlačidlo!
|
||||
|
||||
forgot_title=Odoslať odkaz na obnovenie hesla
|
||||
forgot_err=Odoslanie odkazu na obnovenie hesla zlyhalo
|
||||
forgot_header=Podrobnosti o odkaze na obnovenie hesla
|
||||
forgot_user=Obnoviť heslo pre používateľa
|
||||
forgot_email=Spôsob doručenia odkazu
|
||||
forgot_email_def=Zobraziť odkaz vo Webmine
|
||||
forgot_email_sel=Poslať odkaz e-mailom na
|
||||
forgot_send=Odoslať odkaz
|
||||
forgot_desc=Táto stránka vám umožňuje vygenerovať alebo odoslať odkaz, ktorý možno použiť na výber nového hesla pre používateľa Webminu na ľubovoľnú e-mailovú adresu. Buďte opatrní, na ktorú adresu tento odkaz odosielate, pretože vám v podstate poskytne plný prístup k prihláseniu do Webminu!
|
||||
forgot_adminmsg=Tento e-mail ste dostali od administrátora systému Webmin na adrese $3 pre prihlasovacie údaje $1.\n\nAk chcete pokračovať v obnovení hesla, kliknite na tento odkaz:\n$2
|
||||
forgot_sending=Odosielanie e-mailu na obnovenie hesla pre $2 na $1 ..
|
||||
forgot_sent=.. odoslané
|
||||
forgot_link=Nižšie uvedený odkaz možno použiť na obnovenie hesla Webmin pre $1 na nasledujúcich $2 minút :
|
||||
forgot_enosudo=Sudo nie je na tomto systéme k dispozícii!
|
||||
forgot_ecansudo=Zadaný používateľ nemá oprávnenia sudo
|
||||
forgot_eunix=Zadaný používateľ s podporou sudo neexistuje!
|
||||
|
||||
@@ -5,6 +5,7 @@ index_eulist=Det gick inte att lista användare: $1
|
||||
index_eglist=Det gick inte att lista grupper: $1
|
||||
|
||||
edit_title3=Skapa säker Webmin-användare
|
||||
edit_email=Kontakt-e-postadress
|
||||
edit_twofactor=Tvåfaktors autentiseringstyp
|
||||
edit_twofactorprov=Använda leverantör $1 med ID $2
|
||||
edit_twofactorcancel=Ta bort tvåfaktors autentiseringskrav
|
||||
@@ -12,6 +13,7 @@ edit_twofactornone=Ingen installation ännu
|
||||
edit_twofactoradd=Aktivera tvåfaktorer för användare
|
||||
edit_locale=Plats
|
||||
edit_egone=Den valda användaren finns inte längre!
|
||||
edit_forgot=Skicka länk för återställning av lösenord
|
||||
edit_proto=Lagringstyp
|
||||
edit_proto_mysql=MySQL-databas
|
||||
edit_proto_postgresql=PostgreSQL-databas
|
||||
@@ -26,6 +28,7 @@ save_eunixname=Användarnamnet '$1' är inte en Unix-användare och kan därför
|
||||
save_eoverlay=Ett temaöverlägg kan inte väljas om inte ett tema är det
|
||||
save_eminsize=Saknad eller icke-numerisk minsta lösenordslängd
|
||||
save_etemp=Alternativet att tvinga lösenordsändring vid nästa inloggning kan inte användas om <a href='$1'>uppmanar användare att ange nya lösenord</a> är aktiverat
|
||||
save_eemail=E-postadressen får inte innehålla tecknet :
|
||||
|
||||
delete_eanonuser=Den här användaren används för anonym modulåtkomst
|
||||
|
||||
@@ -41,6 +44,9 @@ log_sync=Ändrad unix användarsynkronisering
|
||||
log_sql=Ändrad användare och gruppdatabas
|
||||
log_twofactor=Registrerad användare $1 med tvåfaktureleverantör $2
|
||||
log_onefactor=Inskrivna användare $1 för tvåfaktorautentisering
|
||||
log_forgot_send=Skickade e-postmeddelande för återställning av lösenord för användare $1 till $2
|
||||
log_forgot_reset=Återställ lösenord för användare $1 med e-postadress $2
|
||||
log_forgot_admin=Administratören skickade ett e-postmeddelande med lösenordsåterställning för användaren $1 till $2
|
||||
|
||||
gedit_desc=Gruppbeskrivning
|
||||
gedit_egone=Den valda gruppen finns inte längre!
|
||||
@@ -162,3 +168,20 @@ twofactor_failed=.. anmälan misslyckades: $1
|
||||
twofactor_done=.. komplett. Ditt ID med denna leverantör är <tt>$1</tt>.
|
||||
twofactor_setup=Tvåfaktorsautentisering har inte aktiverats i det här systemet ännu, men kan aktiveras med <a href='$1'>Webmin Configuration</a> -modulen.
|
||||
twofactor_ebutton=Ingen knapp klickade!
|
||||
|
||||
forgot_title=Skicka länk för återställning av lösenord
|
||||
forgot_err=Misslyckades med att skicka länken för återställning av lösenord
|
||||
forgot_header=Detaljer om länken för återställning av lösenord
|
||||
forgot_user=Återställ lösenord för användaren
|
||||
forgot_email=Länkleveransmetod
|
||||
forgot_email_def=Visa länk i Webmin
|
||||
forgot_email_sel=Skicka länk via e-post till
|
||||
forgot_send=Skicka länk
|
||||
forgot_desc=Den här sidan låter dig generera eller skicka en länk som kan användas för att välja ett nytt lösenord för en Webmin-användare till vilken e-postadress som helst. Var försiktig med vilken adress du skickar den här länken till, eftersom den i praktiken ger fullständig åtkomst till Webmin-inloggningen!
|
||||
forgot_adminmsg=Du får detta e-postmeddelande från administratören för Webmin-systemet på $3, för inloggningen $1.\n\nOm du vill fortsätta med att återställa lösenordet, följ den här länken:\n$2
|
||||
forgot_sending=Skickar e-post för återställning av lösenord för $2 till $1 ..
|
||||
forgot_sent=.. skickat
|
||||
forgot_link=Länken nedan kan användas för att återställa Webmin-lösenordet för $1 under de kommande $2 minuterna :
|
||||
forgot_enosudo=Sudo är inte tillgängligt på det här systemet!
|
||||
forgot_ecansudo=Den angivna användaren har inte sudo-behörigheter
|
||||
forgot_eunix=Den angivna sudo-kapabla användaren finns inte!
|
||||
|
||||
@@ -10,6 +10,7 @@ edit_title3=Güvenli Webmin Kullanıcısı Oluşturun
|
||||
edit_readonly=Bu Webmin kullanıcısı $1 modülü tarafından yönetildiği için düzenlenmemelidir. Bu uyarıyı atlamak ve kullanıcıyı yine de düzenlemek için <a href='$2'>burayı tıklayın</a> - ancak manuel değişikliklerin üzerine yazılabileceğini unutmayın!
|
||||
edit_cloneof=Webmin kullanıcısını kopyalama
|
||||
edit_real=Gerçek ad
|
||||
edit_email=İletişim e-postası
|
||||
edit_passlocked=$1 gün boyunca şifre değiştirilmedi - hesap kilitlendi!
|
||||
edit_passmax=$1 gün boyunca şifre değiştirilmedi - bir sonraki girişte değiştirilmelidir
|
||||
edit_passold=Şifre en son değiştirildi $1 gün önce
|
||||
@@ -28,6 +29,7 @@ edit_nochange=Şifre değiştirme günleri uygulansın mı?
|
||||
edit_egone=Seçilen kullanıcı artık mevcut değil!
|
||||
edit_overlay=Kişisel tema kaplaması
|
||||
edit_overlayglobal=Yok - tema varsayılanlarını kullan
|
||||
edit_forgot=Şifre Sıfırlama Bağlantısını Gönder
|
||||
edit_rbacdeny=RBAC erişim modu
|
||||
edit_rbacdeny0=RBAC yalnızca seçilen modül ACL'lerini kontrol eder
|
||||
edit_rbacdeny1=RBAC tüm modülleri ve ACL'leri kontrol eder
|
||||
@@ -63,6 +65,7 @@ save_edays=Seçime izin verilecek gün yok
|
||||
save_ehours=İzin vermek için eksik veya geçersiz zamanlar
|
||||
save_ehours2=İzin vermek için başlangıç zamanı bitmeden olmalıdır
|
||||
save_etemp=<a href='$1'>kullanıcılardan yeni şifreler girmelerini istemediklerinde</a> bir sonraki girişte şifre değişikliğini zorlama seçeneği kullanılamaz
|
||||
save_eemail=E-posta adresi : karakterini içeremez
|
||||
|
||||
delete_eanonuser=Bu kullanıcı anonim modül erişimi için kullanılıyor
|
||||
|
||||
@@ -85,6 +88,9 @@ log_sync=Unix kullanıcı senkronizasyonu değiştirildi
|
||||
log_sql=Değişen kullanıcı ve grup veritabanı
|
||||
log_twofactor=İki faktörlü $2 ile kayıtlı $1 kullanıcısı
|
||||
log_onefactor=İki faktörlü kimlik doğrulama için kaydı iptal edilen $1 kullanıcısı
|
||||
log_forgot_send=$1 kullanıcısı için $2'ye şifre sıfırlama e-postası gönderildi
|
||||
log_forgot_reset=$2 e-posta adresine sahip $1 kullanıcısı için şifreyi sıfırla
|
||||
log_forgot_admin=Yönetici $1 - $2 kullanıcısı için parola sıfırlama e-postası gönderdi
|
||||
|
||||
gedit_members=Üye kullanıcılar ve gruplar
|
||||
gedit_desc=Grup açıklaması
|
||||
@@ -268,3 +274,20 @@ twofactor_failed=.. kayıt başarısız oldu: $1
|
||||
twofactor_done=.. tamamlayınız. Bu sağlayıcıdaki kimliğiniz <tt>$1</tt>.
|
||||
twofactor_setup=İki faktörlü kimlik doğrulama henüz bu sistemde etkinleştirilmedi, ancak <a href='$1'>Webmin Yapılandırması</a> modülü kullanılarak açılabilir.
|
||||
twofactor_ebutton=Hiçbir düğme tıklanmadı!
|
||||
|
||||
forgot_title=Şifre Sıfırlama Bağlantısını Gönder
|
||||
forgot_err=Şifre sıfırlama bağlantısı gönderilemedi
|
||||
forgot_header=Şifre sıfırlama bağlantısı ayrıntıları
|
||||
forgot_user=Kullanıcı için şifreyi sıfırla
|
||||
forgot_email=Bağlantı teslim yöntemi
|
||||
forgot_email_def=Bağlantıyı Webmin'de görüntüle
|
||||
forgot_email_sel=Bağlantıyı e-posta ile gönder
|
||||
forgot_send=Bağlantıyı Gönder
|
||||
forgot_desc=Bu sayfa, bir Webmin kullanıcısı için yeni bir parola seçmek için kullanılabilecek bir bağlantı oluşturmanıza veya herhangi bir e-posta adresine göndermenize olanak tanır. Bu bağlantıyı hangi adrese gönderdiğinize dikkat edin, çünkü bu, Webmin oturum açma işlemine tam erişim sağlayacaktır!
|
||||
forgot_adminmsg=Bu e-postayı, $3 adresindeki Webmin sisteminin yöneticisinden, $1 girişi için alıyorsunuz.\n\nŞifreyi sıfırlamaya devam etmek istiyorsanız, şu bağlantıyı izleyin:\n$2
|
||||
forgot_sending=$2 için şifre sıfırlama e-postası $1 adresine gönderiliyor ..
|
||||
forgot_sent=.. gönderilmiş
|
||||
forgot_link=Aşağıdaki bağlantı $1 için Webmin şifresini önümüzdeki $2 dakika boyunca sıfırlamak için kullanılabilir :
|
||||
forgot_enosudo=Bu sistemde Sudo mevcut değil!
|
||||
forgot_ecansudo=Girilen kullanıcı sudo izinlerine sahip değil
|
||||
forgot_eunix=Girilen sudo-capable kullanıcı bulunamadı!
|
||||
|
||||
@@ -34,6 +34,7 @@ edit_rights=Права доступу користувачів Webmin
|
||||
edit_user=Ім'я користувача
|
||||
edit_cloneof=Клонування користувача Webmin
|
||||
edit_real=Справжнє ім'я
|
||||
edit_email=Контактна електронна адреса
|
||||
edit_group=Член групи
|
||||
edit_pass=Пароль
|
||||
edit_same=Те саме, що Unix
|
||||
@@ -88,6 +89,7 @@ edit_selall=Вибрати все
|
||||
edit_invert=Інвертувати вибір
|
||||
edit_hide=Сховати невикористаним
|
||||
edit_switch=Переключитися на користувача
|
||||
edit_forgot=Надіслати посилання для скидання пароля
|
||||
edit_return2=Група Вебмін
|
||||
edit_rbacdeny=Режим доступу RBAC
|
||||
edit_rbacdeny0=RBAC керує лише вибраними модулями ACL
|
||||
@@ -145,6 +147,7 @@ save_edays=Немає днів, щоб дозволити вибране
|
||||
save_ehours=Відсутній або недійсний час для дозволу
|
||||
save_ehours2=Час початку дозволення повинен бути до кінця
|
||||
save_etemp=Параметр примусити змінити пароль при наступному вході не можна використовувати, якщо <a href='$1'>спонукає користувачів вводити нові паролі</a>
|
||||
save_eemail=Адреса електронної пошти не може містити символ :
|
||||
|
||||
delete_eself=Ви не можете видалити себе
|
||||
delete_ecannot=Вам заборонено видаляти користувачів
|
||||
@@ -242,6 +245,9 @@ log_sync=Змінено синхронізацію користувача Unix
|
||||
log_sql=Змінено базу даних користувачів та груп
|
||||
log_twofactor=Зареєстрований користувач $1 з двофакторним постачальником $2
|
||||
log_onefactor=Користувач, який не був зареєстрований, $1 для двофакторної аутентифікації
|
||||
log_forgot_send=Надіслано електронного листа для скидання пароля для користувача $1 до $2
|
||||
log_forgot_reset=Скинути пароль для користувача $1 з електронною поштою $2
|
||||
log_forgot_admin=Адміністратор надіслав електронного листа для скидання пароля для користувача $1 користувачу $2
|
||||
|
||||
gedit_ecannot=Вам заборонено редагувати групи
|
||||
gedit_title=Редагування групи Webmin
|
||||
@@ -504,3 +510,20 @@ twofactor_failed=.. реєстрація не вдалася: $1
|
||||
twofactor_done=.. завершено. Ваш ідентифікатор у цього постачальника <tt>$1</tt>.
|
||||
twofactor_setup=Двофакторна автентифікація ще не ввімкнена в цій системі, але її можна ввімкнути за допомогою модуля <a href='$1'>Конфігурація Webmin</a>.
|
||||
twofactor_ebutton=Жодна кнопка не натиснута!
|
||||
|
||||
forgot_title=Надіслати посилання для скидання пароля
|
||||
forgot_err=Не вдалося надіслати посилання для скидання пароля
|
||||
forgot_header=Деталі посилання для скидання пароля
|
||||
forgot_user=Скинути пароль для користувача
|
||||
forgot_email=Спосіб доставки посилання
|
||||
forgot_email_def=Відобразити посилання у Webmin
|
||||
forgot_email_sel=Надіслати посилання електронною поштою на
|
||||
forgot_send=Надіслати посилання
|
||||
forgot_desc=Ця сторінка дозволяє вам згенерувати або надіслати посилання, яке можна використовувати для вибору нового пароля для користувача Webmin, на будь-яку адресу електронної пошти. Будьте уважні, на яку адресу ви надсилаєте це посилання, оскільки воно фактично надасть повний доступ до входу в Webmin!
|
||||
forgot_adminmsg=Ви отримали цей електронний лист від адміністратора системи Webmin за адресою $3, для входу $1.\n\nЯкщо ви хочете продовжити скидання пароля, перейдіть за цим посиланням:\n$2
|
||||
forgot_sending=Надсилання електронного листа для скидання пароля для $2 на $1 ..
|
||||
forgot_sent=.. відправлено
|
||||
forgot_link=Посилання нижче можна використовувати для скидання пароля Webmin для $1 протягом наступних $2 хвилин :
|
||||
forgot_enosudo=Sudo недоступний на цій системі!
|
||||
forgot_ecansudo=Введений користувач не має прав sudo
|
||||
forgot_eunix=Введений користувач із підтримкою sudo не існує!
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
edit_email=联系邮箱
|
||||
edit_egone=选定的用户不再存在!
|
||||
edit_forgot=发送密码重置链接
|
||||
|
||||
save_eemail=电子邮件地址不能包含:字符
|
||||
|
||||
cert_ebrowser=Webmin 不知道如何为您的浏览器颁发客户端证书 ($1)
|
||||
|
||||
log_forgot_send=已将用户 $1 的密码重置电子邮件发送至 $2
|
||||
log_forgot_reset=为电子邮件为 $2 的用户 $1 重置密码
|
||||
log_forgot_admin=管理员已将用户 $1 的密码重置电子邮件发送给 $2
|
||||
|
||||
gsave_edesc=无效描述 - 不允许使用 : 字符
|
||||
|
||||
forgot_title=发送密码重置链接
|
||||
forgot_err=无法发送密码重置链接
|
||||
forgot_header=密码重置链接详情
|
||||
forgot_user=重置用户密码
|
||||
forgot_email=链接传递方式
|
||||
forgot_email_def=在 Webmin 中显示链接
|
||||
forgot_email_sel=通过电子邮件发送链接至
|
||||
forgot_send=发送链接
|
||||
forgot_desc=此页面允许您生成或发送一个链接,该链接可用于为 Webmin 用户选择新密码,并发送到任何电子邮件地址。请谨慎选择发送此链接的地址,因为它实际上会授予 Webmin 登录的完全访问权限!
|
||||
forgot_adminmsg=您将收到来自 $3 的 Webmin 系统管理员的这封电子邮件,登录名为 $1。\n\n如果您想继续重置密码,请点击此链接:\n$2
|
||||
forgot_sending=正在将 $2 的密码重置电子邮件发送至 $1 ..
|
||||
forgot_sent=.. 发送
|
||||
forgot_link=下面的链接可用于重置 $1 在接下来的 $2 分钟内的 Webmin 密码:
|
||||
forgot_enosudo=Sudo 在本系统上不可用!
|
||||
forgot_ecansudo=输入的用户没有 sudo 权限
|
||||
forgot_eunix=输入的具有 sudo 权限的用户不存在!
|
||||
|
||||
@@ -10,6 +10,7 @@ edit_title3=創建安全的Webmin用戶
|
||||
edit_readonly=該Webmin用戶不能編輯,因為它是由 $1 模塊管理的。 <a href='$2'>單擊此處</a>以繞過此警告並仍然編輯用戶-但請注意,任何手動更改都可能被覆蓋!
|
||||
edit_cloneof=克隆Webmin用戶
|
||||
edit_real=真正的名字
|
||||
edit_email=聯絡信箱
|
||||
edit_passlocked=$1 天未更改密碼-帳戶已鎖定!
|
||||
edit_passmax=$1 天未更改密碼-下次登錄時必須更改
|
||||
edit_passold=密碼最後一次更改是 $1 天前
|
||||
@@ -30,6 +31,7 @@ edit_overlay=個人主題疊加
|
||||
edit_overlayglobal=無-使用主題默認值
|
||||
edit_hide=隱藏未使用
|
||||
edit_switch=切換到用戶
|
||||
edit_forgot=發送密碼重設連結
|
||||
edit_return=Webmin用戶
|
||||
edit_return2=Webmin組
|
||||
edit_rbacdeny=RBAC訪問模式
|
||||
@@ -67,6 +69,7 @@ save_edays=沒有天數可供選擇
|
||||
save_ehours=缺少時間或無效時間
|
||||
save_ehours2=允許的開始時間必須在結束之前
|
||||
save_etemp=除非啟用了<a href='$1'>提示用戶輸入新密碼</a>的選項,否則不能使用在下次登錄時強制更改密碼的選項。
|
||||
save_eemail=電子郵件地址不能包含:字符
|
||||
|
||||
delete_eanonuser=該用戶正用於匿名模塊訪問
|
||||
|
||||
@@ -93,6 +96,9 @@ log_sync=更改了Unix用戶同步
|
||||
log_sql=更改的用戶和組數據庫
|
||||
log_twofactor=使用兩因素提供程序 $2 的已註冊用戶 $1
|
||||
log_onefactor=取消註冊用戶 $1 進行雙重身份驗證
|
||||
log_forgot_send=已將使用者 $1 的密碼重設電子郵件傳送至 $2
|
||||
log_forgot_reset=為電子郵件為 $2 的使用者 $1 重設密碼
|
||||
log_forgot_admin=管理員已將使用者 $1 的密碼重設電子郵件傳送給 $2
|
||||
|
||||
gedit_members=會員用戶和組
|
||||
gedit_desc=團體簡介
|
||||
@@ -296,3 +302,20 @@ twofactor_failed=..註冊失敗: $1
|
||||
twofactor_done=..完成。您在此提供程序處的ID是<tt>$1</tt>。
|
||||
twofactor_setup=此系統上尚未啟用兩因素身份驗證,但可以使用<a href='$1'>Webmin Configuration</a>模塊將其打開。
|
||||
twofactor_ebutton=沒有點擊按鈕!
|
||||
|
||||
forgot_title=發送密碼重設連結
|
||||
forgot_err=無法發送密碼重設鏈接
|
||||
forgot_header=密碼重置連結詳情
|
||||
forgot_user=重置用戶密碼
|
||||
forgot_email=連結傳遞方式
|
||||
forgot_email_def=在 Webmin 中顯示鏈接
|
||||
forgot_email_sel=透過電子郵件發送連結至
|
||||
forgot_send=發送連結
|
||||
forgot_desc=此頁面可讓您產生或傳送可用於為 Webmin 使用者選擇新密碼的連結至任何電子郵件地址。請小心將此連結傳送到哪個位址,因為它將有效授予對 Webmin 登入的完全存取權!
|
||||
forgot_adminmsg=您將收到來自 $3 的 Webmin 系統管理員的這封電子郵件,登入名為 $1。 \n\n如果您想繼續重設密碼,請點擊此連結:\n$2
|
||||
forgot_sending=正在將 $2 的密碼重設電子郵件發送至 $1 ..
|
||||
forgot_sent=.. 發送
|
||||
forgot_link=下面的連結可用於重設 $1 在接下來的 $2 分鐘內的 Webmin 密碼:
|
||||
forgot_enosudo=Sudo 在本系統上不可用!
|
||||
forgot_ecansudo=輸入的使用者沒有 sudo 權限
|
||||
forgot_eunix=輸入的具有 sudo 權限的使用者不存在!
|
||||
|
||||
@@ -28,7 +28,7 @@ print &ui_columns_start([ $text{'sessions_id'},
|
||||
$text{'sessions_state'},
|
||||
$text{'sessions_user'},
|
||||
$text{'sessions_host'},
|
||||
$text{'sessions_login'},
|
||||
$text{'sessions_login_ago'},
|
||||
$text{'sessions_actions'},
|
||||
], 100);
|
||||
foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a});
|
||||
@@ -68,7 +68,8 @@ foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a});
|
||||
push(@cols, $user);
|
||||
}
|
||||
push(@cols, $lip);
|
||||
push(@cols, &make_date($ltime));
|
||||
push(@cols, &make_date_relative($ltime).
|
||||
" ".&ui_help(&make_date($ltime)));
|
||||
my @links;
|
||||
if ($haslog) {
|
||||
push(@links, ui_link("../webminlog/search.cgi?uall=1&mall=1&tall=1&wall=1&fall=1&sid=$k", $text{'sessions_lview'}));
|
||||
|
||||
@@ -20,7 +20,12 @@ foreach my $k (keys %sessiondb) {
|
||||
next if ($k =~ /^1111111/);
|
||||
next if (!$sessiondb{$k});
|
||||
my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k});
|
||||
next if ($user ne $remote_user && $user ne "!".$remote_user);
|
||||
next if (&webmin_user_is_admin()
|
||||
? ($user eq "!" ||
|
||||
($user ne $remote_user &&
|
||||
# Show all logins for past 3 days for admin
|
||||
$ltime && $ltime < time() - 3*24*60*60))
|
||||
: ($user ne $remote_user && $user ne "!".$remote_user));
|
||||
push(@logins, [ $user, $ltime, $lip, $k ]);
|
||||
}
|
||||
if (@logins) {
|
||||
@@ -29,7 +34,8 @@ if (@logins) {
|
||||
@logins = @logins[0..4];
|
||||
}
|
||||
my $html = &ui_columns_start([ $text{'sessions_host'},
|
||||
$text{'sessions_login'},
|
||||
$text{'sessions_user'},
|
||||
$text{'sessions_login_ago'},
|
||||
$text{'sessions_state'},
|
||||
$text{'sessions_action'} ]);
|
||||
my $open = 0;
|
||||
@@ -62,9 +68,13 @@ if (@logins) {
|
||||
&ui_link("@{[&get_webprefix()]}/acl/delete_session.cgi?id=$l->[3]&redirect_ref=1",
|
||||
$text{'sessions_kill'}))
|
||||
}
|
||||
my $user = $l->[0];
|
||||
$user =~ s/^\!//;
|
||||
$html .= &ui_columns_row([
|
||||
$l->[2],
|
||||
&make_date($l->[1]),
|
||||
$user,
|
||||
&make_date_relative($l->[1]).
|
||||
" ".&ui_help(&make_date($l->[1])),
|
||||
$state,
|
||||
&ui_links_row(\@links) ]);
|
||||
}
|
||||
|
||||
@@ -26,82 +26,94 @@ $last_restart_time_flag = $module_var_directory."/restart-flag";
|
||||
# if the Apache binary changes, when Webmin is upgraded, or once every five
|
||||
# minutes if automatic rebuilding is enabled.
|
||||
if ($module_name ne 'htaccess') {
|
||||
local %oldsite;
|
||||
local $httpd = &find_httpd();
|
||||
local @st = stat($httpd);
|
||||
&read_file($site_file, \%oldsite);
|
||||
local @sst = stat($site_file);
|
||||
if ($oldsite{'path'} ne $httpd ||
|
||||
$oldsite{'size'} != $st[7] ||
|
||||
$oldsite{'webmin'} != &get_webmin_version() ||
|
||||
$config{'auto_mods'} && $sst[9] < time()-5*60) {
|
||||
# Need to build list of supported modules
|
||||
local ($ver, $mods, $fullver) = &httpd_info($httpd);
|
||||
if ($ver) {
|
||||
my @allmods = &available_modules();
|
||||
local @mods = map { "$_/$ver" }
|
||||
&configurable_modules(\@allmods);
|
||||
foreach my $m (@mods) {
|
||||
if ($m =~ /(\S+)\/(\S+)/) {
|
||||
$httpd_modules{$1} = $2;
|
||||
}
|
||||
}
|
||||
# Call again now that known modules have been set, as
|
||||
# sometimes there are dependencies due to LoadModule
|
||||
# statements in an IfModule block
|
||||
undef(@get_config_cache);
|
||||
@allmods = &available_modules();
|
||||
@mods = map { "$_/$ver" }
|
||||
&configurable_modules(\@allmods);
|
||||
local %site = ( 'size' => $st[7],
|
||||
'path' => $httpd,
|
||||
'modules' => join(' ', @mods),
|
||||
'allmodules' => join(' ', @allmods),
|
||||
'version' => $ver,
|
||||
'fullversion' => $fullver,
|
||||
'webmin' => &get_webmin_version() );
|
||||
&lock_file($site_file);
|
||||
&write_file($site_file, \%site);
|
||||
chmod(0644, $site_file);
|
||||
&unlock_file($site_file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Read the site-specific setup file, then require in all the module-specific
|
||||
# .pl files
|
||||
if (&read_file($site_file, \%site)) {
|
||||
local($m, $f, $d);
|
||||
$httpd_size = $site{'size'};
|
||||
foreach $m (split(/\s+/, $site{'modules'})) {
|
||||
if ($m =~ /(\S+)\/(\S+)/) {
|
||||
$httpd_modules{$1} = $2;
|
||||
}
|
||||
}
|
||||
foreach $m (split(/\s+/, $site{'allmodules'})) {
|
||||
$all_httpd_modules{$m} = $site{'version'};
|
||||
}
|
||||
foreach $m (keys %httpd_modules) {
|
||||
if (!-r "$module_root_directory/$m.pl") {
|
||||
delete($httpd_modules{$m});
|
||||
}
|
||||
}
|
||||
foreach $f (split(/\s+/, $site{'htaccess'})) {
|
||||
if (-r $f) { push(@htaccess_files, $f); }
|
||||
}
|
||||
foreach $m (keys %httpd_modules) {
|
||||
do "$m.pl";
|
||||
}
|
||||
foreach $d (split(/\s+/, $site{'defines'})) {
|
||||
$httpd_defines{$d}++;
|
||||
}
|
||||
&create_site_file();
|
||||
}
|
||||
&read_site_file();
|
||||
|
||||
$apache_docbase = $config{'apache_docbase'} ? $config{'apache_docbase'} :
|
||||
$httpd_modules{'core'} >= 2.0 ?
|
||||
"http://httpd.apache.org/docs-2.0/mod/" :
|
||||
"http://httpd.apache.org/docs/mod/";
|
||||
|
||||
# create_site_file()
|
||||
# If the Apache binary or Webmin version has changed, create the site
|
||||
# file containing all known Apache modules
|
||||
sub create_site_file
|
||||
{
|
||||
my %oldsite;
|
||||
my $httpd = &find_httpd();
|
||||
my @st = stat($httpd);
|
||||
&read_file($site_file, \%oldsite);
|
||||
my @sst = stat($site_file);
|
||||
if ($oldsite{'path'} ne $httpd ||
|
||||
$oldsite{'size'} != $st[7] ||
|
||||
$oldsite{'webmin'} != &get_webmin_version() ||
|
||||
$config{'auto_mods'} && $sst[9] < time()-5*60) {
|
||||
# Need to build list of supported modules
|
||||
my ($ver, $mods, $fullver) = &httpd_info($httpd);
|
||||
if ($ver) {
|
||||
my @allmods = &available_modules();
|
||||
my @mods = map { "$_/$ver" }
|
||||
&configurable_modules(\@allmods);
|
||||
foreach my $m (@mods) {
|
||||
if ($m =~ /(\S+)\/(\S+)/) {
|
||||
$httpd_modules{$1} = $2;
|
||||
}
|
||||
}
|
||||
# Call again now that known modules have been set, as
|
||||
# sometimes there are dependencies due to LoadModule
|
||||
# statements in an IfModule block
|
||||
undef(@get_config_cache);
|
||||
@allmods = &available_modules();
|
||||
@mods = map { "$_/$ver" }
|
||||
&configurable_modules(\@allmods);
|
||||
my %site = ( 'size' => $st[7],
|
||||
'path' => $httpd,
|
||||
'modules' => join(' ', @mods),
|
||||
'allmodules' => join(' ', @allmods),
|
||||
'version' => $ver,
|
||||
'fullversion' => $fullver,
|
||||
'webmin' => &get_webmin_version() );
|
||||
&lock_file($site_file);
|
||||
&write_file($site_file, \%site);
|
||||
chmod(0644, $site_file);
|
||||
&unlock_file($site_file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# read_site_file()
|
||||
# Read the site-specific setup file, then require in all the module-specific
|
||||
# .pl files
|
||||
sub read_site_file
|
||||
{
|
||||
if (&read_file($site_file, \%site)) {
|
||||
foreach my $m (split(/\s+/, $site{'modules'})) {
|
||||
if ($m =~ /(\S+)\/(\S+)/) {
|
||||
$httpd_modules{$1} = $2;
|
||||
}
|
||||
}
|
||||
foreach my $m (split(/\s+/, $site{'allmodules'})) {
|
||||
$all_httpd_modules{$m} = $site{'version'};
|
||||
}
|
||||
foreach my $m (keys %httpd_modules) {
|
||||
if (!-r "$module_root_directory/$m.pl") {
|
||||
delete($httpd_modules{$m});
|
||||
}
|
||||
}
|
||||
foreach my $f (split(/\s+/, $site{'htaccess'})) {
|
||||
if (-r $f) { push(@htaccess_files, $f); }
|
||||
}
|
||||
foreach my $m (keys %httpd_modules) {
|
||||
do "$m.pl";
|
||||
}
|
||||
foreach my $d (split(/\s+/, $site{'defines'})) {
|
||||
$httpd_defines{$d}++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# parse_config_file(handle, lines, file, [recursive])
|
||||
# Parses lines of text from some config file into a data structure. The
|
||||
# return value is an array of references, one for each directive in the file.
|
||||
@@ -2274,5 +2286,15 @@ sub format_config_allowed
|
||||
return $config{'format_config'};
|
||||
}
|
||||
|
||||
# clear_apache_modules_cache()
|
||||
# If new Apache modules were enabled, force re-gen of the site file
|
||||
# that contains the modules cache
|
||||
sub clear_apache_modules_cache
|
||||
{
|
||||
&unlink_file($site_file);
|
||||
&create_site_file();
|
||||
&read_site_file();
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ foreach $m (@mods) {
|
||||
}
|
||||
|
||||
# Force re-detection of modules
|
||||
unlink($site_file);
|
||||
&clear_apache_modules_cache();
|
||||
|
||||
# Force restart Apache
|
||||
if ($changed && &is_apache_running()) {
|
||||
|
||||
@@ -254,7 +254,7 @@ storage_title1=Daemon Storage را ایجاد کنید
|
||||
storage_title2=ویرایش ذخیره سازی Daemon
|
||||
storage_header=جزئیات شبح ذخیره سازی از راه دور
|
||||
storage_egone=Daemon ذخیره سازی دیگر وجود ندارد!
|
||||
storage_name=ÙØ§Ù
ÙÙ
ÙÙÙÛ Ø°Ø®ÛØ±Ù سازÛ
|
||||
storage_name=نام دیمن ذخیرهسازی
|
||||
storage_address=نام میزبان یا آدرس IP
|
||||
storage_port=پورت SD Bacula
|
||||
storage_pass=رمز عبور Bacula SD
|
||||
@@ -482,7 +482,7 @@ log_delete_fdirector=مدیر مدیر Daemon پرونده$1 حذف شد
|
||||
log_delete_fdirectors=$1 کارگردانان Daemon پرونده حذف شد
|
||||
log_create_sdirector=مدیر Daemon ذخیره سازی$1 ایجاد شد
|
||||
log_modify_sdirector=مدیر Daemon ذخیره سازی اصلاح شده$1
|
||||
log_delete_sdirector=Ù
Ø¯ÛØ± Daemon ÙØ¶Ø§Û Ø°Ø®ÛØ±ÙسازÛ$1 ØØ°Ù شد
|
||||
log_delete_sdirector=مدیر دیمن ذخیرهسازی $1 حذف شد
|
||||
log_delete_sdirectors=مدیر$1 شبنم ذخیره سازی حذف شد
|
||||
log_stop=daemons Bacula متوقف شد
|
||||
log_start=Daemons Bacula را شروع کرد
|
||||
|
||||
@@ -6,10 +6,11 @@ use warnings;
|
||||
|
||||
use 5.014;
|
||||
|
||||
no warnings 'utf8';
|
||||
use File::Spec;
|
||||
use File::Basename;
|
||||
use File::Find;
|
||||
use JSON::PP;
|
||||
use JSON::XS;
|
||||
use HTTP::Tiny;
|
||||
eval "use HTML::Entities";
|
||||
use List::MoreUtils qw(any uniq);
|
||||
@@ -940,7 +941,11 @@ sub translate
|
||||
|
||||
# Extract translation on success
|
||||
if ($ts) {
|
||||
$tr = JSON::PP->new->decode($rs->{'content'});
|
||||
# Fix Farsi
|
||||
if ($target eq 'fa') {
|
||||
$rs->{'content'} = decode('utf-8', $rs->{'content'});
|
||||
}
|
||||
$tr = JSON::XS->new->decode($rs->{'content'});
|
||||
$tr = $tr->{'data'}->{'translations'}[0]->{'translatedText'};
|
||||
return $tr;
|
||||
}
|
||||
@@ -1641,6 +1646,10 @@ sub go
|
||||
}
|
||||
my $file = $mpath . "/$code";
|
||||
my $file_auto = $mpath . "/$code.$language_suffix";
|
||||
local $SIG{__WARN__} = sub {
|
||||
my $warning = shift;
|
||||
warn $warning unless $warning =~ /Wide character/;
|
||||
};
|
||||
if (%language) {
|
||||
write_file($file, \%language);
|
||||
sort_file_by($file, $mfile);
|
||||
|
||||
@@ -64,7 +64,7 @@ sub run
|
||||
};
|
||||
root($o->{'config'}, \&$conf_check);
|
||||
my $service = ($o->{'config'} =~ /usermin/ ? 'usermin' : 'webmin');
|
||||
my $systemctlcmd = `which systemctl`;
|
||||
my $systemctlcmd = &has_command('systemctl');
|
||||
$systemctlcmd =~ s/\s+$//;
|
||||
if ($o->{'cmd'} =~ /^(start|stop|restart|reload)$/) {
|
||||
my $rs = system("$o->{'config'}/$o->{'cmd'} $service");
|
||||
|
||||
@@ -95,8 +95,10 @@ sub main {
|
||||
undef, 1, undef, undef, 5);
|
||||
if ($latest_known_versions_remote &&
|
||||
!$latest_known_versions_remote_error) {
|
||||
%versions_remote = map{split /=/, $_}
|
||||
(split(/\n/, $latest_known_versions_remote));
|
||||
%versions_remote = map {
|
||||
my ($k, $v) = split(/=/, $_, 2);
|
||||
defined($v) ? ($k => $v) : ();
|
||||
} split(/\n/, $latest_known_versions_remote);
|
||||
} elsif ($latest_known_versions_remote_error) {
|
||||
say BRIGHT_YELLOW, "Warning: ", RESET, "Cannot fetch remote packages versions list - $latest_known_versions_remote_error";
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@ foreach my $z (&find("zone", $vconf)) {
|
||||
}
|
||||
}
|
||||
my $masterport = $in{'port_def'} ? undef : $in{'port'};
|
||||
my $masterkey = $in{'key_def'} ? undef : $in{'key'};
|
||||
my @masters = split(/\s+/, $in{'masters'});
|
||||
foreach my $m (@masters) {
|
||||
&check_ipaddress($m) || &check_ip6address($m) ||
|
||||
@@ -106,6 +107,9 @@ my $masters = { 'name' => 'masters',
|
||||
if (defined($masterport)) {
|
||||
$masters->{'values'} = [ 'port', $masterport ];
|
||||
}
|
||||
if ($masterkey) {
|
||||
$masters->{'values'} = [ 'key', $masterkey ];
|
||||
}
|
||||
my $dir = { 'name' => 'zone',
|
||||
'values' => [ $in{'zone'} ],
|
||||
'type' => 1,
|
||||
|
||||
@@ -184,6 +184,7 @@ slave_ecannot=You are not allowed to edit this zone
|
||||
slave_opts=Zone Options
|
||||
slave_masters=Master servers
|
||||
slave_masterport=Server port
|
||||
slave_masterkey=Server key
|
||||
slave_max=Maximum transfer time
|
||||
slave_file=Records file
|
||||
slave_check=Check names?
|
||||
@@ -1355,7 +1356,7 @@ xfer_done=.. from $1 : Completed OK
|
||||
xfer_count=Test transfer successfully fetched $1 records from at least one nameserver. Actual transfers by BIND should also succeed.
|
||||
xfer_none=Test transfer appeared to succeed, but didn't actually fetch any records!
|
||||
|
||||
tls_title=SSL Keys And Certificates
|
||||
tls_title=SSL Keys and Certificates
|
||||
tls_ecannot=You are not allowed to edit SSL keys and certificates
|
||||
tls_esupport=SSL keys and certificates are not supported on this system
|
||||
tls_name=Key name
|
||||
@@ -1363,8 +1364,6 @@ tls_key=Key file
|
||||
tls_cert=Certificate file
|
||||
tls_ca=CA certificate file
|
||||
tls_ca_def=None required
|
||||
tls_ecannot=You are not allowed to edit SSL keys and certificates
|
||||
tls_esupport=DNS over SSL is not supported on this system
|
||||
tls_none=No SSL keys have been added yet.
|
||||
tls_add=Add a new SSL key.
|
||||
tls_desc=The SSL keys and certificates listed on this page can be used to enable DNS over SSL/TLS.
|
||||
|
||||
@@ -59,6 +59,15 @@ print &ui_table_row($text{'slave_masterport'},
|
||||
&ui_opt_textbox("port", undef, 5, $text{'default'},
|
||||
$text{'slave_master_port'}), 3);
|
||||
|
||||
# Master key
|
||||
my @keys = &find("key", $conf);
|
||||
if (@keys) {
|
||||
print &ui_table_row($text{'slave_masterkey'},
|
||||
&ui_select("key", undef,
|
||||
[ [ undef, $text{'slave_nokey'} ],
|
||||
(map { $_->{'value'} } @keys) ]));
|
||||
}
|
||||
|
||||
# Create on slave servers?
|
||||
my @servers = grep { $_->{'sec'} } &list_slave_servers();
|
||||
if (@servers && $access{'remote'}) {
|
||||
|
||||
@@ -8,6 +8,7 @@ require './cron-lib.pl';
|
||||
|
||||
if (!$in{'new'}) {
|
||||
$job = $jobs[$in{'idx'}];
|
||||
$job || &error($text{'edit_egone'});
|
||||
&can_edit_user(\%access, $job->{'user'}) ||
|
||||
&error($text{'edit_ecannot'});
|
||||
&ui_print_header(undef, $text{'edit_title'}, "");
|
||||
@@ -17,6 +18,9 @@ else {
|
||||
if (defined($in{'clone'})) {
|
||||
# Default to clone source
|
||||
$clone = $jobs[$in{'clone'}];
|
||||
$clone || &error($text{'edit_egone'});
|
||||
&can_edit_user(\%access, $clone->{'user'}) ||
|
||||
&error($text{'edit_ecannot'});
|
||||
$job = { %$clone };
|
||||
}
|
||||
elsif ($config{'vixie_cron'}) {
|
||||
|
||||
@@ -41,6 +41,7 @@ index_bootdesc=Change this setting to enable or disable starting the scheduled c
|
||||
edit_title=Edit Cron Job
|
||||
create_title=Create Cron Job
|
||||
edit_ecannot=You are not allowed to edit cron jobs for this user
|
||||
edit_egone=Job does not exist
|
||||
edit_details=Job Details
|
||||
edit_user=Execute cron job as
|
||||
edit_active=Active?
|
||||
|
||||
@@ -4,9 +4,9 @@ BEGIN { push(@INC, ".."); };
|
||||
use WebminCore;
|
||||
&init_config();
|
||||
|
||||
@supported_auths = ( "anonymous", "plain", "digest-md5", "cram-md5", "apop",
|
||||
"scram-sha-1", "scram-sha-256", "ntlm", "gss-spnego",
|
||||
"gssapi", "rpa", "otp", "skey", "external",
|
||||
@supported_auths = ( "anonymous", "plain", "login", "digest-md5", "cram-md5",
|
||||
"apop", "scram-sha-1", "scram-sha-256", "ntlm",
|
||||
"gss-spnego", "gssapi", "rpa", "otp", "skey", "external",
|
||||
"oauthbearer", "xoauth2" );
|
||||
@mail_envs = ( undef, "maildir:~/Maildir", "mbox:~/mail/:INBOX=/var/mail/%u",
|
||||
"maildir:~/Maildir:mbox:~/mail/" );
|
||||
@@ -555,6 +555,16 @@ return 0 if (!$ver);
|
||||
return &compare_version_numbers($ver, $wantver) >= 0;
|
||||
}
|
||||
|
||||
# version_below(ver)
|
||||
# Returns 1 if running below some version
|
||||
sub version_below
|
||||
{
|
||||
local ($wantver) = @_;
|
||||
local $ver = &get_dovecot_version();
|
||||
return 0 if (!$ver);
|
||||
return &compare_version_numbers($ver, $wantver) < 0;
|
||||
}
|
||||
|
||||
sub list_lock_methods
|
||||
{
|
||||
local ($forindex) = @_;
|
||||
|
||||
@@ -14,7 +14,11 @@ print &ui_table_row($text{'login_realms'},
|
||||
&ui_opt_textbox("realms", $realms, 40, $text{'login_none'}), 3);
|
||||
|
||||
# Default authentication realm
|
||||
$realm = &find_value("auth_default_realm", $conf);
|
||||
$realm = &find_value(
|
||||
&version_atleast("2.4")
|
||||
? "auth_default_domain"
|
||||
: "auth_default_realm",
|
||||
$conf);
|
||||
print &ui_table_row($text{'login_realm'},
|
||||
&ui_opt_textbox("realm", $realm, 10, $text{'default'}));
|
||||
|
||||
@@ -87,25 +91,27 @@ elsif ($userdb =~ /^sql\s+(.*)/) {
|
||||
else {
|
||||
$other = $userdb;
|
||||
}
|
||||
print &ui_table_row($text{'login_userdb'},
|
||||
&ui_radio("usermode", $usermode,
|
||||
[ [ "passwd", $text{'login_passwd'}."<br>" ],
|
||||
[ "passwd-file", &text('login_passwdfile',
|
||||
&ui_textbox("passwdfile", $passwdfile, 30))."<br>" ],
|
||||
[ "static", &text('login_static',
|
||||
&ui_textbox("uid", $uid, 6),
|
||||
&ui_textbox("gid", $gid, 6),
|
||||
&ui_textbox("home", $home, 20))."<br>" ],
|
||||
[ "vpopmail", $text{'login_vpopmail'}."<br>" ],
|
||||
[ "ldap", &text('login_ldap',
|
||||
&ui_textbox("ldap", $ldap, 30))."<br>" ],
|
||||
[ "pgsql", &text('login_pgsql',
|
||||
&ui_textbox("pgsql", $pgsql, 30))."<br>" ],
|
||||
[ "sql", &text('login_sql',
|
||||
&ui_textbox("sql", $sql, 30))."<br>" ],
|
||||
[ "", &text('login_other',
|
||||
&ui_textbox("other", $other, 30))."<br>" ],
|
||||
]), 3);
|
||||
if (&version_below("2.4")) {
|
||||
print &ui_table_row($text{'login_userdb'},
|
||||
&ui_radio("usermode", $usermode,
|
||||
[ [ "passwd", $text{'login_passwd'}."<br>" ],
|
||||
[ "passwd-file", &text('login_passwdfile',
|
||||
&ui_textbox("passwdfile", $passwdfile, 30))."<br>" ],
|
||||
[ "static", &text('login_static',
|
||||
&ui_textbox("uid", $uid, 6),
|
||||
&ui_textbox("gid", $gid, 6),
|
||||
&ui_textbox("home", $home, 20))."<br>" ],
|
||||
[ "vpopmail", $text{'login_vpopmail'}."<br>" ],
|
||||
[ "ldap", &text('login_ldap',
|
||||
&ui_textbox("ldap", $ldap, 30))."<br>" ],
|
||||
[ "pgsql", &text('login_pgsql',
|
||||
&ui_textbox("pgsql", $pgsql, 30))."<br>" ],
|
||||
[ "sql", &text('login_sql',
|
||||
&ui_textbox("sql", $sql, 30))."<br>" ],
|
||||
[ "", &text('login_other',
|
||||
&ui_textbox("other", $other, 30))."<br>" ],
|
||||
]), 3);
|
||||
}
|
||||
|
||||
# Password authentication system
|
||||
if (&find("auth_passdb", $conf, 2)) {
|
||||
@@ -174,46 +180,49 @@ elsif ($passdb =~ /^checkpassword\s+(.*)$/) {
|
||||
else {
|
||||
$pother = $passdb;
|
||||
}
|
||||
print &ui_table_row($text{'login_passdb'},
|
||||
&ui_radio("passmode", $passmode,
|
||||
[ [ "passwd", $text{'login_passwd2'}."<br>" ],
|
||||
[ "shadow", $text{'login_shadow'}."<br>" ],
|
||||
[ "dpam", &text('login_dpam')."<br>" ],
|
||||
$alpha_opts ?
|
||||
( [ "pam", &text('login_pam2',
|
||||
&ui_textbox("ppam", $ppam, 10),
|
||||
&ui_checkbox("ppam_session", 1,
|
||||
$text{'login_session'}, $psession),
|
||||
&ui_opt_textbox("ppam_ckey", $pckey, 10,
|
||||
$text{'login_none'}))."<br>" ]
|
||||
) :
|
||||
( [ "pam", &text('login_pam',
|
||||
&ui_textbox("ppam", $ppam, 10))."<br>" ]
|
||||
),
|
||||
[ "passwd-file", &text('login_passwdfile',
|
||||
&ui_textbox("ppasswdfile", $ppasswdfile, 30))."<br>" ],
|
||||
[ "vpopmail", $text{'login_vpopmail'}."<br>" ],
|
||||
[ "ldap", &text('login_ldap',
|
||||
&ui_textbox("pldap", $pldap, 30))."<br>" ],
|
||||
[ "pgsql", &text('login_pgsql',
|
||||
&ui_textbox("ppgsql", $ppgsql, 30))."<br>" ],
|
||||
[ "sql", &text('login_sql',
|
||||
&ui_textbox("psql", $psql, 30))."<br>" ],
|
||||
$alpha_opts ?
|
||||
( [ "bsdauth",
|
||||
&text('login_bsdauth',
|
||||
&ui_opt_textbox("bsdauth_ckey", $pbckey, 10,
|
||||
$text{'login_none'}))."<br>" ],
|
||||
[ "checkpassword",
|
||||
&text('login_checkpassword',
|
||||
&ui_textbox("checkpassword", $checkpassword, 40))."<br>" ],
|
||||
) :
|
||||
( ),
|
||||
[ "", &text('login_other',
|
||||
&ui_textbox("pother", $pother, 30))."<br>" ],
|
||||
]), 3);
|
||||
|
||||
print &ui_table_hr();
|
||||
if (&version_below("2.4")) {
|
||||
print &ui_table_row($text{'login_passdb'},
|
||||
&ui_radio("passmode", $passmode,
|
||||
[ [ "passwd", $text{'login_passwd2'}."<br>" ],
|
||||
[ "shadow", $text{'login_shadow'}."<br>" ],
|
||||
[ "dpam", &text('login_dpam')."<br>" ],
|
||||
$alpha_opts ?
|
||||
( [ "pam", &text('login_pam2',
|
||||
&ui_textbox("ppam", $ppam, 10),
|
||||
&ui_checkbox("ppam_session", 1,
|
||||
$text{'login_session'}, $psession),
|
||||
&ui_opt_textbox("ppam_ckey", $pckey, 10,
|
||||
$text{'login_none'}))."<br>" ]
|
||||
) :
|
||||
( [ "pam", &text('login_pam',
|
||||
&ui_textbox("ppam", $ppam, 10))."<br>" ]
|
||||
),
|
||||
[ "passwd-file", &text('login_passwdfile',
|
||||
&ui_textbox("ppasswdfile", $ppasswdfile, 30))."<br>" ],
|
||||
[ "vpopmail", $text{'login_vpopmail'}."<br>" ],
|
||||
[ "ldap", &text('login_ldap',
|
||||
&ui_textbox("pldap", $pldap, 30))."<br>" ],
|
||||
[ "pgsql", &text('login_pgsql',
|
||||
&ui_textbox("ppgsql", $ppgsql, 30))."<br>" ],
|
||||
[ "sql", &text('login_sql',
|
||||
&ui_textbox("psql", $psql, 30))."<br>" ],
|
||||
$alpha_opts ?
|
||||
( [ "bsdauth",
|
||||
&text('login_bsdauth',
|
||||
&ui_opt_textbox("bsdauth_ckey", $pbckey, 10,
|
||||
$text{'login_none'}))."<br>" ],
|
||||
[ "checkpassword",
|
||||
&text('login_checkpassword',
|
||||
&ui_textbox("checkpassword", $checkpassword, 40))."<br>" ],
|
||||
) :
|
||||
( ),
|
||||
[ "", &text('login_other',
|
||||
&ui_textbox("pother", $pother, 30))."<br>" ],
|
||||
]), 3);
|
||||
|
||||
print &ui_table_hr();
|
||||
}
|
||||
|
||||
$fuid = &find_value("first_valid_uid", $conf);
|
||||
print &ui_table_row($text{'login_fuid'},
|
||||
@@ -232,7 +241,11 @@ $lgid = &find_value("last_valid_gid", $conf);
|
||||
print &ui_table_row($text{'login_lgid'},
|
||||
&ui_opt_textbox("lgid", $lgid, 6, &getdef("last_valid_gid", \@mmap)));
|
||||
|
||||
$extra = &find_value("mail_extra_groups", $conf);
|
||||
$extra = &find_value(&version_atleast("2")
|
||||
? "mail_access_groups"
|
||||
: "mail_extra_groups",
|
||||
$conf);
|
||||
|
||||
print &ui_table_row($text{'login_extra'},
|
||||
&ui_opt_textbox("extra", $extra, 50, $text{'login_none'})."\n".
|
||||
&group_chooser_button("extra", 1), 3);
|
||||
|
||||
@@ -13,25 +13,49 @@ $envmode = 4;
|
||||
if (&find("default_mail_env", $conf, 2)) {
|
||||
$env = &find_value("default_mail_env", $conf);
|
||||
}
|
||||
elsif (&find("mail_path", $conf, 2)) {
|
||||
$env = &find_value("mail_path", $conf);
|
||||
}
|
||||
else {
|
||||
$env = &find_value("mail_location", $conf);
|
||||
}
|
||||
if ($env =~ s/:INDEX=([^:]+)//) {
|
||||
$index = $1;
|
||||
}
|
||||
elsif (&find("mail_index_path", $conf, 2)) {
|
||||
$index = &find_value("mail_index_path", $conf);
|
||||
}
|
||||
if ($env =~ s/:CONTROL=([^:]+)//) {
|
||||
$control = $1;
|
||||
}
|
||||
elsif (&find("mail_control_path", $conf, 2)) {
|
||||
$control = &find_value("mail_control_path", $conf);
|
||||
}
|
||||
for($i=0; $i<@mail_envs; $i++) {
|
||||
$envmode = $i if ($mail_envs[$i] eq $env);
|
||||
}
|
||||
print &ui_table_row($text{'mail_env'},
|
||||
&ui_radio("envmode", $envmode,
|
||||
[ ( map { [ $_, $text{'mail_env'.$_}."<br>" ] } (0.. 3) ),
|
||||
[ ( map { [ $_, $text{'mail_env'.$_}."<br>" ] } (
|
||||
&version_atleast("2.4") ? (0) : (0 .. 3)) ),
|
||||
[ 4, &text('mail_env4',
|
||||
&ui_textbox("other", $envmode == 4 ? $env : undef, 40)) ] ],
|
||||
), 3);
|
||||
|
||||
# Mail file format
|
||||
if (&version_atleast("2.4")) {
|
||||
$driver = &find_value("mail_driver", $conf);
|
||||
print &ui_table_row($text{'mail_driver'},
|
||||
&ui_radio("driver", $driver,
|
||||
[ [ "", $text{'mail_driver_def'} ],
|
||||
[ "auto", $text{'mail_driver_auto'} ],
|
||||
[ "mbox", $text{'mail_driver_mbox'} ],
|
||||
[ "maildir", $text{'mail_driver_maildir'} ],
|
||||
[ "dbox", $text{'mail_driver_dbox'} ],
|
||||
[ "imapc", $text{'mail_driver_imapc'} ],
|
||||
[ "pop3c", $text{'mail_driver_auto'} ] ]));
|
||||
}
|
||||
|
||||
# Index files location
|
||||
$indexmode = $index eq 'MEMORY' ? 1 :
|
||||
$index ? 2 : 0;
|
||||
@@ -89,26 +113,10 @@ print &ui_table_row($text{'mail_change'},
|
||||
[ "", &getdef($dirty, \@opts) ] ]), 3);
|
||||
|
||||
# Permissions on files
|
||||
$umask = &find_value("umask", $conf);
|
||||
print &ui_table_row($text{'mail_umask'},
|
||||
&ui_opt_textbox("umask", $umask, 5, &getdef("umask")), 3);
|
||||
|
||||
# UIDL format
|
||||
if (&find("pop3_uidl_format", $conf, 2)) {
|
||||
$uidl = &find_value("pop3_uidl_format", $conf);
|
||||
@opts = ( $uidl ? ( ) : ( [ "", $text{'mail_uidl_none'} ] ),
|
||||
[ "%v.%u", $text{'mail_uidl_dovecot'} ],
|
||||
[ "%08Xv%08Xu", $text{'mail_uidl_uw'} ],
|
||||
[ "%f", $text{'mail_uidl_courier0'} ],
|
||||
[ "%u", $text{'mail_uidl_courier1'} ],
|
||||
[ "%v-%u", $text{'mail_uidl_courier2'} ],
|
||||
[ "%Mf", $text{'mail_uidl_tpop3d'} ] );
|
||||
($got) = grep { $_->[0] eq $uidl } @opts;
|
||||
print &ui_table_row($text{'mail_uidl'},
|
||||
&ui_select("pop3_uidl_format", $got ? $uidl : "*",
|
||||
[ @opts, [ "*", $text{'mail_uidl_other'} ] ])."\n".
|
||||
&ui_textbox("pop3_uidl_format_other", $got ? "" : $uidl, 10),
|
||||
3);
|
||||
if (&version_below("2")) {
|
||||
$umask = &find_value("umask", $conf);
|
||||
print &ui_table_row($text{'mail_umask'},
|
||||
&ui_opt_textbox("umask", $umask, 5, &getdef("umask")), 3);
|
||||
}
|
||||
|
||||
# Allow POP3 last command
|
||||
|
||||
@@ -9,7 +9,11 @@ print &ui_form_start("save_ssl.cgi", "post");
|
||||
print &ui_table_start($text{'ssl_header'}, "width=100%", 4);
|
||||
|
||||
# SSL cert and key files
|
||||
if (&find_value("ssl_cert", $conf, 2) || &version_atleast("2.2")) {
|
||||
if (&version_atleast("2.4")) {
|
||||
$cert = &find_value('ssl_server_cert_file', $conf, 0, "");
|
||||
$cert =~ s/^<//;
|
||||
}
|
||||
elsif (&find_value("ssl_cert", $conf, 2) || &version_atleast("2.2")) {
|
||||
$cert = &find_value("ssl_cert", $conf, 0, "");
|
||||
$cert =~ s/^<//;
|
||||
}
|
||||
@@ -20,7 +24,11 @@ print &ui_table_row($text{'ssl_cert'},
|
||||
&ui_opt_textbox("cert", $cert, 40, &getdef("ssl_cert_file")), 3,
|
||||
[ undef, "nowrap" ]);
|
||||
|
||||
if (&find_value("ssl_key", $conf, 2) || &version_atleast("2.2")) {
|
||||
if (&version_atleast("2.4")) {
|
||||
$key = &find_value('ssl_server_key_file', $conf, 0, "");
|
||||
$key =~ s/^<//;
|
||||
}
|
||||
elsif (&find_value("ssl_key", $conf, 2) || &version_atleast("2.2")) {
|
||||
$key = &find_value("ssl_key", $conf, 0, "");
|
||||
$key =~ s/^<//;
|
||||
}
|
||||
@@ -31,14 +39,12 @@ print &ui_table_row($text{'ssl_key'},
|
||||
&ui_opt_textbox("key", $key, 40, &getdef("ssl_key_file")), 3,
|
||||
[ undef, "nowrap" ]);
|
||||
|
||||
# SSL key password
|
||||
$pass = &find_value("ssl_key_password", $conf);
|
||||
print &ui_table_row($text{'ssl_pass'},
|
||||
&ui_opt_textbox("pass", $pass, 20, $text{'ssl_prompt'}), 3,
|
||||
[ undef, "nowrap" ]);
|
||||
|
||||
# SSL CA file
|
||||
if (&find_value("ssl_ca", $conf, 2) || &version_atleast("2.2")) {
|
||||
if (&version_atleast("2.4")) {
|
||||
$ca = &find_value('ssl_server_ca_file', $conf, 0, "");
|
||||
$ca =~ s/^<//;
|
||||
}
|
||||
elsif (&find_value("ssl_ca", $conf, 2) || &version_atleast("2.2")) {
|
||||
$ca = &find_value("ssl_ca", $conf, 0, "");
|
||||
$ca =~ s/^<//;
|
||||
}
|
||||
@@ -50,20 +56,41 @@ print &ui_table_row($text{'ssl_ca'},
|
||||
&getdef("ssl_ca_file", [ [ "", $text{'ssl_none'} ] ])), 3,
|
||||
[ undef, "nowrap" ]);
|
||||
|
||||
# SSL key password
|
||||
my $passdir = &version_atleast("2.4")
|
||||
? "ssl_server_key_password"
|
||||
: "ssl_key_password";
|
||||
$pass = &find_value($passdir, $conf);
|
||||
print &ui_table_row($text{'ssl_pass'},
|
||||
&ui_opt_textbox("pass", $pass, 20, $text{'ssl_prompt'}), 3,
|
||||
[ undef, "nowrap" ]);
|
||||
|
||||
# Parameter regen time
|
||||
$regen = &find_value("ssl_parameters_regenerate", $conf);
|
||||
print &ui_table_row($text{'ssl_regen'},
|
||||
&ui_opt_textbox("regen", $regen, 5,
|
||||
&getdef("ssl_parameters_regenerate")).
|
||||
" ".$text{'ssl_hours'}, 3);
|
||||
if (&version_below("2.4")) {
|
||||
$regen = &find_value("ssl_parameters_regenerate", $conf);
|
||||
print &ui_table_row($text{'ssl_regen'},
|
||||
&ui_opt_textbox("regen", $regen, 5,
|
||||
&getdef("ssl_parameters_regenerate")).
|
||||
" ".$text{'ssl_hours'}, 3);
|
||||
}
|
||||
|
||||
# Disable plaintext passwords when not SSL
|
||||
@opts = ( [ 'yes', $text{'yes'} ], [ 'no', $text{'no'} ] );
|
||||
$plain = &find_value("disable_plaintext_auth", $conf);
|
||||
print &ui_table_row($text{'ssl_plain'},
|
||||
&ui_radio("plain", $plain,
|
||||
[ @opts,
|
||||
[ '', &getdef("disable_plaintext_auth", \@opts) ] ]), 3);
|
||||
if (&find_value("auth_allow_cleartext", $conf, 2)) {
|
||||
@opts = ( [ 'yes', $text{'yes'} ], [ 'no', $text{'no'} ] );
|
||||
$plain = &find_value("auth_allow_cleartext", $conf);
|
||||
print &ui_table_row($text{'ssl_plain2'},
|
||||
&ui_radio("plain", $plain,
|
||||
[ @opts,
|
||||
[ '', "$text{'default'} (No)" ] ]), 3);
|
||||
}
|
||||
else {
|
||||
@opts = ( [ 'yes', $text{'yes'} ], [ 'no', $text{'no'} ] );
|
||||
$plain = &find_value("disable_plaintext_auth", $conf);
|
||||
print &ui_table_row($text{'ssl_plain'},
|
||||
&ui_radio("plain", $plain,
|
||||
[ @opts,
|
||||
[ '', &getdef("disable_plaintext_auth", \@opts) ] ]), 3);
|
||||
}
|
||||
|
||||
print &ui_table_end();
|
||||
print &ui_form_end([ [ "save", $text{'save'} ] ]);
|
||||
|
||||
@@ -56,6 +56,7 @@ ssl_regen=Interval between SSL parameter regeneration
|
||||
ssl_hours=hours
|
||||
ssl_none=None
|
||||
ssl_plain=Disallow plaintext authentication in non-SSL mode?
|
||||
ssl_plain2=Allow plaintext authentication in non-SSL mode?
|
||||
ssl_err=Failed to save SSL configuration
|
||||
ssl_ekey=Missing or non-existent private key file
|
||||
ssl_ecert=Missing or non-existent certificate file
|
||||
@@ -134,6 +135,14 @@ mail_env1=Inbox and folders in <tt>~/Maildir</tt>
|
||||
mail_env2=Inbox under <tt>/var/mail</tt>, folders in <tt>~/mail</tt>
|
||||
mail_env3=Inbox in <tt>~/Maildir</tt>, folders in <tt>~/mail</tt>
|
||||
mail_env4=Other Dovecot location $1
|
||||
mail_driver=Mail file format
|
||||
mail_driver_def=Dovecot default
|
||||
mail_driver_auto=Detect automatically
|
||||
mail_driver_mbox=mbox (one file per folder)
|
||||
mail_driver_maildir=Maildir (one file per message)
|
||||
mail_driver_dbox=Dbox (Dovecot's custom format)
|
||||
mail_driver_imapc=Remote IMAP server
|
||||
mail_driver_pop3c=Remote POP3 server
|
||||
mail_index=Index files location
|
||||
mail_index0=Default (in Maildir directory)
|
||||
mail_index1=In memory only
|
||||
@@ -152,16 +161,6 @@ mail_eenv=Missing or invalid-looking mail location
|
||||
mail_echeck=Missing or non-numeric number of seconds between checks
|
||||
mail_eidle=Missing or non-numeric number of seconds between checks when idle
|
||||
mail_eumask=Missing or invalid four-digit octal Umask
|
||||
mail_uidl=UIDL format
|
||||
mail_uidl_other=Other..
|
||||
mail_uidl_none=Not set (WARNING - Dove may not start)
|
||||
mail_uidl_dovecot=Old Dovecot, new Cyrus
|
||||
mail_uidl_uw=UW ipop3d
|
||||
mail_uidl_courier0=Courier version 0
|
||||
mail_uidl_courier1=Courier version 1, old Cyrus
|
||||
mail_uidl_courier2=Courier version 2
|
||||
mail_uidl_tpop3d=tpop3d
|
||||
mail_euidl=Missing or invalid UIDL format
|
||||
mail_last=Allow use of POP3 LAST command?
|
||||
mail_lock=Index files locking method
|
||||
mail_fcntl=fcntl function
|
||||
|
||||
@@ -10,144 +10,151 @@ $conf = &get_config();
|
||||
# Allowed and default realm
|
||||
&save_directive($conf, "auth_realms",
|
||||
$in{'realms_def'} ? undef : $in{'realms'});
|
||||
&save_directive($conf, "auth_default_realm",
|
||||
&save_directive($conf,
|
||||
&version_atleast("2.4")
|
||||
? "auth_default_domain"
|
||||
: "auth_default_realm",
|
||||
$in{'realm_def'} ? undef : $in{'realm'});
|
||||
|
||||
# Authentication mechanisms
|
||||
if (&find("auth_mechanisms", $conf, 2)) {
|
||||
&save_directive($conf, "auth_mechanisms",
|
||||
join(" ", split(/\0/, $in{'mechs'})));
|
||||
$in{'mechs'}
|
||||
? join(" ", split(/\0/, $in{'mechs'}))
|
||||
: undef);
|
||||
}
|
||||
else {
|
||||
&save_directive($conf, "mechanisms",
|
||||
join(" ", split(/\0/, $in{'mechs'})), "auth","default");
|
||||
}
|
||||
|
||||
# User database
|
||||
$userdb = $in{'usermode'};
|
||||
if ($in{'usermode'} eq 'passwd-file') {
|
||||
-r $in{'passwdfile'} || &error($text{'login_epasswdfile'});
|
||||
$userdb .= " ".$in{'passwdfile'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq 'static') {
|
||||
$in{'uid'} =~ /^\d+$/ || &error($text{'login_euid'});
|
||||
$in{'gid'} =~ /^\d+$/ || &error($text{'login_egid'});
|
||||
$in{'home'} || &error($text{'login_ehome'});
|
||||
$userdb .= " uid=".$in{'uid'}." gid=".$in{'gid'}.
|
||||
" home=".$in{'home'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq 'ldap') {
|
||||
-r $in{'ldap'} || &error($text{'login_eldap'});
|
||||
$userdb .= " ".$in{'ldap'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq 'pgsql') {
|
||||
-r $in{'pgsql'} || &error($text{'login_epgsql'});
|
||||
$userdb .= " ".$in{'pgsql'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq 'sql') {
|
||||
-r $in{'sql'} || &error($text{'login_esql'});
|
||||
$userdb .= " ".$in{'sql'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq '') {
|
||||
$userdb = $in{'other'};
|
||||
}
|
||||
if ($usec = &find_section("userdb", $conf, undef, "auth", "default")) {
|
||||
# Version 1.0.alpha format, which has a userdb *section*
|
||||
($svalue, $args) = split(/\s+/, $userdb, 2);
|
||||
$usec->{'value'} = $svalue;
|
||||
$usec->{'members'} = [ grep { $_->{'name'} ne 'args' }
|
||||
@{$usec->{'members'}} ];
|
||||
if ($args) {
|
||||
$usec->{'members'} = [ { 'name' => 'args',
|
||||
'value' => $args } ];
|
||||
if (&version_below("2.4")) {
|
||||
# User database
|
||||
$userdb = $in{'usermode'};
|
||||
if ($in{'usermode'} eq 'passwd-file') {
|
||||
-r $in{'passwdfile'} || &error($text{'login_epasswdfile'});
|
||||
$userdb .= " ".$in{'passwdfile'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq 'static') {
|
||||
$in{'uid'} =~ /^\d+$/ || &error($text{'login_euid'});
|
||||
$in{'gid'} =~ /^\d+$/ || &error($text{'login_egid'});
|
||||
$in{'home'} || &error($text{'login_ehome'});
|
||||
$userdb .= " uid=".$in{'uid'}." gid=".$in{'gid'}.
|
||||
" home=".$in{'home'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq 'ldap') {
|
||||
-r $in{'ldap'} || &error($text{'login_eldap'});
|
||||
$userdb .= " ".$in{'ldap'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq 'pgsql') {
|
||||
-r $in{'pgsql'} || &error($text{'login_epgsql'});
|
||||
$userdb .= " ".$in{'pgsql'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq 'sql') {
|
||||
-r $in{'sql'} || &error($text{'login_esql'});
|
||||
$userdb .= " ".$in{'sql'};
|
||||
}
|
||||
elsif ($in{'usermode'} eq '') {
|
||||
$userdb = $in{'other'};
|
||||
}
|
||||
if ($usec = &find_section("userdb", $conf, undef, "auth", "default")) {
|
||||
# Version 1.0.alpha format, which has a userdb *section*
|
||||
($svalue, $args) = split(/\s+/, $userdb, 2);
|
||||
$usec->{'value'} = $svalue;
|
||||
$usec->{'members'} = [ grep { $_->{'name'} ne 'args' }
|
||||
@{$usec->{'members'}} ];
|
||||
if ($args) {
|
||||
$usec->{'members'} = [ { 'name' => 'args',
|
||||
'value' => $args } ];
|
||||
}
|
||||
&save_section($conf, $usec);
|
||||
}
|
||||
elsif (&find("auth_userdb", $conf, 2)) {
|
||||
# Version 0.99 format
|
||||
&save_directive($conf, "auth_userdb", $userdb);
|
||||
}
|
||||
elsif (&find_value("driver", $conf, 2, "userdb")) {
|
||||
# Version 2.0 format
|
||||
$args = $userdb =~ s/\s+(\S.*)$// ? $1 : undef;
|
||||
&save_directive($conf, "driver", $userdb, "userdb");
|
||||
&save_directive($conf, "args", $args, "userdb");
|
||||
}
|
||||
else {
|
||||
# Version 1.0 format
|
||||
&save_directive($conf, "userdb", $userdb, "auth", "default");
|
||||
}
|
||||
&save_section($conf, $usec);
|
||||
}
|
||||
elsif (&find("auth_userdb", $conf, 2)) {
|
||||
# Version 0.99 format
|
||||
&save_directive($conf, "auth_userdb", $userdb);
|
||||
}
|
||||
elsif (&find_value("driver", $conf, 2, "userdb")) {
|
||||
# Version 2.0 format
|
||||
$args = $userdb =~ s/\s+(\S.*)$// ? $1 : undef;
|
||||
&save_directive($conf, "driver", $userdb, "userdb");
|
||||
&save_directive($conf, "args", $args, "userdb");
|
||||
}
|
||||
else {
|
||||
# Version 1.0 format
|
||||
&save_directive($conf, "userdb", $userdb, "auth", "default");
|
||||
}
|
||||
|
||||
# Password mode
|
||||
$passdb = $in{'passmode'};
|
||||
if ($in{'passmode'} eq 'dpam') {
|
||||
$passdb = "pam";
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'pam') {
|
||||
$in{'ppam'} =~ /^\S+$/ || &error($text{'login_edpam'});
|
||||
if (defined($in{'ppam_ckey'}) && !$in{'ppam_ckey_def'}) {
|
||||
$ckey = $in{'ppam_ckey'};
|
||||
$ckey =~ /^\S+$/ || &error($text{'login_eckey'});
|
||||
# Password mode
|
||||
$passdb = $in{'passmode'};
|
||||
if ($in{'passmode'} eq 'dpam') {
|
||||
$passdb = "pam";
|
||||
}
|
||||
$passdb .= ($in{'ppam_session'} ? " -session" : "").
|
||||
($ckey ? " cache_key=$ckey" : "").
|
||||
" ".$in{'ppam'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'passwd-file') {
|
||||
-r $in{'ppasswdfile'} || &error($text{'login_epasswdfile'});
|
||||
$passdb .= " ".$in{'ppasswdfile'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'ldap') {
|
||||
-r $in{'pldap'} || &error($text{'login_eldap'});
|
||||
$passdb .= " ".$in{'pldap'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'pgsql') {
|
||||
-r $in{'ppgsql'} || &error($text{'login_epgsql'});
|
||||
$passdb .= " ".$in{'ppgsql'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'sql') {
|
||||
-r $in{'psql'} || &error($text{'login_esql'});
|
||||
$passdb .= " ".$in{'psql'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'bsdauth') {
|
||||
$in{'bsdauth_ckey_def'} || $in{'bsdauth_ckey'} =~ /^\S+$/ ||
|
||||
&error($text{'login_eckey'});
|
||||
$passdb .= " cache_key=$in{'bsdauth_ckey'}"
|
||||
if (!$in{'bsdauth_ckey_def'});
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'checkpassword') {
|
||||
-x $in{'checkpassword'} || &error($text{'login_echeckpassword'});
|
||||
$passdb .= " ".$in{'checkpassword'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq '') {
|
||||
$passdb = $in{'other'};
|
||||
}
|
||||
# XXX other modes
|
||||
if ($psec = &find_section("passdb", $conf, undef, "auth", "default")) {
|
||||
# Version 1.0.alpha format
|
||||
($svalue, $args) = split(/\s+/, $passdb, 2);
|
||||
$psec->{'value'} = $svalue;
|
||||
$psec->{'members'} = [ grep { $_->{'name'} ne 'args' }
|
||||
@{$psec->{'members'}} ];
|
||||
if ($args) {
|
||||
$psec->{'members'} = [ { 'name' => 'args',
|
||||
'value' => $args } ];
|
||||
elsif ($in{'passmode'} eq 'pam') {
|
||||
$in{'ppam'} =~ /^\S+$/ || &error($text{'login_edpam'});
|
||||
if (defined($in{'ppam_ckey'}) && !$in{'ppam_ckey_def'}) {
|
||||
$ckey = $in{'ppam_ckey'};
|
||||
$ckey =~ /^\S+$/ || &error($text{'login_eckey'});
|
||||
}
|
||||
$passdb .= ($in{'ppam_session'} ? " -session" : "").
|
||||
($ckey ? " cache_key=$ckey" : "").
|
||||
" ".$in{'ppam'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'passwd-file') {
|
||||
-r $in{'ppasswdfile'} || &error($text{'login_epasswdfile'});
|
||||
$passdb .= " ".$in{'ppasswdfile'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'ldap') {
|
||||
-r $in{'pldap'} || &error($text{'login_eldap'});
|
||||
$passdb .= " ".$in{'pldap'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'pgsql') {
|
||||
-r $in{'ppgsql'} || &error($text{'login_epgsql'});
|
||||
$passdb .= " ".$in{'ppgsql'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'sql') {
|
||||
-r $in{'psql'} || &error($text{'login_esql'});
|
||||
$passdb .= " ".$in{'psql'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'bsdauth') {
|
||||
$in{'bsdauth_ckey_def'} || $in{'bsdauth_ckey'} =~ /^\S+$/ ||
|
||||
&error($text{'login_eckey'});
|
||||
$passdb .= " cache_key=$in{'bsdauth_ckey'}"
|
||||
if (!$in{'bsdauth_ckey_def'});
|
||||
}
|
||||
elsif ($in{'passmode'} eq 'checkpassword') {
|
||||
-x $in{'checkpassword'} || &error($text{'login_echeckpassword'});
|
||||
$passdb .= " ".$in{'checkpassword'};
|
||||
}
|
||||
elsif ($in{'passmode'} eq '') {
|
||||
$passdb = $in{'other'};
|
||||
}
|
||||
# XXX other modes
|
||||
if ($psec = &find_section("passdb", $conf, undef, "auth", "default")) {
|
||||
# Version 1.0.alpha format
|
||||
($svalue, $args) = split(/\s+/, $passdb, 2);
|
||||
$psec->{'value'} = $svalue;
|
||||
$psec->{'members'} = [ grep { $_->{'name'} ne 'args' }
|
||||
@{$psec->{'members'}} ];
|
||||
if ($args) {
|
||||
$psec->{'members'} = [ { 'name' => 'args',
|
||||
'value' => $args } ];
|
||||
}
|
||||
&save_section($conf, $psec);
|
||||
}
|
||||
elsif (&find("auth_passdb", $conf, 2)) {
|
||||
# Version 0.99 format
|
||||
&save_directive($conf, "auth_passdb", $passdb);
|
||||
}
|
||||
elsif (&find_value("driver", $conf, 2, "passdb")) {
|
||||
# Version 2.0 format
|
||||
$args = $passdb =~ s/\s+(\S.*)$// ? $1 : undef;
|
||||
&save_directive($conf, "driver", $passdb, "passdb");
|
||||
&save_directive($conf, "args", $args, "passdb");
|
||||
}
|
||||
else {
|
||||
# Version 1.0 format
|
||||
&save_directive($conf, "passdb", $passdb, "auth", "default");
|
||||
}
|
||||
&save_section($conf, $psec);
|
||||
}
|
||||
elsif (&find("auth_passdb", $conf, 2)) {
|
||||
# Version 0.99 format
|
||||
&save_directive($conf, "auth_passdb", $passdb);
|
||||
}
|
||||
elsif (&find_value("driver", $conf, 2, "passdb")) {
|
||||
# Version 2.0 format
|
||||
$args = $passdb =~ s/\s+(\S.*)$// ? $1 : undef;
|
||||
&save_directive($conf, "driver", $passdb, "passdb");
|
||||
&save_directive($conf, "args", $args, "passdb");
|
||||
}
|
||||
else {
|
||||
# Version 1.0 format
|
||||
&save_directive($conf, "passdb", $passdb, "auth", "default");
|
||||
}
|
||||
|
||||
# Allowed UIDs and GIDs
|
||||
@@ -167,7 +174,10 @@ $in{'lgid_def'} || $in{'lgid'} =~ /^\d+$/ || &error($text{'login_elgid'});
|
||||
&save_directive($conf, "last_valid_gid",
|
||||
$in{'lgid_def'} ? undef : $in{'lgid'});
|
||||
|
||||
&save_directive($conf, "mail_extra_groups",
|
||||
&save_directive($conf,
|
||||
&version_atleast("2")
|
||||
? "mail_access_groups"
|
||||
: "mail_extra_groups",
|
||||
$in{'extra_def'} ? undef : $in{'extra'});
|
||||
|
||||
$in{'chroot_def'} || -d $in{'chroot'} || &error($text{'login_echroot'});
|
||||
|
||||
@@ -17,27 +17,59 @@ else {
|
||||
}
|
||||
|
||||
# Add index file location
|
||||
$env || !$in{'indexmode'} || &error($text{'mail_eindexmode'});
|
||||
$env || !$in{'controlmode'} || &error($text{'mail_econtrolmode'});
|
||||
if ($in{'indexmode'} == 1) {
|
||||
$env .= ":INDEX=MEMORY";
|
||||
if (&version_below("2.4")) {
|
||||
$env || !$in{'indexmode'} || &error($text{'mail_eindexmode'});
|
||||
$env || !$in{'controlmode'} || &error($text{'mail_econtrolmode'});
|
||||
if ($in{'indexmode'} == 1) {
|
||||
$env .= ":INDEX=MEMORY";
|
||||
}
|
||||
elsif ($in{'indexmode'} == 2) {
|
||||
$in{'index'} =~ /^\/\S+$/ || &error($text{'mail_eindex'});
|
||||
$env .= ":INDEX=".$in{'index'};
|
||||
}
|
||||
if ($in{'controlmode'}) {
|
||||
$in{'control'} =~ /^\/\S+$/ || &error($text{'mail_econtrol'});
|
||||
$env .= ":CONTROL=".$in{'control'};
|
||||
}
|
||||
}
|
||||
elsif ($in{'indexmode'} == 2) {
|
||||
$in{'index'} =~ /^\/\S+$/ || &error($text{'mail_eindex'});
|
||||
$env .= ":INDEX=".$in{'index'};
|
||||
}
|
||||
if ($in{'controlmode'}) {
|
||||
$in{'control'} =~ /^\/\S+$/ || &error($text{'mail_econtrol'});
|
||||
$env .= ":CONTROL=".$in{'control'};
|
||||
else {
|
||||
# Parse index and control first
|
||||
if ($in{'indexmode'} == 1) {
|
||||
$index = "MEMORY";
|
||||
}
|
||||
elsif ($in{'indexmode'} == 2) {
|
||||
$in{'index'} =~ /^\/\S+$/ || $in{'index'} =~ /^~\S+$/ ||
|
||||
&error($text{'mail_eindex'});
|
||||
$index = $in{'index'};
|
||||
}
|
||||
if ($in{'controlmode'}) {
|
||||
$in{'control'} =~ /^\/\S+$/ || $in{'control'} =~ /^~\S+$/ ||
|
||||
&error($text{'mail_econtrol'});
|
||||
$control = $in{'control'};
|
||||
}
|
||||
# Directly save dedicated mail_index_path and mail_control_path
|
||||
&save_directive($conf, "mail_index_path",
|
||||
$index eq "" ? undef : $index);
|
||||
&save_directive($conf, "mail_control_path",
|
||||
$control eq "" ? undef : $control);
|
||||
}
|
||||
|
||||
if (&find("default_mail_env", $conf, 2)) {
|
||||
&save_directive($conf, "default_mail_env", $env eq "" ? undef : $env);
|
||||
}
|
||||
elsif (&find("mail_path", $conf, 2)) {
|
||||
&save_directive($conf, "mail_path", $env eq "" ? undef : $env);
|
||||
}
|
||||
else {
|
||||
&save_directive($conf, "mail_location", $env eq "" ? undef : $env);
|
||||
}
|
||||
|
||||
# Mail file format
|
||||
if (&version_atleast("2.4")) {
|
||||
my $driver = $in{'driver'};
|
||||
&save_directive($conf, "mail_driver", $driver eq "" ? undef : $driver);
|
||||
}
|
||||
|
||||
# Idle intervals
|
||||
$in{'idle'} != 2 || $in{'idlei'} =~ /^\d+$/ || &error($text{'mail_eidle'});
|
||||
&save_directive($conf, "mailbox_idle_check_interval",
|
||||
@@ -57,17 +89,12 @@ else {
|
||||
$in{'change'} ? $in{'change'} : undef);
|
||||
}
|
||||
|
||||
# Umask
|
||||
$in{'umask_def'} || $in{'umask'} =~ /^[0-7]{4}$/ ||&error($text{'mail_eumask'});
|
||||
&save_directive($conf, "umask",
|
||||
$in{'umask_def'} ? undef : $in{'umask'});
|
||||
|
||||
# UIDL format
|
||||
if (&find("pop3_uidl_format", $conf, 2)) {
|
||||
$uidl = $in{'pop3_uidl_format'} eq '*' ?
|
||||
$in{'pop3_uidl_format_other'} : $in{'pop3_uidl_format'};
|
||||
$uidl =~ /^\S+$/ || &error($text{'mail_euidl'});
|
||||
&save_directive($conf, "pop3_uidl_format", $uidl);
|
||||
if (&version_below("2")) {
|
||||
# Umask
|
||||
$in{'umask_def'} || $in{'umask'} =~ /^[0-7]{4}$/ ||
|
||||
&error($text{'mail_eumask'});
|
||||
&save_directive($conf, "umask",
|
||||
$in{'umask_def'} ? undef : $in{'umask'});
|
||||
}
|
||||
|
||||
# LAST command
|
||||
|
||||
@@ -7,10 +7,14 @@ require './dovecot-lib.pl';
|
||||
$conf = &get_config();
|
||||
&lock_dovecot_files($conf);
|
||||
|
||||
# Save SSL cert and key
|
||||
# Save SSL cert
|
||||
$in{'cert_def'} || -r $in{'cert'} || $in{'cert'} =~ /^[<>\|]/ ||
|
||||
&error($text{'ssl_ecert'});
|
||||
if (&find_value("ssl_cert", $conf, 2) || &version_atleast("2.2")) {
|
||||
if (&version_atleast("2.4")) {
|
||||
&save_directive($conf, "ssl_server_cert_file",
|
||||
$in{'cert_def'} ? undef : $in{'cert'}, "");
|
||||
}
|
||||
elsif (&find_value("ssl_cert", $conf, 2) || &version_atleast("2.2")) {
|
||||
$in{'cert'} = "<".$in{'cert'} if ($in{'cert'} =~ /^\//);
|
||||
&save_directive($conf, "ssl_cert",
|
||||
$in{'cert_def'} ? undef : $in{'cert'}, "");
|
||||
@@ -20,9 +24,14 @@ else {
|
||||
$in{'cert_def'} ? undef : $in{'cert'});
|
||||
}
|
||||
|
||||
# Save SSL key
|
||||
$in{'key_def'} || -r $in{'key'} || $in{'key'} =~ /^[<>\|]/ ||
|
||||
&error($text{'ssl_ekey'});
|
||||
if (&find_value("ssl_key", $conf, 2) || &version_atleast("2.2")) {
|
||||
if (&version_atleast("2.4")) {
|
||||
&save_directive($conf, "ssl_server_key_file",
|
||||
$in{'key_def'} ? undef : $in{'key'}, "");
|
||||
}
|
||||
elsif (&find_value("ssl_key", $conf, 2) || &version_atleast("2.2")) {
|
||||
$in{'key'} = "<".$in{'key'} if ($in{'key'} =~ /^\//);
|
||||
&save_directive($conf, "ssl_key",
|
||||
$in{'key_def'} ? undef : $in{'key'}, "");
|
||||
@@ -35,7 +44,11 @@ else {
|
||||
# Save SSL CA cert
|
||||
$in{'ca_def'} || -r $in{'ca'} || $in{'ca'} =~ /^[<>\|]/ ||
|
||||
&error($text{'ssl_eca'});
|
||||
if (&find_value("ssl_ca", $conf, 2) || &version_atleast("2.2")) {
|
||||
if (&version_atleast("2.4")) {
|
||||
&save_directive($conf, "ssl_server_ca_file",
|
||||
$in{'ca_def'} ? undef : $in{'ca'}, "");
|
||||
}
|
||||
elsif (&find_value("ssl_ca", $conf, 2) || &version_atleast("2.2")) {
|
||||
$in{'ca'} = "<".$in{'ca'} if ($in{'ca'} =~ /^\//);
|
||||
&save_directive($conf, "ssl_ca",
|
||||
$in{'ca_def'} ? undef : $in{'ca'}, "");
|
||||
@@ -47,15 +60,29 @@ else {
|
||||
|
||||
# Save SSL key password
|
||||
$in{'pass_def'} || $in{'pass'} =~ /\S/ || &error($text{'ssl_epass'});
|
||||
&save_directive($conf, "ssl_key_password",
|
||||
$in{'pass_def'} ? undef : $in{'pass'});
|
||||
&save_directive($conf,
|
||||
&version_atleast("2.4")
|
||||
? "ssl_server_key_password"
|
||||
: "ssl_key_password",
|
||||
$in{'pass_def'} ? undef : $in{'pass'});
|
||||
|
||||
$in{'regen_def'} || $in{'regen'} =~ /^\d+$/ || &error($text{'ssl_eregen'});
|
||||
&save_directive($conf, "ssl_parameters_regenerate",
|
||||
$in{'regen_def'} ? undef : $in{'regen'});
|
||||
# Save SSL parameter regeneration time
|
||||
if (&version_below("2.4")) {
|
||||
$in{'regen_def'} || $in{'regen'} =~ /^\d+$/ ||
|
||||
&error($text{'ssl_eregen'});
|
||||
&save_directive($conf, "ssl_parameters_regenerate",
|
||||
$in{'regen_def'} ? undef : $in{'regen'});
|
||||
}
|
||||
|
||||
&save_directive($conf, "disable_plaintext_auth",
|
||||
$in{'plain'} ? $in{'plain'} : undef);
|
||||
# Save plaintext password setting
|
||||
if (&find_value("auth_allow_cleartext", $conf, 2)) {
|
||||
&save_directive($conf, "auth_allow_cleartext",
|
||||
$in{'plain'} ? $in{'plain'} : undef);
|
||||
}
|
||||
else {
|
||||
&save_directive($conf, "disable_plaintext_auth",
|
||||
$in{'plain'} ? $in{'plain'} : undef);
|
||||
}
|
||||
|
||||
&flush_file_lines();
|
||||
&unlock_dovecot_files($conf);
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
<header> ب٠GID ÙØ§ اعتÙ
اد ÙÚ©ÙÛØ¯ </header> <i>اÛÙ ÛÚ© گزÛÙ٠خاص NFSv2 است.</i> <br> <i><tt>ugidd</tt> Ø´Ø¨Ø ÙÙØ´Ù Ø¨Ø±Ø¯Ø§Ø±Û Ø¨Ø§ÛØ¯ در ØØ§Ù اجرا.</i> <br> Ù
اÙÙØ¯ <a href="squash_uids">UID ÙØ§Û Ù
Ø·Ù
ئ٠ÙÛØ³Øª</a> Ø Ø§Û٠گزÛÙ٠ب٠شÙ
ا اÙ
کا٠Ù
Û Ø¯ÙØ¯ ÙÛØ³ØªÛ از GID ÙØ§Û Ù
Ø´ØªØ±Û Ø±Ø§ Ù
شخص Ú©ÙÛØ¯ تا ب٠عÙÙØ§Ù <a href="anongid">گرÙÙ ØºÛØ± ÙØ§Ø¨Ù اعتÙ
اد</a> با Ø¢ÙÙØ§ Ø±ÙØªØ§Ø± Ø´ÙØ¯. Ø´Ù
ا Ø¨Ø§ÛØ¯ ÛÚ© ÙÛØ³Øª کاÙ
ÙØ§Ù جدا از کاÙ
ا از GID ÛØ§ Ù
ØØ¯Ùد٠GID Ù
اÙÙØ¯ <tt>1Ø10Ø20-25Ø100-150 را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯</tt> . <br><br> <i>گزÛÙÙÙØ§Û exportfs: squash_gids Ø map_daemon</i> <hr>
|
||||
<header>به GID ها اعتماد نکنید</header> <i>این یک گزینه مخصوص NFSv2 است.</i><br> <i>دیمون نقشه برداری <tt>ugidd</tt> باید در حال اجرا باشد.</i><br> مانند گزینهی <a href="squash_uids">«به UIDها اعتماد نکنید»</a> ، این گزینه به شما امکان میدهد فهرستی از GIDهای کلاینت را که به عنوان <a href="anongid">گروه غیرقابل اعتماد</a> در نظر گرفته میشوند، مشخص کنید. شما باید فهرستی از GIDها یا محدودههای GID مانند <tt>۱،۱۰،۲۰-۲۵،۱۰۰-۱۵۰</tt> را که با کاما از هم جدا شدهاند، وارد کنید.<br><br> <i>گزینههای exportfs: squash_gids، map_daemon</i><hr>
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ acl_root=ریشه (با احتیاط به کاربران غیر قابل اعت
|
||||
acl_same=مشابه ورود به وب
|
||||
acl_user=کاربر خاص یونیکس
|
||||
acl_user_strict=بررسی های دقیق مالکیت کاربر را فعال کنید
|
||||
acl_user_strict_desc=در ØµÙØ±Øª ÙØ¹Ø§Ù Ø¨ÙØ¯ÙØ Ú©Ø§Ø±Ø¨Ø± ÙÙØ· Ù
ÛØªÙØ§ÙØ¯ ÙØ§ÛÙÙØ§Û Ù
تعÙÙ Ø¨Ù Ø®ÙØ¯ را ØØ°Ù Ù Ù
ÙØªÙÙ Ú©ÙØ¯. اÛ٠با Ø±ÙØªØ§Ø± Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ ÛÙÙÛکس Ù
ØªÙØ§Ùت Ø§Ø³ØªØ Ø¬Ø§ÛÛ Ú©Ù Ú©Ø§Ø±Ø¨Ø± Ù
Û ØªÙØ§Ùد ÙØ± ÙØ§ÛÙÛ Ø±Ø§ در ÙÙØ±Ø³ØªÛ Ú©Ù Ø¯Ø³ØªØ±Ø³Û ÙÙØ´ØªÙ ب٠آ٠دارد ØØ°Ù ÛØ§ Ù
ÙØªÙÙ Ú©ÙØ¯
|
||||
acl_user_strict_desc=در صورت فعال بودن، کاربر فقط میتواند فایلهای متعلق به خود را حذف و منتقل کند. این با رفتار استاندارد یونیکس متفاوت است، که در آن کاربر میتواند هر فایلی را در دایرکتوری که دسترسی نوشتن در آن را دارد، حذف یا منتقل کند
|
||||
acl_euser=کاربر انتخاب شده یونیکس وجود ندارد!
|
||||
acl_epath=مسیر$1 وجود ندارد
|
||||
acl_max=حداکثر اندازه برای پرونده های بارگذاری شده
|
||||
|
||||
@@ -155,7 +155,7 @@ desc_args--match-set=$2 در مجموعه IP $1 موجود است
|
||||
desc_src=منبع
|
||||
desc_dest=مقصد
|
||||
|
||||
redhat_einstalled2=ÙÛÚ Ø§ÙØ¯Ø§Ù
Ø±Ø§ÙØ§ÙØ¯Ø§Ø²Û <tt>$1</tt> ÛØ§Ùت ÙØ´Ø¯ Ú©Ù ÙØ´Ø§Ù Ù
ÛØ¯Ùد بست٠IPtables رÙÛ Ø³ÛØ³ØªÙ
Ø´Ù
ا ÙØµØ¨ ÙØ´Ø¯Ù است
|
||||
redhat_einstalled2=هیچ اقدام بوت <tt>$1</tt> یافت نشد، که نشان میدهد بسته IPtables روی سیستم شما نصب نشده است
|
||||
redhat_eoutput=خطایی در دریافت وضعیت IPtables از دستور$1 رخ داد. احتمالاً این نشان می دهد كه سیستم شما پیكربندی شده است تا از IPchains به جای IPtables استفاده كند.
|
||||
|
||||
gentoo_escript=اسکریپت راه اندازی Gentoo IPtables $1 در سیستم شما یافت نشد.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
firewall_cmd=firewall-cmd
|
||||
init_name=firewalld
|
||||
config_dir=/etc/firewalld
|
||||
packet_handling=drop
|
||||
packet_handling=0
|
||||
timeout=0
|
||||
|
||||
@@ -2,3 +2,4 @@ firewall_cmd=Full path to firewall-cmd program,0
|
||||
init_name=FirewallD init script name,0
|
||||
config_dir=FirewallD configuration directory,0
|
||||
packet_handling=Default packet handling action,1,0-<tt>drop</tt>,1-<tt>reject</tt>
|
||||
timeout=Timeout for temporary rules,15,timeout_data
|
||||
|
||||
48
firewalld/config_info.pl
Executable file
48
firewalld/config_info.pl
Executable file
@@ -0,0 +1,48 @@
|
||||
require './firewalld-lib.pl';
|
||||
|
||||
# show_timeout_data(value, config-option-name)
|
||||
# Returns a radio button and a select box for timeout values
|
||||
sub show_timeout_data
|
||||
{
|
||||
my ($value, $name) = @_;
|
||||
$name = &format_option_name($name);
|
||||
my $radio = &ui_radio(
|
||||
"${name}_def", !$value ? 1 : 0,
|
||||
[ [ 1, $text{'config_timeout_none'} ],
|
||||
[ 0, ' ' ] ] );
|
||||
my @list = &get_timeouts();
|
||||
my @opts = map { [ $_, $text{"config_timeout_$_"} ] } @list;
|
||||
my $select = &ui_select($name, !$value ? $list[3] : $value, \@opts);
|
||||
return $radio . ' ' . $select;
|
||||
}
|
||||
|
||||
# parse_timeout_data(old-value, config-option-name)
|
||||
# Parses the timeout value from the form input
|
||||
sub parse_timeout_data
|
||||
{
|
||||
my ($oldval, $name) = @_;
|
||||
$name = &format_option_name($name);
|
||||
my $val = $in{$name} // '';
|
||||
return 0 if ($in{"${name}_def"});
|
||||
my %valid = map { $_ => 1 } &get_timeouts();
|
||||
&error(&text('config_timeout_err', $val)) unless($valid{$val});
|
||||
return $val;
|
||||
}
|
||||
|
||||
# get_timeouts
|
||||
# Returns a list of valid timeout values for the select box
|
||||
sub get_timeouts
|
||||
{
|
||||
return qw(1m 5m 15m 30m 1h 3h 6h 12h 1d 3d 7d 30d);
|
||||
}
|
||||
|
||||
# format_option_name(name)
|
||||
# Formats the option name for use in HTML element names
|
||||
sub format_option_name
|
||||
{
|
||||
my ($name) = @_;
|
||||
$name =~ s/\s+/_/g;
|
||||
$name =~ s/[^\x00-\x7F]/_/g;
|
||||
$name = lc($name);
|
||||
return $name;
|
||||
}
|
||||
@@ -540,6 +540,14 @@ if (!$zone) {
|
||||
$zone = $zone->{'name'};
|
||||
}
|
||||
|
||||
# Timeout
|
||||
my $timeout = $opts->{'timeout'};
|
||||
if ($timeout) {
|
||||
# Validate timeout format
|
||||
&error(&text('config_timeout_err', $timeout))
|
||||
if ($timeout !~ /^(\d+)([smhd]?)$/);
|
||||
}
|
||||
|
||||
# Permanent rule
|
||||
my $permanent = $opts->{'permanent'};
|
||||
|
||||
@@ -548,7 +556,8 @@ my $get_cmd = sub {
|
||||
my ($rtype) = @_;
|
||||
my $type = $rtype ? " --permanent" : "";
|
||||
return "$config{'firewall_cmd'} --zone=\"".quotemeta($zone)."\"".
|
||||
"$type --".quotemeta($action)."-rich-rule='$opts->{'rule'}'";
|
||||
"$type --".quotemeta($action)."-rich-rule='$opts->{'rule'}'".
|
||||
($timeout ? " --timeout=".quotemeta($timeout) : "");
|
||||
};
|
||||
|
||||
for my $type (0..1) {
|
||||
|
||||
@@ -50,6 +50,21 @@ index_dependent=Failed to restart $1 dependent service
|
||||
index_manual=Edit Config Files.
|
||||
index_downrules=FirewallD rules cannot be created or edited and are not enforced unless the server is running.
|
||||
|
||||
config_timeout_none=None
|
||||
config_timeout_1m=1 minute
|
||||
config_timeout_5m=5 minutes
|
||||
config_timeout_15m=15 minutes
|
||||
config_timeout_30m=30 minutes
|
||||
config_timeout_1h=1 hour
|
||||
config_timeout_3h=3 hours
|
||||
config_timeout_6h=6 hours
|
||||
config_timeout_12h=12 hours
|
||||
config_timeout_1d=1 day
|
||||
config_timeout_3d=3 days
|
||||
config_timeout_7d=7 days
|
||||
config_timeout_30d=30 days
|
||||
config_timeout_err=Invalid timeout value <tt>$1</tt>
|
||||
|
||||
manual_title=Edit Config Files
|
||||
manual_editsel=Edit FirewallD configuration file
|
||||
manual_err=Failed to save config file
|
||||
|
||||
@@ -6,7 +6,7 @@ use warnings;
|
||||
no warnings 'redefine';
|
||||
no warnings 'uninitialized';
|
||||
require './firewalld-lib.pl';
|
||||
our (%in, %text);
|
||||
our (%in, %text, %config);
|
||||
&ReadParse();
|
||||
|
||||
# Setup error messages
|
||||
@@ -31,6 +31,7 @@ $ip =~ s/\Q$mask\E// if ($mask);
|
||||
|
||||
# Block the IP
|
||||
my $perm = $in{'permanent'} ? 'perm' : '';
|
||||
my $timeout = $config{'timeout'} unless ($perm && $config{'timeout'});
|
||||
my ($out, $rs) = &rich_rule('add',
|
||||
{ 'rule' =>
|
||||
&construct_rich_rule(
|
||||
@@ -38,7 +39,8 @@ my ($out, $rs) = &rich_rule('add',
|
||||
'action' => $allow ? 'accept' : undef,
|
||||
'priority' => $allow ? -32767 : -32766,
|
||||
),
|
||||
'zone' => $zone->{'name'}, 'permanent' => $perm });
|
||||
'zone' => $zone->{'name'}, 'permanent' => $perm,
|
||||
'timeout' => $timeout });
|
||||
&error($out) if ($rs);
|
||||
&apply_firewalld() if ($perm);
|
||||
|
||||
|
||||
47
forgot.cgi
47
forgot.cgi
@@ -26,9 +26,29 @@ time() - $link{'time'} > 60*$timeout &&
|
||||
# Get the Webmin user
|
||||
&foreign_require("acl");
|
||||
my ($wuser) = grep { $_->{'name'} eq $link{'user'} } &acl::list_users();
|
||||
$wuser || &error(&text('forgot_euser2',
|
||||
|
||||
# Get the Virtualmin mail Unix user if Webmin user is not found
|
||||
my ($muser, $muserdom);
|
||||
if (!$wuser && $link{'muser'}) {
|
||||
# Probably Virtualmin mail user, so try to find it
|
||||
&foreign_require("virtual-server");
|
||||
my $d = &virtual_server::get_user_domain(lc($link{'muser'}));
|
||||
if ($d) {
|
||||
my @u = &virtual_server::list_domain_users($d, 0, 0, 1, 1, 0);
|
||||
($muser) = grep { $_->{'user'} eq lc($link{'muser'}) } @u;
|
||||
}
|
||||
}
|
||||
|
||||
# Show an error if neither user was found
|
||||
!$muser && $link{'muser'} && &error(&text('forgot_euser3',
|
||||
"<tt>".&html_escape($link{'muser'})."</tt>"));
|
||||
$wuser || $muser || &error(&text('forgot_euser2',
|
||||
"<tt>".&html_escape($link{'user'})."</tt>"));
|
||||
my $username = $link{'uuser'} || $link{'user'};
|
||||
|
||||
# Set the username whichever is available
|
||||
my $username = $link{'muser'} || $link{'uuser'} || $link{'user'};
|
||||
my $email = $wuser ? $wuser->{'email'} :
|
||||
$muser ? $muser->{'recovery'} || $muser->{'email'} : undef;
|
||||
|
||||
&ui_print_header(undef, $text{'forgot_title'}, "", undef, undef, 1, 1);
|
||||
|
||||
@@ -86,6 +106,17 @@ if (defined($in{'newpass'})) {
|
||||
&virtual_server::pop_all_print();
|
||||
print $text{'forgot_done'},"<p>\n";
|
||||
}
|
||||
elsif ($muser) {
|
||||
# Update in Virtualmin if this is a mail user
|
||||
my %oldmuser = %$muser;
|
||||
$muser->{'plainpass'} = $in{'newpass'};
|
||||
$muser->{'pass'} =
|
||||
&virtual_server::encrypt_user_password(
|
||||
$muser, $muser->{'plainpass'});
|
||||
$muser->{'passmode'} = 3;
|
||||
&virtual_server::set_pass_change($muser);
|
||||
&virtual_server::modify_user($muser, \%oldmuser, $muserdom);
|
||||
}
|
||||
elsif ($link{'uuser'} || $wuser->{'pass'} eq 'x') {
|
||||
# Update in Users and Groups
|
||||
print &text('forgot_udoing',
|
||||
@@ -116,12 +147,20 @@ if (defined($in{'newpass'})) {
|
||||
&reload_miniserv();
|
||||
print $text{'forgot_done'},"<p>\n";
|
||||
}
|
||||
print &text('forgot_retry', '/'),"<p>\n";
|
||||
|
||||
# Print link to login for Webmin user
|
||||
if (!$muser) {
|
||||
print &text('forgot_retry', &get_webprefix()."/",
|
||||
"<tt>".$username."</tt>"),"<p>\n";
|
||||
}
|
||||
else {
|
||||
print &text('forgot_retry2', "<tt>".$username."</tt>"),"<p>\n";
|
||||
}
|
||||
|
||||
&webmin_log("forgot", "reset", undef,
|
||||
{ 'user' => $username,
|
||||
'unix' => $link{'uuser'} ? 1 : 0,
|
||||
'email' => $wuser->{'email'} }, "acl");
|
||||
'email' => $email }, "acl");
|
||||
|
||||
&unlink_logged($linkfile);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
BEGIN { push(@INC, "."); };
|
||||
use WebminCore;
|
||||
$no_acl_check++;
|
||||
$trust_unknown_referers = 1;
|
||||
&init_config();
|
||||
&ReadParse();
|
||||
&load_theme_library();
|
||||
|
||||
@@ -27,7 +27,21 @@ if (!$wuser) {
|
||||
($wuser) = grep { $_->{'name'} eq 'root' } &acl::list_users();
|
||||
}
|
||||
}
|
||||
my $email = $wuser ? $wuser->{'email'} : undef;
|
||||
|
||||
# If no Webmin user, then try to get mail user from Virtualmin
|
||||
my $muser;
|
||||
if (!$wuser && &foreign_check("virtual-server")) {
|
||||
# Probably in Virtualmin, so try to find the user
|
||||
&foreign_require("virtual-server");
|
||||
my $d = &virtual_server::get_user_domain(lc($in{'forgot'}));
|
||||
if ($d) {
|
||||
my @u = &virtual_server::list_domain_users($d, 0, 0, 1, 1, 0);
|
||||
($muser) = grep { $_->{'user'} eq lc($in{'forgot'}) } @u;
|
||||
}
|
||||
}
|
||||
|
||||
my $email = $wuser ? $wuser->{'email'} :
|
||||
$muser ? $muser->{'recovery'} || $muser->{'email'} : undef;
|
||||
|
||||
# Check if the IP or Webmin user is over it's rate limit
|
||||
&make_dir($main::forgot_password_link_dir, 0700);
|
||||
@@ -43,6 +57,7 @@ my $ptime = $gconfig{'passreset_time'} // 60;
|
||||
foreach my $key ($ENV{'REMOTE_ADDR'},
|
||||
$wuser ? ( $wuser->{'name'} ) : ( ),
|
||||
$uuser ? ( $uuser->{'user'} ) : ( ),
|
||||
$muser ? ( $muser->{'user'} ) : ( ),
|
||||
$email ? ( $email ) : ( )) {
|
||||
# Don't block if disabled
|
||||
next if (!$pfailures || !$ptime);
|
||||
@@ -83,7 +98,7 @@ sleep($maxtries);
|
||||
&error($rlerr) if ($rlerr);
|
||||
|
||||
# Make sure the Webmin user exists and is eligible for a reset
|
||||
$wuser && $wuser->{'email'} || &error($text{'forgot_euser'});
|
||||
(($wuser && $email) || ($muser && $email)) || &error($text{'forgot_euser'});
|
||||
($wuser->{'sync'} || $wuser->{'pass'} eq 'e') && &error($text{'forgot_esync'});
|
||||
$wuser->{'pass'} eq '*LK*' && &error($text{'forgot_elock'});
|
||||
|
||||
@@ -92,7 +107,8 @@ my %link = ( 'id' => &acl::generate_random_id(),
|
||||
'remote' => $ENV{'REMOTE_ADDR'},
|
||||
'time' => $now,
|
||||
'user' => $wuser->{'name'},
|
||||
'uuser' => $uuser ? $uuser->{'user'} : undef, );
|
||||
'uuser' => $uuser ? $uuser->{'user'} : undef,
|
||||
'muser' => $muser ? $muser->{'user'} : undef, );
|
||||
$link{'id'} || &error($text{'forgot_erandom'});
|
||||
my $linkfile = $main::forgot_password_link_dir."/".$link{'id'};
|
||||
&lock_file($linkfile);
|
||||
@@ -100,8 +116,9 @@ my $linkfile = $main::forgot_password_link_dir."/".$link{'id'};
|
||||
&unlock_file($linkfile);
|
||||
my $baseurl = &get_webmin_email_url();
|
||||
my $url = $baseurl.'/forgot.cgi?id='.&urlize($link{'id'});
|
||||
my $username = $uuser ? $uuser->{'user'} : $wuser->{'name'};
|
||||
$url = &theme_forgot_url($baseurl, $link{'id'}, $link{'user'})
|
||||
my $username = $muser ? $muser->{'user'} :
|
||||
$uuser ? $uuser->{'user'} : $wuser->{'name'};
|
||||
$url = &theme_forgot_url($baseurl, $link{'id'}, $username)
|
||||
if (defined(&theme_forgot_url));
|
||||
|
||||
&ui_print_header(undef, $text{'forgot_title'}, "", undef, undef, 1, 1);
|
||||
@@ -128,6 +145,6 @@ print "</center>\n";
|
||||
|
||||
&webmin_log("forgot", "send", undef,
|
||||
{ 'user' => $username,
|
||||
'unix' => $uuser ? 1 : 0,
|
||||
'unix' => $muser || $uuser ? 1 : 0,
|
||||
'email' => $email }, "acl");
|
||||
&ui_print_footer();
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 4.3 KiB |
@@ -15,6 +15,9 @@ table.formsection, table.ui_table, table.loginform {
|
||||
table.ui_table .ui_table {
|
||||
border: none;
|
||||
}
|
||||
table.shrinkwrapper > tbody > tr > td > .ui_table {
|
||||
table-layout: fixed;
|
||||
}
|
||||
img, a img { border:0; }
|
||||
tr.row0 {background-color:#e8e8ea;}
|
||||
tr.row1 {background-color:#f8f8fa;}
|
||||
@@ -140,11 +143,16 @@ div.wrapper {
|
||||
background-color:#D9D9D9;
|
||||
}
|
||||
.goArrow { margin-bottom: -4px; }
|
||||
|
||||
.ui_checked_columns .ui_checked_checkbox {
|
||||
min-width: 20px;
|
||||
}
|
||||
.ui_form_label{
|
||||
text-align:right;
|
||||
vertical-align:top;
|
||||
}
|
||||
.ui_form_pair .ui_form_value {
|
||||
padding-left: 8px;
|
||||
}
|
||||
.ui_form_pair td {padding:4px;}
|
||||
.ui_form_pair td table.ui_radio_table tr td {padding:2px;}
|
||||
.ui_form_pair td table tr td {padding:0px;}
|
||||
@@ -220,8 +228,16 @@ br[data-x-br] {
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
.ui_text_wrap {
|
||||
float: right;
|
||||
tr:has(.ui_help) td:not(:hover) .ui_help {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
tr:has(.ui_help) td.ui_form_label .ui_help {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
td:not(:hover) .ui_link_help {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.ui_link_help {
|
||||
@@ -230,12 +246,13 @@ br[data-x-br] {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
td:not(:hover) .ui_link_help {
|
||||
visibility: hidden;
|
||||
.ui_text_wrap {
|
||||
float: right;
|
||||
}
|
||||
|
||||
[data-tooltip][aria-label] {
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
[data-tooltip][aria-label]::after {
|
||||
@@ -422,6 +439,10 @@ details.ui_hidden_table_start > summary::-webkit-details-marker {
|
||||
color: #a1acc0;
|
||||
}
|
||||
|
||||
details:not([open]).on-hover:not(:hover) summary::after {
|
||||
visibility: hidden !important;
|
||||
}
|
||||
|
||||
details.inline {
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
@@ -438,6 +459,23 @@ details.inline > summary + span {
|
||||
line-height: 1.33;
|
||||
}
|
||||
|
||||
details.inline.inlined > summary,
|
||||
details.inline.inlined {
|
||||
display: inline !important;
|
||||
}
|
||||
|
||||
details > span .ui_alert_box {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
details > span .ui_alert_box:not(:has(+p)) {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
details.inline.inlined > span {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
details.inline > summary + span > tt {
|
||||
font-size: 96%;
|
||||
}
|
||||
@@ -461,6 +499,12 @@ details[open].inline > summary:after {
|
||||
content: '⏷';
|
||||
}
|
||||
|
||||
details.inline.fit > summary + span span,
|
||||
details.inline.fit > summary + span {
|
||||
width: fit-content;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
[data-second-print]:has(details) + br:has(+[data-x-br]) {
|
||||
display: none;
|
||||
}
|
||||
@@ -818,3 +862,32 @@ body > .mode > b[data-mode="server-manager"] > a > .ff-cloudmin {
|
||||
[data-pro-disabled$="-elem"] a:hover {
|
||||
filter: grayscale(1) contrast(1);
|
||||
}
|
||||
.not-secure {
|
||||
color: #c40000;
|
||||
float: right;
|
||||
}
|
||||
.inherit-color::after,
|
||||
.inherit-color::before,
|
||||
.inherit-color:focus::after,
|
||||
.inherit-color:focus::before,
|
||||
.inherit-color:active::after,
|
||||
.inherit-color:active::before,
|
||||
.inherit-color:hover::after,
|
||||
.inherit-color:hover::before,
|
||||
.inherit-color:focus,
|
||||
.inherit-color:active,
|
||||
.inherit-color:hover,
|
||||
.inherit-color {
|
||||
color: inherit !important;
|
||||
}
|
||||
.table-simple {
|
||||
width: auto !important;
|
||||
max-width: 100%;
|
||||
}
|
||||
.table-simple tr td {
|
||||
padding: 0 4px !important;
|
||||
}
|
||||
.field-sizing-content {
|
||||
field-sizing: content !important;
|
||||
min-width: 40px !important;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ index_header=جستجوی راهنمای جهانی وبمین
|
||||
index_return=فرم جستجو
|
||||
|
||||
search_err=جستجو ناموفق بود
|
||||
search_eterms=Ø¹Ø¨Ø§Ø±ØªÙØ§Û Ø¬Ø³ØªØ¬Ù ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯
|
||||
search_eterms=عبارات جستجوی گمشده
|
||||
search_emods=هیچ ماژولی انتخاب نشده است
|
||||
search_title=نتایج جستجو
|
||||
search_einclude=شامل $1 نشد
|
||||
|
||||
@@ -120,5 +120,5 @@ search_doing=جستجوی فهرستهای محافظت شده تحت $1 ..
|
||||
search_found=پرونده گزینه های جدید Apache $1 با کاربران در$2 یافت شد.
|
||||
search_already=جستجوی پرونده معروف گزینه های Apache$1.
|
||||
search_noprot=جستجوی پرونده گزینه های Apache $1 ، زیرا از دایرکتوری محافظت نمی کند.
|
||||
search_open=پرÙÙØ¯Ù گزÛÙÙÙØ§Û Apache $1 : $2 باز ÙØ´Ø¯
|
||||
search_open=نتوانست فایل گزینههای آپاچی $1 : $2 را باز کند
|
||||
search_done=.. انجام شده
|
||||
|
||||
@@ -7,7 +7,7 @@ index_add=یک کاربر جدید به فایل رمز اضافه کنید.
|
||||
index_file=کاربران در فایل رمز عبور $1
|
||||
index_sync=همگام سازی کاربر یونیکس
|
||||
index_return=فهرست کاربران
|
||||
index_eversion=اÛÙ Ù
اÚÙÙ Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از رÙ
Ø²Ú¯Ø°Ø§Ø±Û MD5 Ø¨Ø±Ø§Û Ø±Ù
Ø²ÙØ§Û Ø¹Ø¨ÙØ± <a href='$1'>Ù¾ÛÚ©Ø±Ø¨ÙØ¯Û Ø´Ø¯Ù Ø§Ø³ØªØ Ø§Ù
ا ÙØ³Ø®Ù Ù
اÚÙ٠کاربرا٠٠گرÙÙÙØ§ ک٠رÙÛ Ø³ÛØ³ØªÙ
Ø´Ù
ا ÙØµØ¨ Ø´Ø¯Ù Ø§Ø³ØªØ Ø´Ø§Ù
Ù ØªÙØ§Ø¨Ø¹ MD5 Ù
ÙØ±Ø¯ ÙÛØ§Ø² ÙÛØ³Øª. Ø¨Ù ÙØ³Ø®Ù 1.114 ÛØ§ Ø¨Ø§ÙØ§ØªØ± Ø§Ø±ØªÙØ§ دÙÛØ¯.
|
||||
index_eversion=این ماژول <a href='$1'>به گونهای پیکربندی شده است که از رمزگذاری MD5 برای رمزهای عبور استفاده کند، اما نسخه ماژول Users and Groups که روی سیستم شما نصب شده است، شامل توابع MD5 مورد نیاز نیست. آن را به نسخه ۱.۱۱۴ یا بالاتر ارتقا دهید.
|
||||
index_synccreate=هنگامی که کاربر یونیکس ایجاد می شود، کاربر اضافه شود؟
|
||||
index_syncmodify=هنگامی که کاربر یونیکس مربوطه تغییر می کند، نام کاربری را تغییر دهید یا رمز عبور را تغییر دهید؟
|
||||
index_syncdelete=وقتی کاربر یونیکس مربوطه حذف شد، یک کاربر حذف شود؟
|
||||
|
||||
@@ -335,11 +335,13 @@ elsif ($init_mode eq "systemd" && $access{'bootup'}) {
|
||||
&select_invert_link("d"),
|
||||
&ui_link("edit_systemd.cgi?new=1", $text{'index_sadd'}) );
|
||||
print &ui_links_row(\@links);
|
||||
print &ui_columns_start([ "", $text{'index_uname'},
|
||||
$text{'index_udesc'},
|
||||
$text{'index_ucstatus'},
|
||||
$text{'index_uboot'},
|
||||
$text{'index_ustatus'}, ]);
|
||||
print &ui_columns_start([ "", $text{'systemd_name'},
|
||||
$config{'desc'} ? $text{'systemd_desc'} : (),
|
||||
$text{'systemd_type'},
|
||||
$text{'systemd_status'},
|
||||
$text{'systemd_boot'},
|
||||
$text{'index_ustatus'} ]);
|
||||
my $units_piped = join('|', map { quotemeta } &get_systemd_unit_types());
|
||||
foreach $u (&list_systemd_services()) {
|
||||
if ($u->{'legacy'}) {
|
||||
$l = "edit_action.cgi?0+".&urlize($u->{'name'});
|
||||
@@ -347,12 +349,23 @@ elsif ($init_mode eq "systemd" && $access{'bootup'}) {
|
||||
else {
|
||||
$l = "edit_systemd.cgi?name=".&urlize($u->{'name'});
|
||||
}
|
||||
my $sname = $u->{'name'};
|
||||
my ($type) = $sname =~ /\.([^.]+)$/;
|
||||
if (defined($type) && $type =~ /^(?:$units_piped)$/) {
|
||||
$sname =~ s/\.$type$//;
|
||||
}
|
||||
else {
|
||||
$type = '';
|
||||
}
|
||||
my $title = ($u->{'boot'} == -1 ?
|
||||
&html_escape($sname) :
|
||||
&ui_link($l, &html_escape($sname)));
|
||||
my $desc = $config{'desc'} ? &html_escape($u->{'desc'}) : undef;
|
||||
print &ui_columns_row([
|
||||
&ui_checkbox("d", $u->{'name'}, undef),
|
||||
$u->{'boot'} == -1 ?
|
||||
&html_escape($u->{'name'}) :
|
||||
&ui_link($l, &html_escape($u->{'name'})),
|
||||
&html_escape($u->{'desc'}),
|
||||
$title,
|
||||
$desc // (),
|
||||
$type,
|
||||
$u->{'fullstatus'} || "<i>$text{'index_unknown'}</i>",
|
||||
$u->{'boot'} == 1 ?
|
||||
&ui_text_color("$text{'yes'}", 'success') :
|
||||
|
||||
@@ -207,7 +207,7 @@ unless full unit name is passed
|
||||
sub action_unit
|
||||
{
|
||||
my ($unit) = @_;
|
||||
my $units_piped = &get_systemd_unit_types('|');
|
||||
my $units_piped = join('|', &get_systemd_unit_types());
|
||||
$unit .= ".service"
|
||||
if ($unit !~ /\.($units_piped)$/);
|
||||
return $unit;
|
||||
@@ -2128,7 +2128,7 @@ if (@list_systemd_services_cache && !$noinit) {
|
||||
return @list_systemd_services_cache;
|
||||
}
|
||||
|
||||
my $units_piped = &get_systemd_unit_types('|');
|
||||
my $units_piped = join('|', &get_systemd_unit_types());
|
||||
|
||||
# Get all systemd unit names
|
||||
my $out = &backquote_command("systemctl list-units --full --all -t service --no-legend");
|
||||
@@ -2181,7 +2181,7 @@ while(@units) {
|
||||
while(@args < 100 && @units) {
|
||||
push(@args, shift(@units));
|
||||
}
|
||||
my $out = &backquote_command("systemctl show --property=Id,Description,UnitFileState,ActiveState,SubState,ExecStart,ExecStop,ExecReload,ExecMainPID,FragmentPath ".join(" ", @args)." 2>/dev/null");
|
||||
my $out = &backquote_command("systemctl show --property=Id,Description,UnitFileState,ActiveState,SubState,ExecStart,ExecStop,ExecReload,ExecMainPID,FragmentPath,DropInPaths ".join(" ", @args)." 2>/dev/null");
|
||||
my @lines = split(/\r?\n/, $out);
|
||||
my $curr;
|
||||
my @units;
|
||||
@@ -2415,7 +2415,7 @@ my ($name) = @_;
|
||||
&restart_systemd();
|
||||
}
|
||||
|
||||
=head2 get_systemd_unit_types([return-as-string-separated])
|
||||
=head2 get_systemd_unit_types()
|
||||
|
||||
Returns a list of all systemd unit types. Returns a string
|
||||
instead if separator param is set.
|
||||
@@ -2423,14 +2423,8 @@ instead if separator param is set.
|
||||
=cut
|
||||
sub get_systemd_unit_types
|
||||
{
|
||||
my ($str_separator) = @_;
|
||||
my @systemd_types = ('target', 'service', 'socket', 'device',
|
||||
'mount', 'automount', 'swap', 'path',
|
||||
'timer', 'snapshot', 'slice', 'scope',
|
||||
'busname');
|
||||
return $str_separator ?
|
||||
join($str_separator, @systemd_types) :
|
||||
@systemd_types;
|
||||
return ('target', 'service', 'socket', 'device', 'mount', 'automount',
|
||||
'swap', 'path', 'timer', 'snapshot', 'slice', 'scope', 'busname');
|
||||
}
|
||||
|
||||
=head2 is_systemd_service(name)
|
||||
@@ -2441,7 +2435,7 @@ Returns 1 if some service is managed by systemd
|
||||
sub is_systemd_service
|
||||
{
|
||||
my ($name) = @_;
|
||||
my $units_piped = &get_systemd_unit_types('|');
|
||||
my $units_piped = join('|', &get_systemd_unit_types());
|
||||
foreach my $s (&list_systemd_services(1)) {
|
||||
if (($s->{'name'} eq $name ||
|
||||
$s->{'name'} =~
|
||||
@@ -2467,22 +2461,10 @@ my $systemd_unit_dir2 = "/lib/systemd/system";
|
||||
if ($name) {
|
||||
foreach my $p ($systemd_local_conf, $systemd_unit_dir1,
|
||||
$systemd_unit_dir2) {
|
||||
if (-r "$p/$name.service" ||
|
||||
-r "$p/$name" ||
|
||||
-r "$p/$name.target" ||
|
||||
-r "$p/$name.socket" ||
|
||||
-r "$p/$name.device" ||
|
||||
-r "$p/$name.mount" ||
|
||||
-r "$p/$name.automount" ||
|
||||
-r "$p/$name.swap" ||
|
||||
-r "$p/$name.path" ||
|
||||
-r "$p/$name.timer" ||
|
||||
-r "$p/$name.snapshot" ||
|
||||
-r "$p/$name.slice" ||
|
||||
-r "$p/$name.scope" ||
|
||||
-r "$p/$name.busname") {
|
||||
return $p;
|
||||
foreach my $t (&get_systemd_unit_types()) {
|
||||
return $p if (-r "$p/$name.$t");
|
||||
}
|
||||
return $p if (-r "$p/$name");
|
||||
}
|
||||
}
|
||||
# Always use /etc/systemd/system for locally created units
|
||||
@@ -2919,4 +2901,12 @@ my ($name) = @_;
|
||||
return $name =~ /\./ ? $name : "com.webmin.".$name;
|
||||
}
|
||||
|
||||
# config_pre_load(mod-info, [mod-order])
|
||||
# Check if some config options are conditional
|
||||
sub config_pre_load
|
||||
{
|
||||
my ($modconf_info, $modconf_order) = @_;
|
||||
$modconf_info->{'desc'} =~ s/2-[^,]+,// if ($init_mode eq "systemd");
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
29
init/lang/en
29
init/lang/en
@@ -221,29 +221,30 @@ upstart_eserver2=Server command does not exist
|
||||
upstart_eserver3=Only one server command can be entered
|
||||
upstart_return=upstart service
|
||||
|
||||
systemd_title1=Create Systemd Service
|
||||
systemd_title2=Edit Systemd Service
|
||||
systemd_egone=Service no longer exists!
|
||||
systemd_elegacy=Not a systemd service!
|
||||
systemd_header=Systemd service details
|
||||
systemd_name=Service name
|
||||
systemd_title1=Create Systemd Unit
|
||||
systemd_title2=Edit Systemd Unit
|
||||
systemd_egone=Unit no longer exists!
|
||||
systemd_elegacy=Not a systemd unit!
|
||||
systemd_header=Systemd unit details
|
||||
systemd_name=Unit name
|
||||
systemd_type=Unit type
|
||||
systemd_file=Configuration file
|
||||
systemd_desc=Service description
|
||||
systemd_desc=Unit description
|
||||
systemd_start=Commands to run on startup
|
||||
systemd_stop=Commands to run on shutdown
|
||||
systemd_conf=Systemd configuration
|
||||
systemd_conf=Systemd unit configuration
|
||||
systemd_boot=Start at boot time?
|
||||
systemd_status=Current status
|
||||
systemd_status0=Not running
|
||||
systemd_status1=Running with PID $1
|
||||
systemd_status2=Running
|
||||
systemd_status3=Unknown!
|
||||
systemd_err=Failed to save systemd service
|
||||
systemd_ename=Missing or invalid-lookup systemd service name
|
||||
systemd_eclash=A service with the same name already exists
|
||||
systemd_edesc=Missing service description
|
||||
systemd_return=systemd service
|
||||
systemd_econf=No systemd configuration entered
|
||||
systemd_err=Failed to save systemd unit
|
||||
systemd_ename=Missing or invalid-lookup systemd unit name
|
||||
systemd_eclash=A unit with the same name already exists
|
||||
systemd_edesc=Missing unit description
|
||||
systemd_return=systemd unit
|
||||
systemd_econf=No systemd unit configuration entered
|
||||
systemd_estart=Missing commands to run on startup
|
||||
|
||||
launchd_title1=Create Launchd Agent
|
||||
|
||||
@@ -1 +1 @@
|
||||
<header> iSCSI Target </header> اÛÙ Ù
اÚÙ٠ب٠شÙ
ا اÙ
کا٠Ù
Û Ø¯ÙØ¯ تا با Ø§Ø³ØªÙØ§Ø¯Ù از Ù¾Ø±ÙØªÚ©Ù iSCSI Ø¯Ø³ØªÚ¯Ø§Ù ÙØ§Û Ø¯ÛØ³Ú© را Ø¨Ù Ø³ÛØ³ØªÙ
ÙØ§Û دÛگر از طرÛ٠شبک٠صادر Ú©ÙÛØ¯. ÙØ± Ø¯ÛØ³Ú© صادر شد٠ÛÚ© <i>ÙØ¯Ù</i> ÙØ§Ù
ÛØ¯Ù Ù
Û Ø´ÙØ¯ Ù Ø§ÙØ¯Ø§Ù Ù
ÙØ¬Ùد در ØµÙØÙ Ø§ØµÙÛ Ù
اÚÙÙ ÙÙØ±Ø³Øª Ù
Û Ø´ÙÙØ¯. Ø¨Ø±Ø§Û Ø§ÛØ¬Ø§Ø¯ ÛÚ© ÙØ¯Ù Ø¬Ø¯ÛØ¯ Ø Ø±ÙÛ Ø¯Ú©Ù
Ù <b>Ø§ÙØ²ÙØ¯Ù ÙØ¯Ù iSCSI Ø¬Ø¯ÛØ¯</b> Ú©ÙÛÚ© Ú©ÙÛØ¯ Ø ÛÚ© ÙØ§Ù
ÙØ§Ø±Ø¯ Ú©ÙÛØ¯ Ù Ø¯Ø³ØªÚ¯Ø§Ù ÛØ§ پرÙÙØ¯Ù Ø¯ÛØ³Ú© Ù
ÙØ±Ø¯ ÙØ¸Ø± را Ø¨Ø±Ø§Û ØµØ§Ø¯Ø± Ú©Ø±Ø¯Ù Ø§ÙØªØ®Ø§Ø¨ Ú©ÙÛØ¯. <p style=";text-align:right;direction:rtl"> ÙØ±Ùد Ù Ú¯Ø°Ø±ÙØ§ÚÙÙØ§Û Ù
ÙØ±Ø¯ ÙÛØ§Ø² Ù
Ø´ØªØ±Û ÛØ§ Ù
Û ØªÙØ§ÙÙØ¯ بر اساس ÙØ¯Ù Ù ÛØ§ Ø¨Ø±Ø§Û ÙÙ
Ù Ø§ÙØ¯Ø§Ù در ØµÙØÙ <b>ØªÙØ¸ÛÙ
ات تأÛÛØ¯ اعتبار ØªÙØ¸ÛÙ
Ø´ÙÙØ¯</b> . Ù¾Ø±ÙØªÚ©Ù iSCSI ÙÙ
ÚÙÛÙ Ø¨Ù Ø§ÙØ¯Ø§Ù اجاز٠Ù
Û Ø¯ÙØ¯ تا Ø®ÙØ¯ را ب٠Ù
Ø´ØªØ±Û (ک٠ب٠عÙÙØ§Ù آغازگر ÙÛØ² Ø´ÙØ§Ø®ØªÙ Ù
Û Ø´ÙØ¯) تأÛÛØ¯ Ú©ÙÙØ¯. <p style=";text-align:right;direction:rtl"> ØªÙØ¸ÛÙ
ات Ø¬ÙØ§ÙÛ Ù
Ø±Ø¨ÙØ· Ø¨Ù Ø§ÙØ¯Ø§Ø²Ù Ø¨Ø³ØªÙ ÙØ§ Ù Ù¾Ø±ÙØªÚ©Ù iSCSI را Ù
Û ØªÙØ§Ù در ØµÙØÙ <b>ØªÙØ¸ÛÙ
ات اتصاÙ</b> تغÛÛØ± داد. Ø¨Ø±ÙØ§Ù
Ù ÙØ§Û زÙ
اÙÛ Ø§Ø±ØªØ¨Ø§Ø· با Ù
Ø´ØªØ±Û Ø±Ø§ Ù
Û ØªÙØ§Ù در ØµÙØÙ <b>ØªÙØ¸ÛÙ
ات زÙ
Ø§ÙØ¨ÙدÛ</b> تغÛÛØ± داد. <p style=";text-align:right;direction:rtl"> Ø¨Ù Ø·ÙØ± Ù¾ÛØ´ ÙØ±Ø¶ Ø ÙØ± Ù
Ø´ØªØ±Û Ø¨Ø§ ÙØ±Ùد Ù
عتبر Ù
Û ØªÙØ§Ùد Ø¨Ù Ø§ÙØ¯Ø§Ù صادر شد٠شÙ
ا Ù
ØªØµÙ Ø´ÙØ¯. با اÛÙ ØØ§Ù Ø Ø´Ù
ا Ù
Û ØªÙØ§ÙÛØ¯ Ù
ØØ¯ÙØ¯ÛØª ÙØ§ÛÛ Ø±Ø§ Ú©Ù Ù
Ø´ØªØ±Û ÙØ§Û IP Ù
Û ØªÙØ§ÙÙØ¯ از طرÛÙ ØµÙØÙ <b>Ù
جاز آدرس ÙØ§Û Ù
شترÛ</b> Ù
تص٠شÙÙØ¯ Ø Ù
تص٠کÙÛØ¯. از طر٠دÛگر Ø Ù
Û ØªÙØ§ÙÛØ¯ IP ÙØ§ را رÙÛ Ø³Ø±ÙØ± Ù
ØØ¯Ùد Ú©ÙÛØ¯ Ú©Ù Ù
Ø´ØªØ±Û ÙØ§ Ù
Û ØªÙØ§ÙÙØ¯ با Ø§Ø³ØªÙØ§Ø¯Ù از ØµÙØÙ <b>آدرس Ù
جاز Ø³Ø±ÙØ± Ù
جاز</b> Ø¨Ù Ø§ØªØµØ§Ù Ø¨Ù Ø¢Ù Ø¨Ø§Ø´ÙØ¯. <p style=";text-align:right;direction:rtl"> در پاÛÛÙ ØµÙØÙ Ø§ØµÙÛ Ù
اÚÙ٠دکÙ
Ù ÙØ§ÛÛ Ø¨Ø±Ø§Û Ù
تÙÙÙ Ú©Ø±Ø¯Ù Ø Ø´Ø±ÙØ¹ Ù Ø±Ø§Ù Ø§ÙØ¯Ø§Ø²Û Ù
جدد Ø³Ø±ÙØ± iSCSI ÙØ¬Ùد دارد. تا ØªÙØ¸ÛÙ
Ù
جدد Ø³Ø±ÙØ± تغÛÛØ±Ø§Øª Ù¾ÛÚ©Ø±Ø¨ÙØ¯Û اعÙ
ا٠ÙÙ
Û Ø´ÙØ¯. <p style=";text-align:right;direction:rtl"><footer>
|
||||
<header>هدف iSCSI</header> این ماژول به شما امکان میدهد دستگاههای دیسک را با استفاده از پروتکل iSCSI از طریق شبکه به سیستمهای دیگر صادر کنید. هر دیسک صادر شده یک <i>هدف</i> نامیده میشود و اهداف موجود در صفحه اصلی ماژول فهرست شدهاند. برای ایجاد یک هدف جدید، روی دکمه <b>«افزودن یک هدف iSCSI جدید»</b> کلیک کنید، یک نام وارد کنید و دستگاه یا فایل دیسک را برای صادر کردن انتخاب کنید.<p style=";text-align:right;direction:rtl"> نامهای کاربری و رمزهای عبور مورد نیاز از کلاینتها را میتوان یا برای هر هدف یا برای همه اهداف در صفحه <b>تنظیمات احراز هویت</b> تنظیم کرد. پروتکل iSCSI همچنین به کلاینتها اجازه میدهد تا خود را برای کلاینتها (که به عنوان آغازگر نیز شناخته میشوند) احراز هویت کنند.<p style=";text-align:right;direction:rtl"> تنظیمات سراسری مربوط به اندازه بستهها و پروتکل iSCSI را میتوان در صفحه <b>تنظیمات اتصال</b> تغییر داد. زمانهای وقفه برای ارتباط با کلاینتها را میتوان در صفحه <b>تنظیمات زمان وقفه</b> تغییر داد.<p style=";text-align:right;direction:rtl"> به طور پیشفرض، هر کلاینتی که دارای ورود معتبر باشد میتواند به اهداف صادر شده شما متصل شود. با این حال، میتوانید با استفاده از صفحه <b>«آدرسهای کلاینت مجاز»</b> IPهایی را که کلاینتها میتوانند به آنها متصل شوند محدود کنید. همچنین، میتوانید با استفاده از صفحه <b>«آدرسهای سرور مجاز»،</b> IPهای روی سروری را که کلاینتها میتوانند به آنها متصل شوند محدود کنید.<p style=";text-align:right;direction:rtl"> در پایین صفحه اصلی ماژول، دکمههایی برای توقف، شروع و راهاندازی مجدد سرور iSCSI وجود دارد. تغییرات پیکربندی تا زمانی که سرور راهاندازی مجدد نشود، اعمال نخواهند شد.<p style=";text-align:right;direction:rtl"><footer>
|
||||
|
||||
56
lang/en
56
lang/en
@@ -147,31 +147,33 @@ session_save=Remember login permanently?
|
||||
session_forgot=Forgot Password?
|
||||
|
||||
forgot_title=Reset Forgotten Password
|
||||
forgot_user=Webmin username:
|
||||
forgot_desc=If your Webmin login has a recovery email address associated with it, you can use this page to send a link that can be used to reset the password.
|
||||
forgot_user=Username:
|
||||
forgot_desc=If your account has a recovery email set, you can use this form to send yourself a password reset link.
|
||||
forgot_go=Send Password Reset Link
|
||||
forgot_ecannot=Forgotten password recovery is not enabled!
|
||||
forgot_euser=The username either does not exist or does not have a recovery email configured.
|
||||
forgot_msg=You are receiving this email due to a request for password recovery from the Webmin system at $4 from $3, for the login $1.\n\nIf you would like to proceed with resetting the password, follow this link :\n$2
|
||||
forgot_subject=Webmin password reset for $1
|
||||
forgot_sent=A link to reset your Webmin password for login $2 has been sent to the recovery email address $1.
|
||||
forgot_euser=The user either does not exist or does not have a recovery email configured.
|
||||
forgot_msg=You are receiving this email due to a request for password recovery from the Webmin system at $4 from $3, for the username $1.\n\nIf you would like to proceed with resetting the password, follow this link:\n$2
|
||||
forgot_subject=Password reset for user $1
|
||||
forgot_sent=A link to reset your password for user $2 has been sent to the recovery email address $1.
|
||||
forgot_erandom=Failed to generate random ID!
|
||||
forgot_eid=Missing or invalid-looking reset ID!
|
||||
forgot_eid2=Reset ID is not valid!
|
||||
forgot_etime=Password reset email is more than $1 minutes old.
|
||||
forgot_newpass=New password for Webmin user $1
|
||||
forgot_newpass=New password for user $1
|
||||
forgot_newpass2=New password again
|
||||
forgot_passok=Change Password
|
||||
forgot_euser2=Webmin user $1 does not exist!
|
||||
forgot_euser3=Mailbox user $1 does not exist!
|
||||
forgot_esync=The password cannot be changed for this user
|
||||
forgot_elock=The password for this user is locked
|
||||
forgot_err=Failed to reset password
|
||||
forgot_enewpass=No new password entered!
|
||||
forgot_enewpass2=New passwords do not match!
|
||||
forgot_equality=Password requirements were not met : $1
|
||||
forgot_wdoing=Changing password for Webmin user $1 ..
|
||||
forgot_wdoing=Changing password for user $1 ..
|
||||
forgot_done=.. password change complete.
|
||||
forgot_retry=You can now <a href='$1'>login to Webmin</a> using your new password.
|
||||
forgot_retry=The password for Webmin user $2 was reset successfully. You can now <a href='$1'>log in</a> using your new password.
|
||||
forgot_retry2=The password for mailbox user $1 was reset successfully.
|
||||
forgot_edisabled=The password for a disabled Virtualmin domain cannot be reset
|
||||
forgot_vdoing=Changing password for Virtualmin domain $1 ..
|
||||
forgot_udoing=Changing password for Unix user $1 ..
|
||||
@@ -179,6 +181,7 @@ forgot_eunix=Unix user does not exist!
|
||||
forgot_eunixlock=User user's password is locked!
|
||||
forgot_elogin=Forgotten password pages cannot be used when you are already logged in to Webmin!
|
||||
forgot_erate=Too many password reset attempts for $1! Please try again later.
|
||||
forgot_eremote=Webmin server on this system is not running or is not configured to allow forgotten password recovery.
|
||||
|
||||
pam_header=Login to Webmin
|
||||
pam_mesg=You must respond to the question below to login to Webmin server on $1.
|
||||
@@ -186,6 +189,9 @@ pam_mesg2=You must respond to the question below to login.
|
||||
pam_login=Continue
|
||||
pam_restart=Restart
|
||||
|
||||
login_notsecure=Not Secure
|
||||
login_notsecure_desc=This connection is not secure and could let a man-in-the-middle attack intercept your password or session cookie. Click here to switch to an HTTPS connection, unless you are on a trusted local network or behind a secure reverse proxy.
|
||||
|
||||
acl_root=Root directory for file chooser
|
||||
acl_otherdirs=Other visible directories in file chooser
|
||||
acl_nodot=Hide dot files in file chooser?
|
||||
@@ -407,7 +413,6 @@ log_email_time=Action performed at: $1
|
||||
log_email_system=Performed on system: $1
|
||||
log_email_user=Performed by user: $1
|
||||
log_email_script=Webmin script: $1
|
||||
log_email_session=Session ID: $1
|
||||
log_email_remote=Client address: $1
|
||||
|
||||
nice_size_PB=PB
|
||||
@@ -433,6 +438,37 @@ file_truncated_message=fetched $1 of data, truncated $2 out of $3
|
||||
file_truncated_message_head=fetched beginning $1 of data, truncated $2 out of $3
|
||||
file_truncated_message_tail=fetched ending $1 of data, truncated $2 out of $3
|
||||
|
||||
time_ago_col=Time ago
|
||||
time_ago_year=$1 year ago
|
||||
time_ago_years=$1 years ago
|
||||
time_ago_month=$1 month ago
|
||||
time_ago_months=$1 months ago
|
||||
time_ago_week=$1 week ago
|
||||
time_ago_weeks=$1 weeks ago
|
||||
time_ago_day=$1 day ago
|
||||
time_ago_days=$1 days ago
|
||||
time_ago_hour=$1 hour ago
|
||||
time_ago_hours=$1 hours ago
|
||||
time_ago_min=$1 minute ago
|
||||
time_ago_mins=$1 minutes ago
|
||||
time_ago_sec=$1 second ago
|
||||
time_ago_secs=$1 seconds ago
|
||||
time_in_year=In $1 year
|
||||
time_in_years=In $1 years
|
||||
time_in_month=In $1 month
|
||||
time_in_months=In $1 months
|
||||
time_in_week=In $1 week
|
||||
time_in_weeks=In $1 weeks
|
||||
time_in_day=In $1 day
|
||||
time_in_days=In $1 days
|
||||
time_in_hour=In $1 hour
|
||||
time_in_hours=In $1 hours
|
||||
time_in_min=In $1 minute
|
||||
time_in_mins=In $1 minutes
|
||||
time_in_sec=In $1 second
|
||||
time_in_secs=In $1 seconds
|
||||
time_now=Just now
|
||||
|
||||
defcert_error=Default $1 bundled SSL certificate is being used. It is highly advised to update default <tt>$2</tt> certificate before proceeding with login.
|
||||
|
||||
main_error_details=Error details
|
||||
|
||||
@@ -148,6 +148,5 @@ file_truncated_message=$1 داده را واکشی کرد ،$2 از$3 کوتاه
|
||||
file_truncated_message_head=شروع$1 داده ها ،$2 از$3 کوتاه شده است
|
||||
file_truncated_message_tail=واکشی شده$1 داده پایان یافته ،$2 از$3 کوتاه شده
|
||||
|
||||
defcert_error=Ú¯ÙØ§ÙÛ SSL ÙÙ
Ø±Ø§Ù Ù¾ÛØ´Ùرض $1 در ØØ§Ù Ø§Ø³ØªÙØ§Ø¯Ù است. Ø¨ÙØ´Ø¯Øª ØªÙØµÛÙ Ù
ÛØ´Ùد ÙØ¨Ù از ÙØ±Ùد Ø¨Ù Ø³ÛØ³ØªÙ
Ø Ú¯ÙØ§ÙÛ Ù¾ÛØ´Ùرض <tt>$2</tt> را Ø¨ÙØ±ÙزرساÙÛ Ú©ÙÛØ¯.
|
||||
|
||||
main_error_details=جزئیات خطا
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
<header> Ù¾ÛÚ©Ø±Ø¨ÙØ¯Û Ø³Ø±ÙØ± LDAP </header> اÛÙ ØµÙØÙ Ø¨Ù Ø´Ù
ا اÙ
کا٠Ù
Û Ø¯ÙØ¯ تا Ø³Ø±ÙØ± LDAP را ک٠اÛÙ Ø³ÛØ³ØªÙ
سرÙÛØ³ Ú¯ÛØ±Ùد٠با Ø¢ÙÙØ§ ارتباط Ø¨Ø±ÙØ±Ø§Ø± Ù
Û Ú©ÙØ¯ Ø Ø§ÙØªØ®Ø§Ø¨ Ú©ÙÛØ¯ تا Ø§Ø·ÙØ§Ø¹Ø§Øª کاربر ٠گرÙ٠را بدست Ø¢ÙØ±Ûد. Ù
ÙÙ
ترÛ٠زÙ
ÛÙÙ <b>ÙØ§Ù
ÙØ§Û Ù
ÛØ²Ø¨Ø§Ù Ø³Ø±ÙØ± LDAP است</b> ک٠در Ø¢Ù Ø´Ù
ا Ø¨Ø§ÛØ¯ ÙØ§Ù
Ù
ÛØ²Ø¨Ø§Ù ÛØ§ آدرس IP Ø³Ø±ÙØ± LDAP را در Ø´Ø¨Ú©Ù Ø®ÙØ¯ ÙØ§Ø±Ø¯ Ú©ÙÛØ¯. اگر Ø¨ÛØ´ از ÛÚ© Ø³Ø±ÙØ± تکرار Ø´Ø¯Ù Ø¯Ø§Ø±ÛØ¯ Ø ÙÙ
٠آÙÙØ§ Ù
Û ØªÙØ§ÙÙØ¯ در اÛÙØ¬Ø§ ÙØ§Ø±Ø¯ Ø´ÙÙØ¯. <p style=";text-align:right;direction:rtl"> <b>ÙØ±Ùد Ø¨Ø±Ø§Û Ú©Ø§Ø±Ø¨Ø±Ø§Ù ØºÛØ± Ø±ÛØ´Ù</b> Ù <b>Ú¯Ø°Ø±ÙØ§Ú٠در</b> زÙ
ÛÙÙ ÙØ§Û <b>Ú©Ø§Ø±Ø¨Ø±Ø§Ù ØºÛØ± Ø±ÛØ´Ù</b> Ø¨Ø§ÛØ¯ Ø¨Ù ØªØ±ØªÛØ¨ با ÛÚ© ÙØ§Ù
Ú©Ø§Ø±Ø¨Ø±Û Ù Ø±Ù
ز Ø¹Ø¨ÙØ± Ú©Ù ØªÙØ³Ø· Ø³Ø±ÙØ± LDAP Ù¾Ø°ÛØ±Ùت٠شد٠است Ø Ù¾Ø± Ø´ÙØ¯. ÙØ±Ùد Ø¨Ù Ø·ÙØ± Ù
عÙ
ÙÙ ÛÚ© ÙØ§Ù
Ù
Ù
تاز LDAP Ø®ÙØ§Ùد Ø¨ÙØ¯ Ø Ù
اÙÙØ¯ <i>cn = Ù
Ø¯ÛØ± Ø dc = my-domain Ø dc = com</i> . <p style=";text-align:right;direction:rtl"> از Ø¢ÙØ¬Ø§ ک٠اÛÙ ÙØ±Ùد ٠رÙ
ز ÙØ±Ùد Ø¨Ø±Ø§Û ÙÙ
٠کاربرا٠ÛÙÙÛکس در Ø³ÛØ³ØªÙ
Ø´Ù
ا ÙØ§Ø¨Ù Ù
Ø´Ø§ÙØ¯Ù است Ø Ø¨Ù Ø·ÙØ± Ù
عÙ
Ù٠بر رÙÛ ÛÚ© کاربر LDAP با اÙ
ØªÛØ§Ø²Ø§Øª Ù
ØØ¯Ùد ØªÙØ¸ÛÙ
شد٠است (Ù
اÙÙØ¯ Ø¯Ø³ØªØ±Ø³Û ÙÙØ· Ø®ÙØ§ÙدÙÛ Ù Ø§Ù
کا٠Ù
Ø´Ø§ÙØ¯Ù رÙ
Ø²ÙØ§Û Ø¹Ø¨ÙØ±). از Ø¢ÙØ¬Ø§ Ú©Ù Ú¯Ø°Ø±ÙØ§ÚÙÙØ§ در Ø¨Ø±Ø®Û Ø´Ø±Ø§ÛØ· Ø¨Ø§ÛØ¯ Ø¨Ø±Ø±Ø³Û Ø´ÙÙØ¯ Ø <b>ÙØ±Ùد</b> ب٠<b>Ø³ÛØ³ØªÙ
کاربر</b> Ù <b>Ú¯Ø°Ø±ÙØ§ÚÙ Ø¨Ø±Ø§Û ÙØ³Ù
ØªÙØ§Û کاربر root</b> Ø¨Ø§ÛØ¯ رÙÛ ÛÚ© ÙØ§Ù
Ú©Ø§Ø±Ø¨Ø±Û Ù Ø±Ù
Ø²Ø¹Ø¨ÙØ± LDAP ØªÙØ¸ÛÙ
Ø´ÙØ¯ Ú©Ù Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ú©Ù Ø³Ø±ÙØ± LDAP را Ø®ÙØ§Ùد٠باشد. اÛ٠رÙ
ز دÙÙ
در پرÙÙØ¯Ù Ø§Û Ø°Ø®ÛØ±Ù Ù
Û Ø´ÙØ¯ Ú©Ù ÙÙØ· ØªÙØ³Ø· کاربر <tt>root</tt> ÙØ§Ø¨Ù Ø®ÙØ§Ùد٠است Ø Ù Ø§Ø² اÛÙ Ø±Ù Ø¨Ø±Ø§Û Ú©Ø§Ø±Ø¨Ø±Ø§Ù Ù
عÙ
ÙÙÛ ØºÛØ± ÙØ§Ø¨Ù اعتÙ
اد ÛÙÙÛکس اÙ
٠است. <p style=";text-align:right;direction:rtl"><footer>
|
||||
<header>پیکربندی سرور LDAP</header> این صفحه به شما امکان میدهد سرور LDAP را که این سیستم کلاینت برای دریافت اطلاعات کاربر و گروه با آن تماس خواهد گرفت، انتخاب کنید. مهمترین فیلد، <b>نام میزبان سرور LDAP</b> است که باید نام میزبان یا آدرس IP سرور LDAP در شبکه خود را در آن وارد کنید. اگر بیش از یک سرور تکثیر شده دارید، میتوانید همه آنها را در اینجا وارد کنید.<p style=";text-align:right;direction:rtl"> فیلدهای <b>«ورود برای کاربران غیر ریشه»</b> و <b>«رمز عبور برای کاربران غیر ریشه»</b> باید به ترتیب با نام کاربری و رمز عبوری که توسط سرور LDAP پذیرفته شده است، پر شوند. نام کاربری معمولاً یک نام متمایز LDAP مانند <i>cn=Manager,dc=my-domain,dc=com</i> خواهد بود.<p style=";text-align:right;direction:rtl"> از آنجا که این نام کاربری و رمز عبور برای همه کاربران یونیکس در سیستم شما قابل مشاهده است، معمولاً روی نام کاربری و رمز عبور یک کاربر LDAP با امتیازات محدود (مانند دسترسی فقط خواندنی و عدم امکان مشاهده رمزهای عبور) تنظیم میشود. از آنجا که در برخی شرایط، رمزهای عبور باید بررسی شوند، فیلدهای <b>«ورود» برای کاربر ریشه</b> و <b>«رمز عبور» برای کاربر ریشه</b> باید روی نام کاربری و رمز عبور LDAP تنظیم شوند که دسترسی خواندن به کل سرور LDAP را دارد. این رمز عبور دوم در فایلی ذخیره میشود که فقط توسط کاربر <tt>ریشه</tt> قابل خواندن است و بنابراین از کاربران معمولی و غیر قابل اعتماد یونیکس در امان است.<p style=";text-align:right;direction:rtl"><footer>
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ index_eperl2=خطایی که توسط Perl هنگام تلاش برای بارگ
|
||||
index_eldap=$1 برای تنظیم پیکربندی ماژول <a href='$2'></a> اینجا کلیک کنید.
|
||||
index_eschema=وبمین به سرور LDAP متصل شده است ، اما نتوانسته است این طرح را واگذار کند. اطمینان حاصل کنید که دسترسی در ماژول <a href='$1'>LDAP Server</a> رد نشده است.
|
||||
index_eimap=$1 شاید <a href='$2'>پیکربندی ماژول شما</a> نادرست باشد.
|
||||
index_emd5=اÛÙ Ù
اÚÙÙ Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از رÙ
Ø²Ú¯Ø°Ø§Ø±Û MD5 Ø¨Ø±Ø§Û Ú¯Ø°Ø±ÙØ§ÚÙÙØ§ <a href='$1'>Ù¾ÛÚ©Ø±Ø¨ÙØ¯Û شدÙ</a> شد٠است Ø Ø§Ù
ا Ù
اÚÙÙ$2 Perl ÙØµØ¨ ÙØ´Ø¯Ù است. <a href='$3'>اÛÙØ¬Ø§ را Ú©ÙÛÚ© Ú©ÙÛØ¯</a> تا Ù
اÚÙÙ$2 Ø¨Ø§Ø±Ú¯ÛØ±Û Ù ÙØµØ¨ Ø´ÙØ¯.
|
||||
index_eslappasswd=اÛÙ Ù
اÚÙÙ Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از رÙ
Ø²Ú¯Ø°Ø§Ø±Û LDAP MD5 Ø¨Ø±Ø§Û Ú¯Ø°Ø±ÙØ§ÚÙÙØ§ <a href='$1'>Ù¾ÛÚ©Ø±Ø¨ÙØ¯Û شدÙ</a> شد٠است Ø Ø§Ù
ا Ø¨Ø±ÙØ§Ù
Ù <tt>$2</tt> Ú©Ù Ø¨Ø±Ø§Û Ø±Ù
Ø²Ú¯Ø°Ø§Ø±Û Ø±Ù
Ø²Ø¹Ø¨ÙØ± Ø§Ø³ØªÙØ§Ø¯Ù شد٠است ÙØµØ¨ ÙØ´Ø¯Ù است.
|
||||
index_emd5=این ماژول <a href='$1'>برای استفاده از رمزگذاری MD5 برای رمزهای عبور پیکربندی شده است</a>، اما ماژول Perl $2 نصب نشده است. <a href='$3'>برای دانلود و نصب ماژول $2 اینجا کلیک کنید</a>.
|
||||
index_eslappasswd=این ماژول <a href='$1'>برای استفاده از رمزگذاری LDAP MD5 برای رمزهای عبور پیکربندی شده است</a>، اما برنامه <tt>$2</tt> که برای رمزگذاری رمز عبور استفاده میشود، نصب نشده است.
|
||||
index_eusearch=جستجوی کاربران زیر $1 : $2 انجام نشد
|
||||
index_uadd=کاربر جدید LDAP اضافه کنید.
|
||||
index_gadd=یک گروه جدید LDAP اضافه کنید.
|
||||
|
||||
@@ -20,6 +20,7 @@ journal_journalctl_unit=Messages for specific unit
|
||||
journal_since0=Latest available
|
||||
journal_since1=Real-time follow
|
||||
journal_since2=Current boot
|
||||
journal_since2-1=Last boot
|
||||
journal_since3=7 days ago
|
||||
journal_since4=24 hours ago
|
||||
journal_since5=8 hours ago
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
index_title=نمایشگر گزارش های سیستم
|
||||
index_elogs=هیچ گزارشی برای نمایش یافت نشد
|
||||
index_to=مقصد ورود به سیستم
|
||||
index_rule=Ù¾ÛØ§Ù
ÙØ§ Ø§ÙØªØ®Ø§Ø¨ Ø´Ø¯ÙØ¯
|
||||
index_rule=توضیحات
|
||||
index_file=پرونده $1
|
||||
index_cmd=خروجی از $1
|
||||
index_return=نمایشگر لاگ های سیستم
|
||||
|
||||
@@ -35,6 +35,7 @@ return [
|
||||
{ "" => $text{'journal_since0'} },
|
||||
{ "--follow" => $text{'journal_since1'} },
|
||||
{ "--boot" => $text{'journal_since2'} },
|
||||
{ "--boot -1" => $text{'journal_since2-1'} },
|
||||
{ "--since '7 days ago'" => $text{'journal_since3'} },
|
||||
{ "--since '24 hours ago'" => $text{'journal_since4'} },
|
||||
{ "--since '8 hours ago'" => $text{'journal_since5'} },
|
||||
|
||||
@@ -2906,11 +2906,12 @@ if ($@) {
|
||||
return $rv;
|
||||
}
|
||||
|
||||
# send_text_mail(from, to, cc, subject, body, [smtp-server])
|
||||
# send_text_mail(from, to, cc, subject, body, [smtp-server],
|
||||
# [smtp-user, smtp-pass])
|
||||
# A convenience function for sending a email with just a text body
|
||||
sub send_text_mail
|
||||
{
|
||||
local ($from, $to, $cc, $subject, $body, $smtp) = @_;
|
||||
local ($from, $to, $cc, $subject, $body, $smtp, $user, $pass) = @_;
|
||||
local $cs = &get_charset();
|
||||
local $attach =
|
||||
{ 'headers' => [ [ 'Content-Type', 'text/plain; charset='.$cs ],
|
||||
@@ -2922,7 +2923,7 @@ local $mail = { 'headers' =>
|
||||
[ 'Cc', $cc ],
|
||||
[ 'Subject', &encode_mimewords($subject) ] ],
|
||||
'attach' => [ $attach ] };
|
||||
return &send_mail($mail, undef, 1, 0, $smtp);
|
||||
return &send_mail($mail, undef, 1, 0, $smtp, $user, $pass);
|
||||
}
|
||||
|
||||
# make_from_line(address, [time])
|
||||
|
||||
@@ -31,7 +31,7 @@ show_count=Afficher le nombre de messages dans la boîte de réception?,1,1-Oui,
|
||||
sort_mode=Trier les boîtes aux lettres par,1,2-Taille,1-Nom d'utilisateur,0-Commander dans le fichier de mot de passe
|
||||
show_mail=Afficher uniquement les utilisateurs qui ont du courrier?,1,1-Oui,0-Non
|
||||
size_mode=Inclure tous les dossiers dans la taille?,1,1-Oui,0-Non (premier dossier uniquement)
|
||||
ignore_users=Ignorer ces noms d'utilisateur (ne pas afficher),15,Liste des utilisateurs ignorés
|
||||
ignore_users=Ignorer ces noms d'utilisateur (ne pas afficher),15,userIgnoreList
|
||||
ignore_users_enabled=Ignorer l'état de la liste,1,1-Activé,0-Désactivé
|
||||
|
||||
line0.5=Options de dossier,11
|
||||
|
||||
@@ -2041,11 +2041,10 @@ return @rv;
|
||||
# Properly closes all open POP3 and IMAP sessions
|
||||
sub pop3_logout_all
|
||||
{
|
||||
local $f;
|
||||
foreach $f (keys %pop3_login_handle) {
|
||||
foreach my $f (keys %pop3_login_handle) {
|
||||
&pop3_logout($pop3_login_handle{$f}, 1);
|
||||
}
|
||||
foreach $f (keys %imap_login_handle) {
|
||||
foreach my $f (keys %imap_login_handle) {
|
||||
&imap_logout($imap_login_handle{$f}, 1);
|
||||
}
|
||||
}
|
||||
@@ -2057,21 +2056,48 @@ foreach $f (keys %imap_login_handle) {
|
||||
# unread, and the number special.
|
||||
sub imap_login
|
||||
{
|
||||
local ($folder) = @_;
|
||||
local $defport = $folder->{'ssl'} ? 993 : 143;
|
||||
local $port = $folder->{'port'} || $defport;
|
||||
local $key = join("/", $folder->{'server'}, $port, $folder->{'user'});
|
||||
local $h = $imap_login_handle{$key};
|
||||
local @rv;
|
||||
if (!$h) {
|
||||
my ($folder) = @_;
|
||||
my $defport = $folder->{'ssl'} ? 993 : 143;
|
||||
my $port = $folder->{'port'} || $defport;
|
||||
my $key = join("/", $folder->{'server'}, $port, $folder->{'user'});
|
||||
my $h = $imap_login_handle{$key};
|
||||
my @rv;
|
||||
if (!$h && $folder->{'server'} eq '*') {
|
||||
# Try running the Dovecot imap command
|
||||
my $imapcmd;
|
||||
foreach my $c ("/usr/libexec/dovecot/imap",
|
||||
"/usr/lib/dovecot/imap") {
|
||||
if (&has_command($c)) {
|
||||
$imapcmd = $c;
|
||||
last;
|
||||
}
|
||||
}
|
||||
$imapcmd || return (0, "Dovecot imap command not found");
|
||||
$imapcmd .= " -u ".($folder->{'user'} eq "*" ||
|
||||
!$folder->{'user'} ? $remote_user : $folder->{'user'});
|
||||
print DEBUG "Running IMAP server $imapcmd\n";
|
||||
eval "use IPC::Open3";
|
||||
if ($@) {
|
||||
return (0, "Missing IPC::Open3 Perl module");
|
||||
}
|
||||
my ($writefh, $readfh, $errorfh);
|
||||
my $pid = open3($writefh, $readfh, $errorfh, $imapcmd);
|
||||
print DEBUG "pid=$pid\n";
|
||||
$pid || return (0, "Failed to run $imapcmd");
|
||||
my $l = <$readfh>; # Skip PREAUTH line
|
||||
$h = [ $writefh, $readfh, $pid ];
|
||||
$imap_login_handle{$key} = $h;
|
||||
$imap_login_ssl{$h} = 0;
|
||||
}
|
||||
elsif (!$h && $folder->{'server'} ne '*') {
|
||||
# Need to open socket
|
||||
$h = ($folder->{'ssl'} ? "SSL" : "")."IMAP".time().++$imap_login_count;
|
||||
local $error;
|
||||
my $error;
|
||||
print DEBUG "Connecting to IMAP server $folder->{'server'}:$port\n";
|
||||
&open_socket($folder->{'server'}, $port, $h, \$error);
|
||||
print DEBUG "IMAP error=$error\n" if ($error);
|
||||
return (0, $error) if ($error);
|
||||
local $os = select($h); $| = 1; select($os);
|
||||
my $os = select($h); $| = 1; select($os);
|
||||
if ($folder->{'ssl'}) {
|
||||
# Switch to SSL mode
|
||||
eval "use Net::SSLeay";
|
||||
@@ -2091,9 +2117,9 @@ if (!$h) {
|
||||
# Login normally
|
||||
@rv = &imap_command($h);
|
||||
return (0, $rv[3] || "No response") if (!$rv[0]);
|
||||
local $user = $folder->{'user'} eq '*' ? $remote_user
|
||||
my $user = $folder->{'user'} eq '*' ? $remote_user
|
||||
: $folder->{'user'};
|
||||
local $pass = $folder->{'pass'};
|
||||
my $pass = $folder->{'pass'};
|
||||
$pass =~ s/\\/\\\\/g;
|
||||
$pass =~ s/"/\\"/g;
|
||||
@rv = &imap_command($h,"login \"$user\" \"$pass\"");
|
||||
@@ -2105,8 +2131,8 @@ if (!$h) {
|
||||
# Select the right folder (if one was given)
|
||||
@rv = &imap_command($h, "select \"".($folder->{'mailbox'} || "INBOX")."\"");
|
||||
return (3, $rv[3]) if (!$rv[0]);
|
||||
local $count = $rv[2] =~ /\*\s+(\d+)\s+EXISTS/i ? $1 : undef;
|
||||
local $uidnext = $rv[2] =~ /UIDNEXT\s+(\d+)/ ? $1 : undef;
|
||||
my $count = $rv[2] =~ /\*\s+(\d+)\s+EXISTS/i ? $1 : undef;
|
||||
my $uidnext = $rv[2] =~ /UIDNEXT\s+(\d+)/ ? $1 : undef;
|
||||
return (1, $h, $count, $uidnext);
|
||||
}
|
||||
|
||||
@@ -2124,6 +2150,15 @@ if (!$h) {
|
||||
my $ssl_con = $imap_login_ssl{$h};
|
||||
my @rv;
|
||||
|
||||
# Get file handles for writing and reading
|
||||
my ($writefh, $readfh);
|
||||
if (ref($h)) {
|
||||
($writefh, $readfh) = @$h;
|
||||
}
|
||||
else {
|
||||
$writefh = $readfh = $h;
|
||||
}
|
||||
|
||||
# Send the command, and read lines until a non-* one is found
|
||||
my $id = $$."-".$imap_command_count++;
|
||||
my ($first, $rest) = split(/\r?\n/, $c, 2);
|
||||
@@ -2136,8 +2171,8 @@ if ($rest) {
|
||||
$l = Net::SSLeay::ssl_read_until($ssl_con);
|
||||
}
|
||||
else {
|
||||
print $h "$id $first\r\n";
|
||||
$l = <$h>;
|
||||
print $writefh "$id $first\r\n";
|
||||
$l = <$readfh>;
|
||||
}
|
||||
print DEBUG "imap line $l";
|
||||
if ($l =~ /^\+/) {
|
||||
@@ -2145,7 +2180,7 @@ if ($rest) {
|
||||
Net::SSLeay::write($ssl_con, $rest."\r\n");
|
||||
}
|
||||
else {
|
||||
print $h $rest."\r\n";
|
||||
print $writefh $rest."\r\n";
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -2159,7 +2194,7 @@ elsif ($c) {
|
||||
Net::SSLeay::write($ssl_con, "$id $c\r\n");
|
||||
}
|
||||
else {
|
||||
print $h "$id $c\r\n";
|
||||
print $writefh "$id $c\r\n";
|
||||
}
|
||||
print DEBUG "imap command $id $c\n";
|
||||
}
|
||||
@@ -2169,7 +2204,7 @@ while(1) {
|
||||
$l = Net::SSLeay::ssl_read_until($ssl_con);
|
||||
}
|
||||
else {
|
||||
$l = <$h>;
|
||||
$l = <$readfh>;
|
||||
}
|
||||
print DEBUG "imap line $l";
|
||||
last if (!$l);
|
||||
@@ -2191,7 +2226,7 @@ while(1) {
|
||||
$r = length($buf);
|
||||
}
|
||||
else {
|
||||
$r = read($h, $buf, $size-$got);
|
||||
$r = read($readfh, $buf, $size-$got);
|
||||
}
|
||||
return (0, [ $err ], $err, $err) if ($r <= 0);
|
||||
$rv[$#rv] .= $buf;
|
||||
@@ -2229,12 +2264,19 @@ else {
|
||||
# imap_logout(handle, doquit)
|
||||
sub imap_logout
|
||||
{
|
||||
local @rv = $_[1] ? &imap_command($_[0], "close") : (1, undef);
|
||||
local $f;
|
||||
foreach $f (keys %imap_login_handle) {
|
||||
delete($imap_login_handle{$f}) if ($imap_login_handle{$f} eq $_[0]);
|
||||
my ($h, $quit) = @_;
|
||||
my @rv = $quite ? &imap_command($h, "close") : (1, undef);
|
||||
foreach my $f (keys %imap_login_handle) {
|
||||
delete($imap_login_handle{$f}) if ($imap_login_handle{$f} eq $h);
|
||||
}
|
||||
if (ref($h)) {
|
||||
close($h->[0]);
|
||||
close($h->[1]);
|
||||
waitpid($h->[2], 0);
|
||||
}
|
||||
else {
|
||||
close($h);
|
||||
}
|
||||
close($_[0]);
|
||||
return @rv;
|
||||
}
|
||||
|
||||
|
||||
61
makedist.pl
61
makedist.pl
@@ -1,34 +1,28 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Builds a tar.gz package of a specified Webmin version
|
||||
|
||||
if ($0 =~ /^(.*)\//) {
|
||||
chdir($1);
|
||||
}
|
||||
@ARGV == 1 || @ARGV == 2 || @ARGV == 3 || usage();
|
||||
if ($ARGV[0] eq "-minimal" || $ARGV[0] eq "--minimal") {
|
||||
$min++;
|
||||
shift(@ARGV);
|
||||
}
|
||||
if ($ARGV[0] =~ /^--exclude-modules/) {
|
||||
$exclude_modules = $ARGV[0];
|
||||
shift(@ARGV);
|
||||
}
|
||||
if ($ARGV[0] =~ /^--product-type/) {
|
||||
$product_type = $ARGV[0];
|
||||
$product_type =~ s/--product-type=//;
|
||||
if ($product_type =~ /^(minimal|essential)$/) {
|
||||
$product_suff = "-$product_type";
|
||||
$product_pref = "$product_type-";
|
||||
# Parse command line options
|
||||
$mod_list = 'full';
|
||||
@ARGV = map { /^--\S+\s+/ ? split(/\s+/, $_) : $_ } @ARGV;
|
||||
while (@ARGV && $ARGV[0] =~ /^--?/) {
|
||||
my $opt = shift(@ARGV);
|
||||
if ($opt eq '--minimal' || $opt eq '-minimal') {
|
||||
$min = 1;
|
||||
next;
|
||||
}
|
||||
shift(@ARGV);
|
||||
if ($opt eq '--mod-list') {
|
||||
$mod_list = shift(@ARGV) // usage();
|
||||
next;
|
||||
}
|
||||
usage();
|
||||
}
|
||||
@ARGV == 1 || usage();
|
||||
$fullvers = $ARGV[0];
|
||||
$fullvers =~ /^([0-9\.]+)(\-(\d+))?$/ || usage();
|
||||
$vers = $1;
|
||||
$release = $3;
|
||||
$tardir = $min ? "minimal" : "tarballs";
|
||||
$vfile = $product_pref ? "$product_pref$fullvers" : $min ? "$fullvers-minimal" : $fullvers;
|
||||
$zipdir = "zips";
|
||||
$fullvers =~ /^([0-9\.]+)(?:-(\d+))?$/ || usage();
|
||||
($vers, $release) = ($1, $2);
|
||||
$tardir = $min ? 'minimal' : 'tarballs';
|
||||
$vfile = $min ? "$fullvers-minimal" : $fullvers;
|
||||
$zipdir = 'zips';
|
||||
$vers || usage();
|
||||
|
||||
@files = ("config.cgi", "config-*-linux",
|
||||
@@ -70,20 +64,15 @@ if ($min) {
|
||||
}
|
||||
else {
|
||||
# All the modules
|
||||
my $mod_def_list;
|
||||
my $mods_list;
|
||||
my $curr_dir = $0;
|
||||
($curr_dir) = $curr_dir =~ /^(.+)\/[^\/]+$/;
|
||||
$curr_dir = "." if ($curr_dir !~ /^\//);
|
||||
open(my $fh, '<', "$curr_dir/mod_def_list.txt") || die "Error opening \"mod_def_list.txt\" : $!\n";
|
||||
$mod_def_list = do { local $/; <$fh> };
|
||||
open(my $fh, '<', "$curr_dir/mod_${mod_list}_list.txt") ||
|
||||
die "Error opening \"mod_${mod_list}_list.txt\" : $!\n";
|
||||
$mods_list = do { local $/; <$fh> };
|
||||
close($fh);
|
||||
@mlist = split(/\s+/, $mod_def_list);
|
||||
if ($exclude_modules) {
|
||||
$exclude_modules =~ s/--exclude-modules=//;
|
||||
my @mlist_excluded =
|
||||
grep { my $f = $_; ! grep $_ eq $f, split(',', $exclude_modules) } @mlist;
|
||||
@mlist = @mlist_excluded;
|
||||
}
|
||||
@mlist = split(/\s+/, $mods_list);
|
||||
}
|
||||
|
||||
# Build EOL data
|
||||
@@ -296,6 +285,6 @@ close(ARFILE);
|
||||
|
||||
sub usage
|
||||
{
|
||||
die "usage: makedist.pl [-minimal] [--exclude-modules] <version>";
|
||||
die "Usage: $0 [--minimal] [--mod-list type] <version>\n";
|
||||
}
|
||||
|
||||
|
||||
198
makemoduledeb.pl
198
makemoduledeb.pl
@@ -25,14 +25,63 @@ my $changelog_file = "$debian_dir/changelog";
|
||||
my $files_file = "$debian_dir/files";
|
||||
|
||||
# Parse command-line args
|
||||
my ($force_theme, $url, $upstream, $provides, $debdepends, $debrecommends,
|
||||
my ($force_theme, $url, $upstream,
|
||||
$no_prefix, $force_usermin, $release, $allow_overwrite, $final_mod,
|
||||
$dsc_file, $dir, $ver, @exclude);
|
||||
$dsc_file, $dir, $ver, @exclude,
|
||||
|
||||
$debdepends, $nodebdepends, $debrecommends, $nodebrecommends,
|
||||
$no_requires, $no_recommends, $no_suggests, $no_conflicts, $no_replaces,
|
||||
$no_breaks, $no_provides, $no_obsoletes);
|
||||
|
||||
my $mod_list = 'full';
|
||||
|
||||
while(@ARGV) {
|
||||
my $a = shift(@ARGV);
|
||||
if ($a eq "--force-theme") {
|
||||
$force_theme = 1;
|
||||
if ($a eq "--deb-depends" || $a eq "--mod-depends") {
|
||||
$debdepends = 1;
|
||||
}
|
||||
elsif ($a eq "--no-mod-depends") {
|
||||
$nodebdepends = 1;
|
||||
}
|
||||
elsif ($a eq "--deb-recommends" || $a eq "--mod-recommends") {
|
||||
$debrecommends = 1;
|
||||
}
|
||||
elsif ($a eq "--no-mod-recommends") {
|
||||
$nodebrecommends = 1;
|
||||
}
|
||||
# --recommends, --suggests, --conflicts, --provides and --obsoletes are
|
||||
# not for Webmin modules, and not meant to have prefix, and populated
|
||||
# from module.info automatically
|
||||
# --no-requires, --no-recommends, --no-suggests,
|
||||
# --no-conflicts, --no-replaces, --no-breaks, --no-provides,
|
||||
# --no-obsoletes can be used to disable the automatic population of
|
||||
# these fields from module.info
|
||||
elsif ($a eq "--no-requires") {
|
||||
$no_requires = 1;
|
||||
}
|
||||
elsif ($a eq "--no-recommends") {
|
||||
$no_recommends = 1;
|
||||
}
|
||||
elsif ($a eq "--no-suggests") {
|
||||
$no_suggests = 1;
|
||||
}
|
||||
elsif ($a eq "--no-conflicts") {
|
||||
$no_conflicts = 1;
|
||||
}
|
||||
elsif ($a eq "--no-replaces") {
|
||||
$no_replaces = 1;
|
||||
}
|
||||
elsif ($a eq "--no-breaks") {
|
||||
$no_breaks = 1;
|
||||
}
|
||||
elsif ($a eq "--no-provides") {
|
||||
$no_provides = 1;
|
||||
}
|
||||
elsif ($a eq "--no-obsoletes") {
|
||||
$no_obsoletes = 1;
|
||||
}
|
||||
elsif ($a eq "--no-prefix") {
|
||||
$no_prefix = 1;
|
||||
}
|
||||
elsif ($a eq "--licence" || $a eq "--license") {
|
||||
$licence = shift(@ARGV);
|
||||
@@ -46,17 +95,8 @@ while(@ARGV) {
|
||||
elsif ($a eq "--upstream") {
|
||||
$upstream = shift(@ARGV);
|
||||
}
|
||||
elsif ($a eq "--provides") {
|
||||
$provides = shift(@ARGV);
|
||||
}
|
||||
elsif ($a eq "--deb-depends") {
|
||||
$debdepends = 1;
|
||||
}
|
||||
elsif ($a eq "--deb-recommends") {
|
||||
$debrecommends = 1;
|
||||
}
|
||||
elsif ($a eq "--no-prefix") {
|
||||
$no_prefix = 1;
|
||||
elsif ($a eq "--release") {
|
||||
$release = shift(@ARGV);
|
||||
}
|
||||
elsif ($a eq "--usermin") {
|
||||
$force_usermin = 1;
|
||||
@@ -67,18 +107,21 @@ while(@ARGV) {
|
||||
elsif ($a eq "--dir") {
|
||||
$final_mod = shift(@ARGV);
|
||||
}
|
||||
elsif ($a eq "--release") {
|
||||
$release = shift(@ARGV);
|
||||
}
|
||||
elsif ($a eq "--allow-overwrite") {
|
||||
$allow_overwrite = 1;
|
||||
}
|
||||
elsif ($a eq "--dsc-file") {
|
||||
$dsc_file = shift(@ARGV);
|
||||
}
|
||||
elsif ($a eq "--force-theme") {
|
||||
$force_theme = 1;
|
||||
}
|
||||
elsif ($a eq "--exclude") {
|
||||
push(@exclude, shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--mod-list") {
|
||||
$mod_list = shift(@ARGV);
|
||||
}
|
||||
elsif ($a =~ /^\-\-/) {
|
||||
print STDERR "Unknown option $a\n";
|
||||
exit(1);
|
||||
@@ -93,23 +136,39 @@ while(@ARGV) {
|
||||
}
|
||||
}
|
||||
|
||||
# Disable module's depends and recommends if set in extra flags
|
||||
$debdepends = 0 if ($nodebdepends);
|
||||
$debrecommends = 0 if ($nodebrecommends);
|
||||
|
||||
# Validate args
|
||||
if (!$dir) {
|
||||
print "usage: ", CYAN, "makemoduledeb.pl ";
|
||||
print YELLOW, "[--force-theme]\n";
|
||||
print " [--deb-depends]\n";
|
||||
print CYAN, "<module> [version]";
|
||||
print YELLOW, "\n";
|
||||
print " [--mod-depends] [--no-mod-depends]\n";
|
||||
print " [--mod-recommends] [--no-mod-recommends]\n";
|
||||
print " [--no-requires]\n";
|
||||
print " [--no-suggests]\n";
|
||||
print " [--no-conflicts]\n";
|
||||
print " [--no-replaces]\n";
|
||||
print " [--no-breaks]\n";
|
||||
print " [--no-provides]\n";
|
||||
print " [--no-obsoletes]\n";
|
||||
print " [--no-prefix]\n";
|
||||
print " [--licence name]\n";
|
||||
print " [--email 'name <address>']\n";
|
||||
print " [--url url]\n";
|
||||
print " [--upstream 'name <address>']\n";
|
||||
print " [--provides 'name1 name2']\n";
|
||||
print " [--release version]\n";
|
||||
print " [--usermin]\n";
|
||||
print " [--target-dir directory]\n";
|
||||
print " [--dir directory-in-package]\n";
|
||||
print " [--allow-overwrite]\n";
|
||||
print " [--dsc-file file.dsc]\n";
|
||||
print CYAN, " <module> ";
|
||||
print YELLOW, "[version]\n", RESET;
|
||||
print " [--force-theme]\n";
|
||||
print " [--exclude file-or-dir]\n";
|
||||
print " [--mod-list full|core|minimal]\n";
|
||||
print RESET, "\n";
|
||||
exit(1);
|
||||
}
|
||||
chop(my $par = `dirname $dir`);
|
||||
@@ -242,7 +301,7 @@ if ($debdepends && exists($minfo{'depends'})) {
|
||||
my $curr_dir = $0;
|
||||
($curr_dir) = $curr_dir =~ /^(.+)\/[^\/]+$/;
|
||||
$curr_dir = "." if ($curr_dir !~ /^\//);
|
||||
my $mod_def_file = "$curr_dir/mod_def_list.txt";
|
||||
my $mod_def_file = "$curr_dir/mod_${mod_list}_list.txt";
|
||||
next if (! -r $mod_def_file);
|
||||
open(my $fh, '<', $mod_def_file) ||
|
||||
die "Error opening \"$mod_def_file\" : $!\n";
|
||||
@@ -258,20 +317,83 @@ if ($debdepends && exists($minfo{'depends'})) {
|
||||
}
|
||||
my $rdeps = join(", ", @rdeps);
|
||||
|
||||
# Recommends: header
|
||||
# Build list of recommended packages on other DEBs, for inclusion as an DEB
|
||||
# Recommends: header (Webmin module with prefixes)
|
||||
my $rrecom = "";
|
||||
if ($debrecommends && defined($minfo{'recommends'})) {
|
||||
my @rrecom;
|
||||
foreach my $d (split(/\s+/, $minfo{'recommends'})) {
|
||||
push(@rrecom, $prefix.$d);
|
||||
}
|
||||
$rrecom = join(", ", @rrecom);
|
||||
}
|
||||
|
||||
# Build (append) list of required packages (not Webmin modules)
|
||||
my @rrequires = ( );
|
||||
if (!$no_requires && exists($minfo{'deb_requires'})) {
|
||||
foreach my $debrequire (split(/\s+/, $minfo{'deb_requires'})) {
|
||||
push(@rrequires, $debrequire);
|
||||
}
|
||||
$rdeps .= ($rdeps ? ', ' : '') . join(", ", @rrequires) if (@rrequires);
|
||||
}
|
||||
|
||||
# Build (append) list of recommended packages (not Webmin modules)
|
||||
my @rrecommends = ( );
|
||||
if ($debrecommends && exists($minfo{'recommends'})) {
|
||||
foreach my $debrecommend (split(/\s+/, $minfo{'recommends'})) {
|
||||
if (!$no_recommends && exists($minfo{'deb_recommends'})) {
|
||||
foreach my $debrecommend (split(/\s+/, $minfo{'deb_recommends'})) {
|
||||
push(@rrecommends, $debrecommend);
|
||||
}
|
||||
$rrecom .= ($rrecom ? ', ' : '') . join(", ", @rrecommends)
|
||||
if (@rrecommends);
|
||||
}
|
||||
|
||||
# Build (standalone) list of suggested packages (not Webmin modules)
|
||||
my @rsuggests = ( );
|
||||
if (!$no_suggests && exists($minfo{'deb_suggests'})) {
|
||||
foreach my $debsuggest (split(/\s+/, $minfo{'deb_suggests'})) {
|
||||
push(@rsuggests, $debsuggest);
|
||||
}
|
||||
}
|
||||
|
||||
# If module has 'provides', consider it too
|
||||
$provides .= ($provides ? " " : "") . "$prefix$mod";
|
||||
$provides .= ($provides ? " " : "") . $minfo{'provides'}
|
||||
if (exists($minfo{'provides'}));
|
||||
my @provides = split(/\s+/, $provides);
|
||||
$provides = join(", ", @provides);
|
||||
# Build (standalone) list of conflicts (not Webmin modules)
|
||||
my @rconflicts = ( );
|
||||
if (!$no_conflicts && exists($minfo{'deb_conflicts'})) {
|
||||
foreach my $debconflict (split(/\s+/, $minfo{'deb_conflicts'})) {
|
||||
push(@rconflicts, $debconflict);
|
||||
}
|
||||
}
|
||||
|
||||
# Build (standalone) list of replaces (not Webmin modules)
|
||||
my @rreplaces = ( );
|
||||
if (!$no_replaces && exists($minfo{'deb_replaces'})) {
|
||||
foreach my $debreplace (split(/\s+/, $minfo{'deb_replaces'})) {
|
||||
push(@rreplaces, $debreplace);
|
||||
}
|
||||
}
|
||||
|
||||
# Build (standalone) list of breaks (not Webmin modules)
|
||||
my @rbreaks = ( );
|
||||
if (!$no_breaks && exists($minfo{'deb_breaks'})) {
|
||||
foreach my $debbreak (split(/\s+/, $minfo{'deb_breaks'})) {
|
||||
push(@rbreaks, $debbreak);
|
||||
}
|
||||
}
|
||||
|
||||
# Build (standalone) list of obsoletes (replaces+conflicts) (not Webmin modules)
|
||||
if (!$no_obsoletes && exists($minfo{'deb_obsoletes'})) {
|
||||
foreach my $debobsolete (split(/\s+/, $minfo{'deb_obsoletes'})) {
|
||||
push(@rconflicts, $debobsolete);
|
||||
push(@rreplaces, $debobsolete);
|
||||
}
|
||||
}
|
||||
|
||||
# Build (standalone) list of provides (not Webmin modules)
|
||||
my @rprovides = ( );
|
||||
if (!$no_provides && exists($minfo{'deb_provides'})) {
|
||||
foreach my $debprovide (split(/\s+/, $minfo{'deb_provides'})) {
|
||||
push(@rprovides, $debprovide);
|
||||
}
|
||||
}
|
||||
|
||||
# Create the control file
|
||||
my $kbsize = int(($size-1) / 1024)+1;
|
||||
@@ -285,12 +407,16 @@ Architecture: all
|
||||
Essential: no
|
||||
Depends: $rdeps
|
||||
EOF
|
||||
print $CONTROL "Recommends: ", join(", ", @rrecommends), "\n" if (@rrecommends);
|
||||
print $CONTROL "Recommends: $rrecom\n" if ($rrecom);
|
||||
print $CONTROL "Suggests: ", join(", ", @rsuggests), "\n" if (@rsuggests);
|
||||
print $CONTROL "Conflicts: ", join(", ", @rconflicts), "\n" if (@rconflicts);
|
||||
print $CONTROL "Replaces: ", join(", ", @rreplaces), "\n" if (@rreplaces);
|
||||
print $CONTROL "Breaks: ", join(", ", @rbreaks), "\n" if (@rbreaks);
|
||||
print $CONTROL "Provides: ", join(", ", @rprovides), "\n" if (@rprovides);
|
||||
print $CONTROL <<EOF;
|
||||
Pre-Depends: bash, perl
|
||||
Installed-Size: $kbsize
|
||||
Maintainer: $email
|
||||
Provides: $provides
|
||||
Description: $desc
|
||||
EOF
|
||||
close($CONTROL);
|
||||
@@ -465,7 +591,7 @@ if [ "$istheme" = "1" -a "\$1" != "upgrade" ]; then
|
||||
fi
|
||||
fi
|
||||
# Run the pre-uninstall script, if we are not upgrading
|
||||
if [ "$product" = "webmin" -a "\$1" = "0" -a -r "/usr/share/$product/$mod/uninstall.pl" ]; then
|
||||
if [ "$product" = "webmin" -a "\$1" != "upgrade" -a -r "/usr/share/$product/$mod/uninstall.pl" ]; then
|
||||
cd /usr/share/$product
|
||||
WEBMIN_CONFIG=/etc/$product WEBMIN_VAR=/var/$product /usr/share/$product/run-uninstalls.pl $mod
|
||||
fi
|
||||
|
||||
199
makemodulerpm.pl
199
makemodulerpm.pl
@@ -32,43 +32,67 @@ my $release = 1;
|
||||
$ENV{'PATH'} = "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin";
|
||||
my $allow_overwrite = 0;
|
||||
|
||||
my ($force_theme, $rpmdepends, $rpmrecommends, $no_prefix, $set_prefix, $vendor,
|
||||
$provides, $obsoletes, $url, $force_usermin, $final_mod, $sign, $keyname,
|
||||
$epoch, $dir, $ver, @extrareqs, @exclude);
|
||||
my ($force_theme, $no_prefix, $set_prefix,
|
||||
$obsolete_wbm, $vendor, $url, $force_usermin, $final_mod, $sign, $keyname,
|
||||
$epoch, $dir, $ver, @exclude,
|
||||
|
||||
$rpmdepends, $norpmdepends, $rpmrecommends, $norpmrecommends,
|
||||
$no_requires, $no_recommends, $no_suggests, $no_conflicts, $no_provides,
|
||||
$no_obsoletes);
|
||||
|
||||
my $mod_list = 'full';
|
||||
|
||||
# Parse command-line args
|
||||
while(@ARGV) {
|
||||
# XXX Untainting isn't needed when running as non-root?
|
||||
my $a = &untaint(shift(@ARGV));
|
||||
if ($a eq "--force-theme") {
|
||||
$force_theme = 1;
|
||||
}
|
||||
elsif ($a eq "--rpm-dir") {
|
||||
$basedir = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--licence" || $a eq "--license") {
|
||||
$licence = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--rpm-depends") {
|
||||
if ($a eq "--rpm-depends" || $a eq "--mod-depends") {
|
||||
$rpmdepends = 1;
|
||||
}
|
||||
elsif ($a eq "--rpm-recommends") {
|
||||
elsif ($a eq "--no-mod-depends") {
|
||||
$norpmdepends = 1;
|
||||
}
|
||||
elsif ($a eq "--rpm-recommends" || $a eq "--mod-recommends") {
|
||||
$rpmrecommends = 1;
|
||||
}
|
||||
elsif ($a eq "--no-mod-recommends") {
|
||||
$norpmrecommends = 1;
|
||||
}
|
||||
# --requires, --recommends, --suggests, --conflicts, --provides and
|
||||
# --obsoletes are not for Webmin modules, and not meant to have prefix,
|
||||
# and populated from module.info automatically
|
||||
# --no-requires, --no-recommends, --no-suggests,
|
||||
# --no-conflicts, --no-provides, --no-obsoletes can be used
|
||||
# to disable the automatic population of these fields from module.info
|
||||
elsif ($a eq "--no-requires") {
|
||||
$no_requires = 1;
|
||||
}
|
||||
elsif ($a eq "--no-recommends") {
|
||||
$no_recommends = 1;
|
||||
}
|
||||
elsif ($a eq "--no-suggests") {
|
||||
$no_suggests = 1;
|
||||
}
|
||||
elsif ($a eq "--no-conflicts") {
|
||||
$no_conflicts = 1;
|
||||
}
|
||||
elsif ($a eq "--no-provides") {
|
||||
$no_provides = 1;
|
||||
}
|
||||
elsif ($a eq "--no-obsoletes") {
|
||||
$no_obsoletes = 1;
|
||||
}
|
||||
elsif ($a eq "--no-prefix") {
|
||||
$no_prefix = 1;
|
||||
}
|
||||
elsif ($a eq "--prefix") {
|
||||
$set_prefix = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--vendor") {
|
||||
$vendor = &untaint(shift(@ARGV));
|
||||
elsif ($a eq "--obsolete-wbm") {
|
||||
$obsolete_wbm = 1;
|
||||
}
|
||||
elsif ($a eq "--provides") {
|
||||
$provides = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--obsoletes") {
|
||||
$obsoletes = &untaint(shift(@ARGV));
|
||||
elsif ($a eq "--licence" || $a eq "--license") {
|
||||
$licence = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--url") {
|
||||
$url = shift(@ARGV);
|
||||
@@ -85,12 +109,18 @@ while(@ARGV) {
|
||||
elsif ($a eq "--dir") {
|
||||
$final_mod = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--requires") {
|
||||
push(@extrareqs, shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--allow-overwrite") {
|
||||
$allow_overwrite = 1;
|
||||
}
|
||||
elsif ($a eq "--force-theme") {
|
||||
$force_theme = 1;
|
||||
}
|
||||
elsif ($a eq "--rpm-dir") {
|
||||
$basedir = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--vendor") {
|
||||
$vendor = &untaint(shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--sign") {
|
||||
$sign = 1;
|
||||
}
|
||||
@@ -103,6 +133,9 @@ while(@ARGV) {
|
||||
elsif ($a eq "--exclude") {
|
||||
push(@exclude, shift(@ARGV));
|
||||
}
|
||||
elsif ($a eq "--mod-list") {
|
||||
$mod_list = shift(@ARGV);
|
||||
}
|
||||
elsif ($a =~ /^\-\-/) {
|
||||
print STDERR "Unknown option $a\n";
|
||||
exit(1);
|
||||
@@ -117,27 +150,41 @@ while(@ARGV) {
|
||||
}
|
||||
}
|
||||
|
||||
# Disable module's depends and recommends if set in extra flags
|
||||
$rpmdepends = 0 if ($norpmdepends);
|
||||
$rpmrecommends = 0 if ($norpmrecommends);
|
||||
|
||||
# Validate args
|
||||
if (!$dir) {
|
||||
print "usage: ";
|
||||
print CYAN, "makemodulerpm.pl ";
|
||||
print YELLOW, "[--force-theme]\n";
|
||||
print CYAN, "makemodulerpm.pl <module> [version]", RESET;
|
||||
print YELLOW, "\n";
|
||||
print " [--mod-depends] [--no-mod-depends]\n";
|
||||
print " [--mod-recommends] [--no-mod-recommends]\n";
|
||||
print " [--no-requires]\n";
|
||||
print " [--no-suggests]\n";
|
||||
print " [--no-conflicts]\n";
|
||||
print " [--no-provides]\n";
|
||||
print " [--no-obsoletes]\n";
|
||||
print " [--rpm-dir directory]\n";
|
||||
print " [--rpm-depends]\n";
|
||||
print " [--no-prefix]\n";
|
||||
print " [--prefix prefix]\n";
|
||||
print " [--prefix prefix]\n";
|
||||
print " [--no-wbm-prefix]\n";
|
||||
print " [--vendor name]\n";
|
||||
print " [--licence name]\n";
|
||||
print " [--url url]\n";
|
||||
print " [--provides provides]\n";
|
||||
print " [--usermin]\n";
|
||||
print " [--release number]\n";
|
||||
print " [--epoch number]\n";
|
||||
print " [--target-dir directory]\n";
|
||||
print " [--dir directory-in-package]\n";
|
||||
print " [--allow-overwrite]\n";
|
||||
print CYAN, " <module> ";
|
||||
print YELLOW, "[version]\n", RESET;
|
||||
print " [--force-theme]\n";
|
||||
print " [--sign]\n";
|
||||
print " [--key keyname]\n";
|
||||
print " [--exclude file]\n";
|
||||
print " [--mod-list full|core|minimal]\n";
|
||||
print RESET, "\n";
|
||||
exit(1);
|
||||
}
|
||||
my $par;
|
||||
@@ -167,7 +214,8 @@ if (!-d $spec_dir || !-d $rpm_source_dir || !-d $rpm_dir) {
|
||||
|
||||
# Is this actually a module or theme directory?
|
||||
-d $source_dir || die "$dir is not a directory";
|
||||
my ($depends, $prefix, $desc, $prog, $iver, $istheme, $post_config);
|
||||
my ($depends, $prefix, $prefix_auto, $desc, $prog, $iver,
|
||||
$istheme, $post_config);
|
||||
if ($minfo{'desc'}) {
|
||||
$depends = join(" ", map { s/\/[0-9\.]+//; $_ }
|
||||
grep { !/^[0-9\.]+$/ }
|
||||
@@ -203,6 +251,7 @@ elsif ($tinfo{'desc'}) {
|
||||
else {
|
||||
die "$source_dir does not appear to be a webmin module or theme";
|
||||
}
|
||||
$prefix_auto = $prefix;
|
||||
$prefix = "" if ($no_prefix);
|
||||
$prefix = $set_prefix if ($set_prefix);
|
||||
my $ucprog = ucfirst($prog);
|
||||
@@ -244,7 +293,7 @@ system("/bin/rm -rf /tmp/makemodulerpm");
|
||||
|
||||
# Build list of dependencies on other RPMs, for inclusion as an RPM
|
||||
# Requires: header
|
||||
my $rdeps;
|
||||
my $rdeps = "";
|
||||
if ($rpmdepends && defined($minfo{'depends'})) {
|
||||
my @rdeps;
|
||||
foreach my $d (split(/\s+/, $minfo{'depends'})) {
|
||||
@@ -270,7 +319,7 @@ if ($rpmdepends && defined($minfo{'depends'})) {
|
||||
my $curr_dir = $0;
|
||||
($curr_dir) = $curr_dir =~ /^(.+)\/[^\/]+$/;
|
||||
$curr_dir = "." if ($curr_dir !~ /^\//);
|
||||
my $mod_def_file = "$curr_dir/mod_def_list.txt";
|
||||
my $mod_def_file = "$curr_dir/mod_${mod_list}_list.txt";
|
||||
next if (! -r $mod_def_file);
|
||||
open(my $fh, '<', $mod_def_file) ||
|
||||
die "Error opening \"$mod_def_file\" : $!\n";
|
||||
@@ -283,24 +332,78 @@ if ($rpmdepends && defined($minfo{'depends'})) {
|
||||
$dver ? ($prefix.$dmod, ">=", $dver) :
|
||||
($prefix.$dmod));
|
||||
}
|
||||
$rdeps = join(" ", @rdeps, @extrareqs);
|
||||
$rdeps = join(" ", @rdeps);
|
||||
}
|
||||
|
||||
# Build list of recommended packages
|
||||
# Build list of recommended packages on other RPMs, for inclusion as an RPM
|
||||
# Recommends: header (Webmin module with prefixes)
|
||||
my $rrecom = "";
|
||||
if ($rpmrecommends && defined($minfo{'recommends'})) {
|
||||
my @rrecom;
|
||||
foreach my $d (split(/\s+/, $minfo{'recommends'})) {
|
||||
push(@rrecom, $prefix.$d);
|
||||
}
|
||||
$rrecom = join(" ", @rrecom);
|
||||
}
|
||||
|
||||
# Build (append) list of required packages (not Webmin modules)
|
||||
my @rrequires = ( );
|
||||
if (!$no_requires && exists($minfo{'rpm_requires'})) {
|
||||
foreach my $rpmrequire (split(/\s+/, $minfo{'rpm_requires'})) {
|
||||
push(@rrequires, $rpmrequire);
|
||||
}
|
||||
$rdeps .= ($rdeps ? ' ' : '') . join(" ", @rrequires) if (@rrequires);
|
||||
}
|
||||
|
||||
# Build (append) list of recommended packages (not Webmin modules)
|
||||
my @rrecommends = ( );
|
||||
if ($rpmrecommends && exists($minfo{'recommends'})) {
|
||||
foreach my $rpmrecommend (split(/\s+/, $minfo{'recommends'})) {
|
||||
if (!$no_recommends && exists($minfo{'rpm_recommends'})) {
|
||||
foreach my $rpmrecommend (split(/\s+/, $minfo{'rpm_recommends'})) {
|
||||
push(@rrecommends, $rpmrecommend);
|
||||
}
|
||||
$rrecom .= ($rrecom ? ' ' : '') . join(" ", @rrecommends)
|
||||
if (@rrecommends);
|
||||
}
|
||||
|
||||
# Build (standalone) list of suggested packages (not Webmin modules)
|
||||
my @rsuggests = ( );
|
||||
if (!$no_suggests && exists($minfo{'rpm_suggests'})) {
|
||||
foreach my $rpmsuggest (split(/\s+/, $minfo{'rpm_suggests'})) {
|
||||
push(@rsuggests, $rpmsuggest);
|
||||
}
|
||||
}
|
||||
|
||||
# If module has 'provides', consider it too
|
||||
$provides .= ($provides ? " " : "") . $minfo{'provides'}
|
||||
if (exists($minfo{'provides'}));
|
||||
# Build (standalone) list of conflicts (not Webmin modules)
|
||||
my @rconflicts = ( );
|
||||
if (!$no_conflicts && exists($minfo{'rpm_conflicts'})) {
|
||||
foreach my $rpmconflict (split(/\s+/, $minfo{'rpm_conflicts'})) {
|
||||
push(@rconflicts, $rpmconflict);
|
||||
}
|
||||
}
|
||||
|
||||
# Build (standalone) list of provides (not Webmin modules)
|
||||
my @rprovides = ( );
|
||||
if (!$no_provides && exists($minfo{'rpm_provides'})) {
|
||||
foreach my $rpmprovide (split(/\s+/, $minfo{'rpm_provides'})) {
|
||||
push(@rprovides, $rpmprovide);
|
||||
}
|
||||
}
|
||||
|
||||
# Build (standalone) list of obsoletes (not Webmin modules)
|
||||
my @robsoletes = ( );
|
||||
if (!$no_obsoletes && exists($minfo{'rpm_obsoletes'})) {
|
||||
foreach my $rpmobsolete (split(/\s+/, $minfo{'rpm_obsoletes'})) {
|
||||
push(@robsoletes, $rpmobsolete);
|
||||
}
|
||||
}
|
||||
|
||||
# Fix support for old module name prefixes
|
||||
if ($obsolete_wbm) {
|
||||
push(@rprovides, "$prefix_auto$mod");
|
||||
push(@robsoletes, "$prefix_auto$mod");
|
||||
}
|
||||
|
||||
# Create the SPEC file
|
||||
my $providesheader = $provides ? "Provides: $provides" : "";
|
||||
my $obsoletesheader = $obsoletes ? "Obsoletes: $obsoletes" : "";
|
||||
my $vendorheader = $vendor ? "Vendor: $vendor" : "";
|
||||
my $urlheader = $url ? "URL: $url" : "";
|
||||
my $epochheader = $epoch ? "Epoch: $epoch" : "";
|
||||
@@ -316,9 +419,13 @@ Summary: $desc
|
||||
Name: $prefix$mod
|
||||
Version: $ver
|
||||
Release: $release
|
||||
Requires: /bin/sh /usr/bin/perl /usr/libexec/$prog $rdeps
|
||||
Requires: /bin/sh /usr/bin/perl $prog $rdeps
|
||||
EOF
|
||||
print $SPEC "Recommends: " . join(" ", @rrecommends) . "\n" if (@rrecommends);
|
||||
print $SPEC "Recommends: $rrecom\n" if ($rrecom);
|
||||
print $SPEC "Suggests: " . join(" ", @rsuggests) . "\n" if (@rsuggests);
|
||||
print $SPEC "Conflicts: " . join(" ", @rconflicts) . "\n" if (@rconflicts);
|
||||
print $SPEC "Provides: " . join(" ", @rprovides) . "\n" if (@rprovides);
|
||||
print $SPEC "Obsoletes: " . join(" ", @robsoletes) . "\n" if (@robsoletes);
|
||||
print $SPEC <<EOF;
|
||||
Autoreq: 0
|
||||
Autoprov: 0
|
||||
@@ -328,8 +435,6 @@ Source: $mod.tar.gz
|
||||
BuildRoot: /tmp/%{name}-%{version}
|
||||
BuildArchitectures: noarch
|
||||
$epochheader
|
||||
$providesheader
|
||||
$obsoletesheader
|
||||
$vendorheader
|
||||
$urlheader
|
||||
%description
|
||||
|
||||
@@ -90,7 +90,7 @@ Requires(pre): /usr/bin/perl
|
||||
Requires: /bin/sh /usr/bin/perl perl(lib) perl(open) perl(Net::SSLeay) perl(Time::Local) perl(Data::Dumper) perl(File::Path) perl(File::Basename) perl(Digest::SHA) perl(Digest::MD5) openssl unzip tar gzip
|
||||
Recommends: perl(DateTime) perl(DateTime::TimeZone) perl(DateTime::Locale) perl(Time::Piece) perl(Encode::Detect) perl(Time::HiRes) perl(Socket6) html2text shared-mime-info perl-File-Basename perl-File-Path perl-JSON-XS qrencode perl(DBI) perl(DBD::mysql)
|
||||
AutoReq: 0
|
||||
License: BSD-3-clause
|
||||
License: BSD-3-Clause
|
||||
Group: System/Tools
|
||||
Source: http://www.webmin.com/download/$tarfile
|
||||
Vendor: $rpm_maintainer
|
||||
@@ -229,6 +229,11 @@ if [ "\$tempdir" = "" ]; then
|
||||
fi
|
||||
export config_dir var_dir perl autoos port login crypt host ssl nochown autothird noperlpath nouninstall nostart allow atboot makeboot nostop nodepsmsg
|
||||
./setup.sh >\$tempdir/webmin-setup.out 2>&1
|
||||
grep sudo= /etc/webmin/miniserv.conf >/dev/null 2>&1
|
||||
if [ "\$?" = 1 ]; then
|
||||
# Allow sudo-based logins
|
||||
echo sudo=1 >>/etc/webmin/miniserv.conf
|
||||
fi
|
||||
chmod 600 \$tempdir/webmin-setup.out
|
||||
rm -f /var/lock/subsys/webmin
|
||||
cd /usr/libexec/webmin
|
||||
|
||||
@@ -22,7 +22,7 @@ index_download=دانلود سرور
|
||||
index_downloaddesc=برای دانلود و نصب آخرین نسخه فایل JAR سرور Minecraft روی این دکمه کلیک کنید.
|
||||
index_upgradedesc=نسخه جدید سرور Minecraft اکنون برای دانلود در دسترس است.
|
||||
index_upgrade=اکنون ارتقا دهید
|
||||
index_startwarn=ÙØ´Ø¯Ø§Ø±! Ù
Ù
ک٠است ÙØ³Ø®Ù دÛÚ¯Ø±Û Ø§Ø² Minecraft Ø¨Ø±Ø§Û Ø´Ø±ÙØ¹ در زÙ
Ø§Ù Ø±Ø§ÙØ§ÙØ¯Ø§Ø²Û Ù¾ÛÚ©Ø±Ø¨ÙØ¯Û Ø´ÙØ¯.
|
||||
index_startwarn=هشدار! ممکن است نسخه متفاوتی از ماینکرفت طوری پیکربندی شده باشد که هنگام بوت شدن شروع به کار کند.
|
||||
index_portwarn=هشدار! فرآیند دیگر با PID $1 استفاده از پورت سرور Minecraft است. این ممکن است نسخه دیگری از سرور Minecraft باشد.
|
||||
|
||||
check_edir=دایرکتوری پایه $1 وجود ندارد
|
||||
@@ -85,7 +85,7 @@ users_enabled=اجرای لیست سفید فعال شده است؟
|
||||
|
||||
conns_title=بازیکنان متصل
|
||||
conns_desc=بازیکنان زیر در حال حاضر به سرور شما متصل هستند. روی نام بازیکن کلیک کنید تا اقدامات روی آن انجام شود.
|
||||
conns_edown=پخشکÙÙØ¯ÙÙØ§Û Ù
تص٠را ÙÙ
ÛØªÙا٠Ù
Ø¯ÛØ±Ûت کرد Ù
گر اÛÙÚ©Ù Ø³Ø±ÙØ± در ØØ§Ù اجرا باشد
|
||||
conns_edown=بازیکنان متصل را نمیتوان مدیریت کرد مگر اینکه سرور در حال اجرا باشد
|
||||
conns_none=در حال حاضر هیچ بازیکنی به سرور متصل نیست.
|
||||
conns_disc=قطع ارتباط انتخاب شد
|
||||
conns_enter=مدیریت بازیکن به نام:
|
||||
@@ -293,10 +293,10 @@ backup_dir=پشتیبان گیری در دایرکتوری
|
||||
backup_worlds=دنیاهایی که باید گنجانده شوند
|
||||
backup_worlds1=همه دنیاها
|
||||
backup_worlds0=فقط انتخاب شده ..
|
||||
backup_err=Ù¾Ø´ØªÛØ¨Ø§ÙÚ¯ÛØ±Û Ø¨Ø±ÙØ§Ù
ÙØ±ÛØ²ÛØ´Ø¯Ù Ø°Ø®ÛØ±Ù ÙØ´Ø¯
|
||||
backup_err=ذخیره نسخه پشتیبان زمانبندیشده ناموفق بود
|
||||
backup_edir=فهرست مقصد گم شده یا غیرمطلق
|
||||
backup_eworlds=هیچ جهانی انتخاب نشده است
|
||||
backup_desc=اÛÙ ØµÙØÙ Ø¨Ù Ø´Ù
ا اÙ
کا٠Ù
Û Ø¯ÙØ¯ تا از دÙÛØ§Û Ø³Ø±ÙØ± Minecraft Ø®ÙØ¯ بک آپ ÙØ§Û Ø¨Ø±ÙØ§Ù
Ù Ø±ÛØ²Û Ø´Ø¯Ù Ø®ÙØ¯Ú©Ø§Ø± ØªÙØ¸ÛÙ
Ú©ÙÛØ¯. ÙÙØ±Ø³Øª Ù
ÙØµØ¯ Ù
ÛØªÙØ§ÙØ¯ ØØ§ÙÛ Ú©Ø¯ÙØ§Û ØªØ§Ø±ÛØ® ب٠سبک strftime Ù
اÙÙØ¯ %dØ %m Ù %Y باشد تا Ù¾Ø´ØªÛØ¨Ø§ÙÙØ§Û Ø±ÙØ²Ø§Ù٠جداگاÙÙ Ø°Ø®ÛØ±Ù Ø´ÙØ¯.
|
||||
backup_desc=این صفحه به شما امکان میدهد تا پشتیبانگیری خودکار و زمانبندیشده از دنیای سرورهای ماینکرفت خود را تنظیم کنید. دایرکتوری مقصد میتواند شامل کدهای تاریخ به سبک strftime مانند %d، %m و %Y باشد تا پشتیبانگیریهای روزانه جداگانهای ذخیره شوند.
|
||||
backup_email=ایمیل گزارش پشتیبان به
|
||||
backup_noemail=هیچ کس
|
||||
backup_email_err=فقط در صورت شکست ایمیل ارسال کنید
|
||||
@@ -317,8 +317,8 @@ log_ip=آی پی های ممنوعه آپدیت شد
|
||||
log_manual=فایل پیکربندی ویرایش شده به صورت دستی
|
||||
log_atboot=سرور در زمان بوت فعال شد
|
||||
log_delboot=سرور در زمان بوت غیرفعال شد
|
||||
log_enable_backup=Ù¾Ø´ØªÛØ¨Ø§ÙÚ¯ÛØ±Û Ø¨Ø±ÙØ§Ù
ÙØ±ÛØ²ÛØ´Ø¯Ù را در $1 ÙØ¹Ø§Ù کرد
|
||||
log_disable_backup=Ù¾Ø´ØªÛØ¨Ø§ÙÚ¯ÛØ±Û Ø¨Ø±ÙØ§Ù
ÙØ±ÛØ²ÛØ´Ø¯Ù را ØºÛØ±Ùعا٠کرد
|
||||
log_enable_backup=پشتیبانگیری زمانبندیشده برای $1 فعال شد
|
||||
log_disable_backup=پشتیبانگیری زمانبندیشده غیرفعال شد
|
||||
log_playtime=محدودیت های زمانی بازی تغییر کرد
|
||||
log_changeversion=سرور به نسخه $1 تغییر کرد
|
||||
log_addversion=نسخه سرور $1 اضافه شد
|
||||
@@ -352,7 +352,7 @@ playtime_all=همه کاربران
|
||||
playtime_ips=برای اتصالات از
|
||||
playtime_sel2=IP ها و شبکه های فهرست شده
|
||||
playtime_all2=همه آدرس ها
|
||||
playtime_err=Ù
ØØ¯ÙØ¯ÛØªÙØ§Û Ø²Ù
اÙÛ Ø¨Ø§Ø²Û Ø°Ø®ÛØ±Ù ÙØ´Ø¯
|
||||
playtime_err=ذخیره محدودیتهای زمانی بازی ناموفق بود
|
||||
playtime_emax=حداکثر زمان باید یک عدد باشد
|
||||
playtime_eusers=هیچ کاربری برای محدود کردن وارد نشده است
|
||||
playtime_edays=هیچ روزی از هفته انتخاب نشده است
|
||||
|
||||
233
miniserv.pl
233
miniserv.pl
@@ -383,12 +383,7 @@ foreach $mod (split(/\s+/, $config{'preuse'})) {
|
||||
}
|
||||
|
||||
# Open debug log if set
|
||||
if ($config{'debuglog'}) {
|
||||
open(DEBUG, ">>$config{'debuglog'}");
|
||||
chmod(0700, $config{'debuglog'});
|
||||
select(DEBUG); $| = 1; select(STDOUT);
|
||||
print DEBUG "miniserv.pl starting ..\n";
|
||||
}
|
||||
&open_debug_to_log("miniserv.pl starting ..\n");
|
||||
|
||||
# Write out (empty) blocked hosts file
|
||||
&write_blocked_file();
|
||||
@@ -595,9 +590,16 @@ if ($config{'logclear'}) {
|
||||
# need to clear log
|
||||
$write_logtime = 1;
|
||||
unlink($config{'logfile'});
|
||||
unlink($config{'errorlog'})
|
||||
if ($config{'errorlog'} &&
|
||||
$config{'errorlog'} ne '-');
|
||||
unlink($config{'debuglog'})
|
||||
if ($config{'debuglog'});
|
||||
}
|
||||
}
|
||||
else { $write_logtime = 1; }
|
||||
else {
|
||||
$write_logtime = 1;
|
||||
}
|
||||
if ($write_logtime) {
|
||||
open(LOGTIME, ">$config{'logfile'}.time");
|
||||
print LOGTIME time(),"\n";
|
||||
@@ -634,6 +636,16 @@ local $remove_session_count = 0;
|
||||
$need_pipes = $config{'passdelay'} || $config{'session'};
|
||||
$cron_runs = 0;
|
||||
while(1) {
|
||||
# Periodically re-open error and debug logs if deleted via regular
|
||||
# log clearing
|
||||
if ($config{'errorlog'} && $config{'errorlog'} ne '-' &&
|
||||
!-e $config{'errorlog'}) {
|
||||
&redirect_stderr_to_log();
|
||||
}
|
||||
if ($config{'debuglog'} && !-e $config{'debuglog'}) {
|
||||
&open_debug_to_log();
|
||||
}
|
||||
|
||||
# Check if any webmin cron jobs are ready to run
|
||||
&execute_ready_webmin_crons($cron_runs++);
|
||||
|
||||
@@ -918,11 +930,27 @@ while(1) {
|
||||
|
||||
# Initialize SSL for this connection
|
||||
if ($use_ssl) {
|
||||
($ssl_con, $ssl_certfile,
|
||||
$ssl_keyfile) = &ssl_connection_for_ip(
|
||||
SOCK, $ipv6fhs{$s});
|
||||
print DEBUG "ssl_con returned $ssl_con\n";
|
||||
$ssl_con || exit;
|
||||
my $byte = '';
|
||||
# Look at the first byte of the socket
|
||||
# buffer but don't consume it
|
||||
recv(SOCK, $byte, 1, MSG_PEEK);
|
||||
if (length($byte) &&
|
||||
# Check if the first byte is a TLS
|
||||
(ord($byte) == 0x16 ||
|
||||
# Check if the first byte is SSL
|
||||
(ord($byte) & 0x80))) {
|
||||
($ssl_con,
|
||||
$ssl_certfile,
|
||||
$ssl_keyfile) =
|
||||
&ssl_connection_for_ip(
|
||||
SOCK, $ipv6fhs{$s});
|
||||
print DEBUG "ssl_con returned ".
|
||||
"$ssl_con\n";
|
||||
$ssl_con || exit;
|
||||
}
|
||||
else {
|
||||
$use_ssl = 0;
|
||||
}
|
||||
}
|
||||
|
||||
print DEBUG
|
||||
@@ -1091,8 +1119,8 @@ while(1) {
|
||||
elsif ($inline =~ /^verify\s+(\S+)\s+(\S+)\s+(\S+)/) {
|
||||
# Verifying a session ID
|
||||
local $session_id = $1;
|
||||
local $notimeout = $2;
|
||||
local $vip = $3;
|
||||
local $vip = $2;
|
||||
local $uptime = $3;
|
||||
local $skey = $sessiondb{$session_id} ?
|
||||
$session_id :
|
||||
&hash_session_id($session_id);
|
||||
@@ -1105,8 +1133,7 @@ while(1) {
|
||||
split(/\s+/, $sessiondb{$skey});
|
||||
local $lot = &get_logout_time($user, $session_id);
|
||||
if ($lot &&
|
||||
$time_now - $ltime > $lot*60 &&
|
||||
!$notimeout) {
|
||||
$time_now - $ltime > $lot*60) {
|
||||
# Session has timed out due to
|
||||
# idle time being hit
|
||||
print $outfd "1 ",($time_now - $ltime),"\n";
|
||||
@@ -1131,7 +1158,9 @@ while(1) {
|
||||
# Session is OK, update last time
|
||||
# and remote IP
|
||||
print $outfd "2 $user\n";
|
||||
$sessiondb{$skey} = "$user $time_now $vip";
|
||||
if ($uptime) {
|
||||
$sessiondb{$skey} = "$user $time_now $vip";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1349,91 +1378,38 @@ local $origreqline = &read_line();
|
||||
$method = $page = $request_uri = undef;
|
||||
print DEBUG "handle_request reqline=$reqline\n";
|
||||
alarm(0);
|
||||
if (!$reqline && (!$use_ssl || $checked_timeout > 1)) {
|
||||
if (!$use_ssl && $config{'ssl'} && $config{'ssl_enforce'}) {
|
||||
# This is an http request when https must be enforced
|
||||
local $urlhost = $config{'musthost'} || $host;
|
||||
$urlhost = "[".$urlhost."]" if (&check_ip6address($urlhost));
|
||||
local $wantport = $port;
|
||||
if ($wantport == 80 &&
|
||||
&indexof(443, @listening_on_ports) >= 0) {
|
||||
# Connection was to port 80, but since we are also
|
||||
# accepting on port 443, redirect to that
|
||||
$wantport = 443;
|
||||
}
|
||||
local $url = $wantport == 443
|
||||
? "https://$urlhost/"
|
||||
: "https://$urlhost:$wantport/";
|
||||
&write_data("HTTP/1.0 302 Moved Temporarily\r\n");
|
||||
&write_data("Date: $datestr\r\n");
|
||||
&write_data("Server: @{[&server_info()]}\r\n");
|
||||
&write_data("Location: $url\r\n");
|
||||
&write_keep_alive(0);
|
||||
&write_data("\r\n");
|
||||
&log_error("Redirecting HTTP request to HTTPS for $acptip");
|
||||
&log_request($loghost, $authuser, $reqline, 302, 0);
|
||||
return 0;
|
||||
}
|
||||
elsif (!$reqline && $checked_timeout > 1) {
|
||||
# An empty request .. just close the connection
|
||||
print DEBUG "handle_request: rejecting empty request\n";
|
||||
return 0;
|
||||
}
|
||||
elsif ($reqline !~ /^(\S+)\s+(.*)\s+HTTP\/1\..$/) {
|
||||
print DEBUG "handle_request: invalid reqline=$reqline\n";
|
||||
if ($use_ssl) {
|
||||
# This could be an http request when it should be https
|
||||
$use_ssl = 0;
|
||||
local $urlhost = $config{'musthost'} || $host;
|
||||
$urlhost = "[".$urlhost."]" if (&check_ip6address($urlhost));
|
||||
local $wantport = $port;
|
||||
if ($wantport == 80 &&
|
||||
&indexof(443, @listening_on_ports) >= 0) {
|
||||
# Connection was to port 80, but since we are also
|
||||
# accepting on port 443, redirect to that
|
||||
$wantport = 443;
|
||||
}
|
||||
local $url = $wantport == 443 ? "https://$urlhost/"
|
||||
: "https://$urlhost:$wantport/";
|
||||
local $jsurl = $config{'musthost'} ?
|
||||
$url :
|
||||
"https://'+location.host+'";
|
||||
local $jsredir = $config{'musthost'} ?
|
||||
"location.href='$url'" :
|
||||
"location.protocol='https:'";
|
||||
$reqline = "GET / HTTP/1.1"; # Fake it for the log
|
||||
&http_error(200, "Document follows",
|
||||
"This web server is running in SSL mode. ".
|
||||
"Trying to redirect to <a href='$url'>$url</a> instead ...".
|
||||
"<script>".
|
||||
"if (location.protocol != 'https:') {".
|
||||
" document.querySelector('a').href='".$jsurl."';document.querySelector('a').innerText='".$jsurl."';".
|
||||
"".$jsredir."".
|
||||
"}".
|
||||
"</script>",
|
||||
0, 1);
|
||||
}
|
||||
elsif (ord(substr($reqline, 0, 1)) == 128 && !$use_ssl) {
|
||||
# This could be an https request when it should be http ..
|
||||
# need to fake a HTTP response
|
||||
eval <<'EOF';
|
||||
use Net::SSLeay;
|
||||
eval "Net::SSLeay::SSLeay_add_ssl_algorithms()";
|
||||
eval "Net::SSLeay::load_error_strings()";
|
||||
$ssl_ctx = Net::SSLeay::CTX_new();
|
||||
Net::SSLeay::CTX_use_RSAPrivateKey_file(
|
||||
$ssl_ctx, $config{'keyfile'},
|
||||
&Net::SSLeay::FILETYPE_PEM);
|
||||
Net::SSLeay::CTX_use_certificate_file(
|
||||
$ssl_ctx,
|
||||
$config{'certfile'} || $config{'keyfile'},
|
||||
&Net::SSLeay::FILETYPE_PEM);
|
||||
$ssl_con = Net::SSLeay::new($ssl_ctx);
|
||||
pipe(SSLr, SSLw);
|
||||
if (!fork()) {
|
||||
close(SSLr);
|
||||
select(SSLw); $| = 1; select(STDOUT);
|
||||
print SSLw $origreqline;
|
||||
local $buf;
|
||||
while(sysread(SOCK, $buf, 1) > 0) {
|
||||
print SSLw $buf;
|
||||
}
|
||||
close(SOCK);
|
||||
exit;
|
||||
}
|
||||
close(SSLw);
|
||||
Net::SSLeay::set_wfd($ssl_con, fileno(SOCK));
|
||||
Net::SSLeay::set_rfd($ssl_con, fileno(SSLr));
|
||||
Net::SSLeay::accept($ssl_con) || die "accept() failed";
|
||||
$use_ssl = 1;
|
||||
local $url = $config{'musthost'} ?
|
||||
"https://$config{'musthost'}:$port/" :
|
||||
"https://$host:$port/";
|
||||
$reqline = "GET / HTTP/1.1"; # Fake it for the log
|
||||
&http_error(200, "Bad Request", "This web server is not running in SSL mode. Try the URL <a href='$url'>$url</a> instead.", 0, 1);
|
||||
EOF
|
||||
if ($@) {
|
||||
&http_error(400, "Bad Request");
|
||||
}
|
||||
}
|
||||
else {
|
||||
&http_error(400, "Bad Request");
|
||||
}
|
||||
elsif ($reqline && $reqline !~ /^(\S+)\s+(.*)\s+HTTP\/1\..$/) {
|
||||
&http_error(400, "Bad Request");
|
||||
return 0;
|
||||
}
|
||||
$method = $1;
|
||||
$request_uri = $page = $2;
|
||||
@@ -1520,7 +1496,8 @@ if (defined($header{'host'})) {
|
||||
else {
|
||||
$host = $header{'host'};
|
||||
}
|
||||
if ($config{'musthost'} && $host ne $config{'musthost'}) {
|
||||
if ($config{'musthost'} && $host ne $config{'musthost'} &&
|
||||
!$config{'musthost_redirect'}) {
|
||||
# Disallowed hostname used
|
||||
&http_error(400, "Invalid HTTP hostname");
|
||||
}
|
||||
@@ -1543,6 +1520,22 @@ if ($config{'redirect_prefix'}) {
|
||||
}
|
||||
$prot = $ssl ? "https" : "http";
|
||||
|
||||
# Redirect to the configured "musthost", if "musthost_redirect" is set, rather
|
||||
# than showing an error
|
||||
if ($config{'musthost'} && $host ne $config{'musthost'} &&
|
||||
$config{'musthost_redirect'}) {
|
||||
&write_data("HTTP/1.0 302 Moved Temporarily\r\n");
|
||||
&write_data("Date: $datestr\r\n");
|
||||
&write_data("Server: @{[&server_info()]}\r\n");
|
||||
&write_data("Location: $prot://$config{'musthost'}:$redirport\r\n");
|
||||
&write_keep_alive(0);
|
||||
&write_data("\r\n");
|
||||
&log_request($loghost, $authuser, $reqline, 302, 0) if $reqline;
|
||||
shutdown(SOCK, 1);
|
||||
close(SOCK);
|
||||
return;
|
||||
}
|
||||
|
||||
undef(%in);
|
||||
if ($page =~ /^([^\?]+)\?(.*)$/) {
|
||||
# There is some query string information
|
||||
@@ -1818,7 +1811,7 @@ if ($config{'session'} && !$deny_authentication &&
|
||||
&http_error(500, "Invalid session",
|
||||
"Session ID contains invalid characters");
|
||||
}
|
||||
print $PASSINw "verify $sid 0 $acptip\n";
|
||||
print $PASSINw "verify $sid $acptip 1\n";
|
||||
<$PASSOUTr> =~ /^(\d+)\s+(\S+)/;
|
||||
if ($1 != 2) {
|
||||
&http_error(500, "Invalid session",
|
||||
@@ -1989,9 +1982,7 @@ if ($config{'session'} && !$validated) {
|
||||
local $cookie = $header{'cookie'};
|
||||
while($cookie =~ s/(^|\s|;)$sidname=([a-f0-9]+)//) {
|
||||
$session_id = $2;
|
||||
local $notimeout =
|
||||
$in{'webmin_notimeout'} ? 1 : 0;
|
||||
print $PASSINw "verify $session_id $notimeout $acptip\n";
|
||||
print $PASSINw "verify $session_id $acptip 1\n";
|
||||
<$PASSOUTr> =~ /(\d+)\s+(\S+)/;
|
||||
if ($1 == 2) {
|
||||
# Valid session continuation
|
||||
@@ -4781,6 +4772,10 @@ if ($config{'ssl_honorcipherorder'}) {
|
||||
&Net::SSLeay::OP_CIPHER_SERVER_PREFERENCE)';
|
||||
}
|
||||
|
||||
# Disable TLS renegotiation when possible, OpenSSL >= 1.1.0h
|
||||
eval 'Net::SSLeay::CTX_set_options($ssl_ctx,
|
||||
&Net::SSLeay::OP_NO_RENEGOTIATION)';
|
||||
|
||||
return { 'keyfile' => $keyfile,
|
||||
'keytime' => $kst[9],
|
||||
'certfile' => $certfile,
|
||||
@@ -5508,14 +5503,7 @@ foreach my $pe (split(/\t+/, $config{'expires_paths'})) {
|
||||
}
|
||||
|
||||
# Re-open debug log
|
||||
close(DEBUG);
|
||||
if ($config{'debuglog'}) {
|
||||
open(DEBUG, ">>$config{'debuglog'}");
|
||||
select(DEBUG); $| = 1; select(STDOUT);
|
||||
}
|
||||
else {
|
||||
open(DEBUG, ">/dev/null");
|
||||
}
|
||||
&open_debug_to_log();
|
||||
|
||||
# Reset cache of sudo checks
|
||||
undef(%sudocache);
|
||||
@@ -5886,23 +5874,26 @@ while(1) {
|
||||
vec($rmask, fileno(SOCK), 1) = 1;
|
||||
my $sel = select($rmask, undef, undef, 10);
|
||||
my ($buf, $ok);
|
||||
my $uptime = 0;
|
||||
if (vec($rmask, fileno($fh), 1)) {
|
||||
# Got something from the websockets backend
|
||||
$ok = sysread($fh, $buf, 1024);
|
||||
last if ($ok <= 0); # Backend has closed
|
||||
&write_data($buf);
|
||||
$uptime = 1;
|
||||
}
|
||||
if (vec($rmask, fileno(SOCK), 1)) {
|
||||
# Got something from the browser
|
||||
$buf = &read_data(1024);
|
||||
last if (!defined($buf) || length($buf) == 0);
|
||||
syswrite($fh, $buf, length($buf)) || last;
|
||||
$uptime = 1;
|
||||
}
|
||||
my $now = time();
|
||||
if ($now - $last_session_check_time > 10) {
|
||||
# Re-validate the browser session every 10 seconds
|
||||
print DEBUG "verifying websockets session $session_id\n";
|
||||
print $PASSINw "verify $session_id 0 $acptip\n";
|
||||
print $PASSINw "verify $session_id $acptip $uptime\n";
|
||||
<$PASSOUTr> =~ /(\d+)\s+(\S+)/;
|
||||
if ($1 != 2) {
|
||||
print DEBUG "session $session_id has expired!\n";
|
||||
@@ -6664,6 +6655,7 @@ else {
|
||||
sub redirect_stderr_to_log
|
||||
{
|
||||
if ($config{'errorlog'} ne '-') {
|
||||
close(STDERR);
|
||||
open(STDERR, ">>$config{'errorlog'}") ||
|
||||
die "failed to open $config{'errorlog'} : $!";
|
||||
if ($config{'logperms'}) {
|
||||
@@ -6673,6 +6665,23 @@ if ($config{'errorlog'} ne '-') {
|
||||
select(STDERR); $| = 1; select(STDOUT);
|
||||
}
|
||||
|
||||
# open_debug_to_log([msg])
|
||||
# Direct the DEBUG file handle somewhere
|
||||
sub open_debug_to_log
|
||||
{
|
||||
my ($msg) = @_;
|
||||
close(DEBUG);
|
||||
if ($config{'debuglog'}) {
|
||||
open(DEBUG, ">>$config{'debuglog'}");
|
||||
chmod(0700, $config{'debuglog'});
|
||||
select(DEBUG); $| = 1; select(STDOUT);
|
||||
print DEBUG $msg if ($msg);
|
||||
}
|
||||
else {
|
||||
open(DEBUG, ">/dev/null");
|
||||
}
|
||||
}
|
||||
|
||||
# should_gzip_file(filename)
|
||||
# Returns 1 if some path should be gzipped
|
||||
sub should_gzip_file
|
||||
|
||||
1
mod_core_list.txt
Normal file
1
mod_core_list.txt
Normal file
@@ -0,0 +1 @@
|
||||
acl apache authentic-theme backup-config bind8 change-user cron dovecot fail2ban fdisk filemin firewalld fsdump gray-theme htaccess-htpasswd init logrotate logviewer lvm mailboxes mailcap mount mysql net package-updates passwd phpini postfix proc procmail proftpd quota servers software spam sshd status system-status time updown useradmin usermin webmin webmincron webminlog xterm
|
||||
@@ -1 +0,0 @@
|
||||
cron dfsadmin exports inetd init mount samba useradmin fdisk format proc webmin quota software pap acl apache lpadmin bind8 sendmail squid bsdexports hpuxexports net dhcpd custom servers time syslog mysql man inittab raid postfix webminlog postgresql xinetd status cpan pam nis shell fetchmail passwd at proftpd sshd heartbeat cluster-software cluster-useradmin qmailadmin stunnel usermin fsdump lvm procmail cluster-webmin firewall sgiexports openslp webalizer shorewall adsl-client updown ppp-client pptp-server pptp-client ipsec ldap-useradmin change-user cluster-shell cluster-cron spam htaccess-htpasswd logrotate cluster-passwd mailboxes ipfw sarg bandwidth cluster-copy backup-config smart-status idmapd krb5 smf ipfilter rbac tunnel zones cluster-usermin dovecot syslog-ng mailcap ldap-client phpini filter bacula-backup ldap-server exim tcpwrappers package-updates system-status webmincron shorewall6 iscsi-server iscsi-client gray-theme iscsi-target iscsi-tgtd bsdfdisk fail2ban authentic-theme firewalld filemin firewall6 logviewer xterm
|
||||
1
mod_full_list.txt
Normal file
1
mod_full_list.txt
Normal file
@@ -0,0 +1 @@
|
||||
acl adsl-client apache at authentic-theme backup-config bacula-backup bandwidth bind8 bsdexports bsdfdisk change-user cluster-copy cluster-cron cluster-passwd cluster-shell cluster-software cluster-useradmin cluster-usermin cluster-webmin cpan cron custom dfsadmin dhcpd dovecot exim exports fail2ban fdisk fetchmail filemin filter firewall firewall6 firewalld format fsdump gray-theme heartbeat hpuxexports htaccess-htpasswd idmapd inetd init inittab ipfilter ipfw ipsec iscsi-client iscsi-server iscsi-target iscsi-tgtd krb5 ldap-client ldap-server ldap-useradmin logrotate logviewer lpadmin lvm mailboxes mailcap man mount mysql net nis openslp package-updates pam pap passwd phpini postfix postgresql ppp-client pptp-client pptp-server proc procmail proftpd qmailadmin quota raid rbac samba sarg sendmail servers sgiexports shell shorewall shorewall6 smart-status smf software spam squid sshd status stunnel syslog syslog-ng system-status tcpwrappers time tunnel updown useradmin usermin webalizer webmin webmincron webminlog xinetd xterm zones
|
||||
1
mod_minimal_list.txt
Normal file
1
mod_minimal_list.txt
Normal file
@@ -0,0 +1 @@
|
||||
acl cron init inittab man proc servers system-status webmin webmincron webminlog
|
||||
24
mysql/config-debian-linux-13.0-ALL
Normal file
24
mysql/config-debian-linux-13.0-ALL
Normal file
@@ -0,0 +1,24 @@
|
||||
access=*: *
|
||||
add_mode=1
|
||||
blob_mode=0
|
||||
date_subs=0
|
||||
login=root
|
||||
max_dbs=50
|
||||
max_text=1000
|
||||
my_cnf=/etc/mysql/my.cnf
|
||||
mysql=/usr/bin/mariadb
|
||||
mysql_data=/var/lib/mysql
|
||||
mysql_libs=
|
||||
mysqladmin=/usr/bin/mariadb-admin
|
||||
mysqldump=/usr/bin/mariadb-dump
|
||||
mysqlimport=/usr/bin/mariadb-import
|
||||
mysqlshow=/usr/bin/mariadb-show
|
||||
nodbi=0
|
||||
nopwd=0
|
||||
passwd_mode=0
|
||||
perpage=25
|
||||
ssl=0
|
||||
start_cmd=systemctl start mariadb
|
||||
stop_cmd=systemctl stop mariadb
|
||||
style=1
|
||||
webmin_subs=0
|
||||
@@ -19,7 +19,7 @@ $limitsql = &get_search_limit(\%in);
|
||||
($sortsql, $sorthids, $sortargs) = &get_search_sort(\%in);
|
||||
|
||||
$d = &execute_sql($in{'db'},
|
||||
"select * from "."e_table($in{'table'})." $search $limitsql $sortsql");
|
||||
"select * from "."e_table($in{'table'})." $search $sortsql $limitsql");
|
||||
|
||||
# Work out the MIME type based on the data
|
||||
$data = $d->{'data'}->[$in{'row'}]->[$in{'col'}];
|
||||
|
||||
@@ -50,9 +50,10 @@ print &ui_table_row($text{'cnf_stor'},
|
||||
'NDB', 'ARCHIVE', 'CSV',
|
||||
'BLACKHOLE' ], 1, 0, 1));
|
||||
|
||||
my $ifpt_def_off = &get_innodb_file_per_table_default() ? 0 : 1;
|
||||
$fpt = &find_value("innodb_file_per_table", $mems);
|
||||
print &ui_table_row($text{'cnf_fpt'},
|
||||
&ui_yesno_radio("fpt", $fpt));
|
||||
&ui_yesno_radio("fpt", $fpt // $ifpt_def_off));
|
||||
|
||||
$ilt = &find_value("innodb_lock_wait_timeout", $mems);
|
||||
print &ui_table_row($text{'cnf_ilt'},
|
||||
|
||||
@@ -68,8 +68,9 @@ my $lock_supported = &get_account_lock_support();
|
||||
# Old way for checking account locking
|
||||
my $locked = $u->[$fieldmap{'account_locked'}] eq 'Y';
|
||||
# New account locking check
|
||||
if (!exists($fieldmap{'account_locked'}) ||
|
||||
!defined($u->[$fieldmap{'account_locked'}])) {
|
||||
if (!$in{'new'} &&
|
||||
(!exists($fieldmap{'account_locked'}) ||
|
||||
!defined($u->[$fieldmap{'account_locked'}]))) {
|
||||
$locked = &get_account_lock_status($u->[1], $u->[0]);
|
||||
}
|
||||
print &ui_table_row($text{'user_pass'},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user