This PR tightens handling of proxied SSL client certificate headers so they are only honored when Webmin is configured to trust SSL headers and the direct TCP peer matches an explicit `trusted_proxies` entry.
The change preserves legacy forwarded-IP behavior for `trust_real_ip`, but prevents ambiguous legacy configs with no trusted proxy from accepting spoofable `X-SSL-Client-*` headers as authentication identity. During postinstall, such legacy configs now default to `no_trust_ssl=1`.
ⓘ Prevent Webmin from swallowing Certbot's key-path output when extracting PEM paths, while preserving IPv6 cert-name support and adding regression coverage.
ⓘ Create and configure missing bond devices with ip link, attach partner interfaces before assigning addresses, avoid legacy module auto-creation when ip is available, and add regression coverage.
Ref.: https://github.com/webmin/webmin/pull/2777
This PR fixes an issue where, after an unclean exit, Webmin can leave `miniserv.pid` behind.
If the kernel later reuses that PID for an unrelated process, the startup guard only checked that the PID was alive and refused to start with “Webmin is already running”.
With systemd restart handling, this can leave Webmin permanently down until the PID file is manually removed.
This change verifies that the live PID actually belongs to `miniserv.pl` running the same config before treating it as an active Webmin instance.
On Linux, it reads `/proc/<pid>/cmdline`, checks the miniserv script, and compares the config file by inode so symlinked paths still match and Usermin is correctly distinguished.
If the PID is confirmed unrelated, the stale PID file is removed and startup continues. If the process cannot be inspected, the previous conservative behavior is preserved.
Also hardens PID-file parsing with chomp and numeric validation, and adds tests for unrelated PID reuse, matching config, symlinked config, different miniserv config, and unreadable command-line fallback.
This PR ensure proxied WebSocket backend writes complete the full buffer for both TLS and plain TCP connections.
Fail backend handshakes cleanly if writes cannot be completed, preventing truncated headers or frames from corrupting linked WebSocket tunnels.
Originally hinted by this code review: d1d1bad4ae (r189931785)
ⓘ Display Webmin-managed SSH public keys from the configured real home directory for automatic home accounts, matching the save path and avoiding accidental blank key fields.
ⓘ Default packaged unit files to read-only, keep drop-ins as the safe override path, hide boot controls for protected base units, and reject [Install] sections in drop-in overrides.
ⓘ Add a disabled-by-default module option for deleting packaged systemd unit files, while keeping local unit deletion allowed and enforcing the policy in both UI and backend paths.
ⓘ Use the existing scheduled websocket cleanup path for linked-server ws-link routes and expire unopened temporary routes after five minutes.
This limits how long credential-bearing proxy routes can remain in `miniserv.conf` while leaving active and normal websocket cleanup behavior unchanged.
ⓘ Remove single-use ws-link routes when backend setup fails or after the backend handshake is consumed, with final loop cleanup kept as a fallback.
This prevents failed linked websocket retries from leaving temporary credential-bearing routes in `miniserv.conf`.
ⓘ Only store `backend_session` for xterm websocket routes when there is no real browser session and a one-time backend key is needed. Normal xterm sessions continue using the browser session directly.
ⓘ Require websocket routes to opt in with allow_basic_ws before Basic auth is accepted in session mode. Mark linked ws-link routes and no-cookie backend-session routes as allowed, while leaving normal session-backed routes unmarked.
ⓘ Correct linked-server WebSocket proxy registration for parent-prefixed URLs, rebuild backend Host/Origin from the child server, and prevent duplicate rewrites from invalidating tokens.
ⓘ Check OpenSSL's pending buffer before `select()` in the websocket forwarding loop so TLS-backed linked websocket streams do not stall during bursty backend output.
This PR adds general WebSocket proxying for linked Webmin servers, allowing modules such as `xterm` to work when opened through `servers/link.cgi`.
As requested in https://github.com/webmin/webmin/issues/1866.
This PR adds SSH public key management to the Users and Groups edit flow for existing Unix users.
Webmin stores its managed key with a readable marker in `authorized_keys`, validates submitted public keys, preserves unrelated keys, supports rename/update/remove flows, and performs user `.ssh` file operations as the target Unix user.
https://github.com/webmin/webmin/issues/1827
Expose missing prefork, worker, and event MPM tuning directives under Apache Processes and Limits, including MaxRequestWorkers, ServerLimit, ThreadLimit, ThreadsPerChild, and spare-thread controls.
https://github.com/webmin/webmin/issues/1821
Add an opt-in SMART module config option for manually listing hardware RAID passthrough devices, expose configured physical disks to smartctl, and document the option.
https://github.com/webmin/webmin/issues/1704
- When the system hostname domain changes, update `localhost.<old-domain>` in Postfix `mydestination` to `localhost.<new-domain>`.
- This sits alongside the existing hostname/FQDN updates for Postfix destinations.
Previous behavior:
`save_dns.cgi` only updated Postfix `mydestination` entries that exactly matched:
- the old short hostname, like `host`
- the old FQDN, like `host.old-domain.test`
It did **not** update:
- `localhost.old-domain.test`
So if you changed:
```text
host.old-domain.test
```
to:
```text
host.new-domain.test
```
Postfix could become:
```text
mydestination = host.new-domain.test, host, localhost.old-domain.test
```
After this hunk, it also updates that localhost domain entry:
```text
localhost.old-domain.test
```
to:
```text
localhost.new-domain.test
```
- Preserve existing spacing and inline comments when rewriting `/etc/nsswitch.conf` `hosts:` lines.
- Preserve indentation, comment prefix, inline comments, and field separators when rewriting `/etc/hosts` rows.
- Add tests for the `nsswitch.conf` spacing/comment behavior.
ⓘ Treat Linux active virtual interfaces as secondary IP addresses instead of independent links, fixing alias parsing, hiding invalid status controls, rejecting down-state creation, and removing existing aliases with ip addr del when needed.
Reproduce path:
Example repro before this fix:
1. Go to **Network Configuration → Network Interfaces → Active Now**.
2. Click **Add a new interface**.
3. Enter:
```text
Name: enp0s5:1
IPv4 address: 10.211.55.21
Netmask: 255.255.255.0
Status: Down
```
4. Click **Create**.
Before the fix, Webmin could still create the alias or handle it inconsistently, because `enp0s5:1` is not a real link that can be “down”. It is just an extra IP address on `enp0s5`.
Expected after the fix:
- The UI should not offer `Status` for active virtual aliases.
- If someone submits `up=0` manually anyway, Webmin rejects it with:
`Virtual interfaces cannot be created with down status`
- If an existing active virtual alias is saved as down through lower-level code, Webmin removes the IP using something like:
```bash
ip addr del 10.211.55.21/24 dev enp0s5
```
This PR adds dhcpcd backend support for Debian and Raspberry Pi OS network configuration. It detects dhcpcd only as a final fallback after Netplan, NetworkManager, and ifupdown, preventing Webmin from incorrectly falling back to `/etc/network/interfaces` on dhcpcd-managed systems.
The new backend reads and writes `/etc/dhcpcd.conf`, including DHCP and static IPv4/IPv6 configuration, gateways, static routes, DNS servers, search domains, MTU, and virtual IPv4 aliases. It also supports implicit DHCP-managed interfaces for default dhcpcd setups with no explicit interface blocks, and handles `allowinterfaces` / `denyinterfaces` behavior.
This PR also fixes apply/delete flows for dhcpcd-managed interfaces and virtual aliases, avoids rewriting generated `/etc/resolv.conf`, preserves spacing/comments in touched hosts and nsswitch files, and tightens Active Now handling so virtual aliases are treated as IP addresses rather than independent links.
https://github.com/webmin/webmin/issues/1607
This PR fixes Webmin IP access control handling for IPv6 CIDR prefixes that are not divisible by 8, such as `/29` as mentioned in this https://github.com/webmin/webmin/issues/1570 ticket.
Before Webmin validation rejected non-byte-aligned IPv6 network sizes, and the runtime matcher compared IPv6 networks only by whole bytes. This meant valid IPv6 CIDR prefixes could not be used safely in access control rules.
Changes:
- Allow IPv6 access-control prefixes from `/0` through `/128`, without requiring divisibility by 8.
- Add bit-accurate IPv6 prefix matching for ACL checks.
- Apply the same matching behavior in both `miniserv.pl` and `webmin/webmin-lib.pl`.
- Fix IPv6 canonicalization for `::` and trailing `::` forms used by the matcher.
- Add regression tests for `/0`, `/29`, `/32`, `/63`, `/64`, `/127`, and `/128`.
ⓘ The Postfix module’s “Virtual Domains” page actually manages `virtual_alias_maps`, not `virtual_mailbox_domains`.
This updates the UI labels, help text, ACL wording, and log message to call the feature "Virtual Alias Maps", reducing confusion without changing behavior.
https://github.com/webmin/webmin/issues/1541
ⓘ Adds hidden `tempdirname` support and normalizes custom temp paths so Webmin always uses a private final directory like `.webmin`, while keeping the existing permission checks.
setup_ssl_contexts() registers CTX_set_tlsext_servername_callback only
on the default (*) context. Per-IP contexts from ipcert entries do not
get the callback. When a client connects to a dedicated IP, the per-IP
context is used directly, the SNI callback never fires, and the wrong
certificate is served regardless of the requested hostname.
Fix: register the same SNI callback on every context in %ssl_contexts.
The callback function is unchanged. Clients without SNI still receive
the per-IP certificate. Clients with SNI get the correct certificate
matched by hostname.
Related: https://github.com/virtualmin/virtualmin-gpl/pull/1229
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ⓘ Support IPv4/IPv6 identifiers in Webmin Let’s Encrypt requests, add days/months renewal scheduling, and enforce safe automatic renewal defaults for short-lived IP certificates.
a56748a3fc (r188893457)
ⓘ Move "custom" and "postgresql" into the core Webmin package and add Debian/RPM package metadata so upgrades retire the old standalone module packages cleanly.
This PR adds a standalone Systemd Services and Units module for managing systemd units across system and user scopes.
The module keeps systemd-specific behavior separate from the legacy Bootup and Shutdown module and is implemented as standalone `strict`/`warnings` Perl code rather than depending on its existing init helpers. Those helpers intentionally smooth over multiple init systems, while this module keeps systemd-specific file handling, user-manager behavior, ACL checks, and control operations explicit, scoped, and easier to audit.
It includes:
- Tabbed views for services, timers, sockets, paths, targets, storage, resources, devices, and user units
- Guided creation and editing for common unit types, with contextual fields, validation, and help
- User-scoped unit management with linger support and safe handling of home-directory unit files
- Runtime actions for start, stop, restart, enable, disable, status, logs, properties, dependencies, and system-unit mask/unmask
- Drop-in override inventory plus create, edit, and delete flows
- Manual unit-file editing with daemon reload reminders and actions
- Configurable module behavior, visible tabs, display options, and post-create navigation
- Comprehensive ACL controls for system/user scopes, actions, manual edits, drop-ins, linger, reload, backup, and user filters
- Safe Webmin user support through a scoped safe ACL preset
- Virtualmin integration for granting domain owners access to their own systemd user units
- Tests for unit generation, safety checks, ACL behavior, user-unit handling, backup coverage, and Perl::Critic compatibility
A companion Virtualmin PR adds template integration so domain owners can be granted scoped access to their own systemd user units when this module is installed.
* The MySQL module in Alpine it lacks default values. This change
uses the necessary values for the module to function.
* These values work for any version of Alpine Linux from 3.8
to Edge, since MariaDB is and always has been the default package.
* The tools server package was included in the package instalation
* Missing changelog entries were included
The issue is a known xterm.js/iPadOS Safari hardware-keyboard bug where Ctrl+C may be reported like Enter/newline instead of terminal interrupt input; it has been fixed upstream in xterm.js.
https://github.com/xtermjs/xterm.js/issues/5721
This PR adds baseline Alpine Linux support in Webmin with OS detection, APK package and update backend, OpenRC boot integration, ifupdown-style networking support and DHCPD defaults.
https://github.com/webmin/webmin/issues/2353
The Webmin SSL LE renewal setting is labeled as "Months between automatic renewal", but it was previously saved as a calendar-style cron month expression like `*/N`.
That is not the same as an elapsed renewal interval. Webmin’s cron matcher evaluates month schedules against calendar month numbers, so values like `*/5`, `*/12`, or values above `12` do not reliably mean “renew every N months”. This could cause uneven or dangerously late renewal timing.
This changes the renewal job to use Webmin cron’s elapsed `interval` support instead of calendar-month matching.
- Saves automatic renewal as `renew * 30 * 24 * 60 * 60` seconds.
- Clears the cron time fields so the scheduler uses the interval path only.
- Keeps `months => '*/N'` so the SSL UI can continue to display the saved renewal value.
- Resets the renewal timer only after a newly issued certificate.
- Preserves the existing renewal timer for settings-only saves.
- Migrates existing month-based Let's Encrypt renewal jobs during postinstall.
This fixes saving a custom Webmin temp directory from Webmin Configuration → Advanced Options.
Previously, setting a path like /var/webmin/tmp failed if the directory did not already exist. Users had to create it manually, and it was easy to end up with a bad parent directory such as /var/webmin with 0700, which made the saved temp path unusable.
This change makes Webmin handle the safe parts automatically:
- Creates missing temp directories and parents as 0755
- Validates existing parent directories are traversable by group/other
- Requires the final Webmin temp directory to be root-owned with mode 0755
- Allows shared temp dirs like /var/tmp when root-owned and 1777
- Shows a clear error when existing permissions must be fixed manually
ⓘ Avoid forcing xterm shell PTYs into IO::Stty raw/noecho mode, which can leave interactive shells with broken echo, line editing, and control-key behavior. Keep the existing stty logic for other PTY callers, but add an opt-out flag so xterm can let the shell manage terminal mode normally.
https://github.com/webmin/webmin/issues/2452
ⓘ Prefer Netplan when Debian has Netplan YAML config, otherwise select the existing NetworkManager backend for Debian systems with saved NM connection profiles, with regression tests for backend selection.
https://github.com/webmin/webmin/issues/2559
* Note: Map the shared EL PHP configuration file /etc/php.ini to the php-fpm boot action when that service exists, so the PHP-FPM status monitor can resolve current status on Rocky/RHEL systems.
root@rocky9-pro:~# php-fpm -i | grep "Loaded Configuration File"
Loaded Configuration File => /etc/php.ini
https://github.com/webmin/webmin/issues/2599
* Note: Ignore zero-byte or unreadable Maildir files when listing messages, log skipped entries, and treat cached zero-byte reads as missing to avoid blank rows and inflated counts.
*Note: Removes Kea-specific ACL wrapper helpers and switches ACL editor/runtime checks to standard Webmin handling with direct supplied ACL values and get_module_acl checks.
Refresh stale Maildir and sorted mailbox indexes when messages disappear, avoid rendering missing messages, and keep IMAP sort indexes in sync with mailbox count changes.
* Note: Bring the Apache module to parity with the Nginx module's Debian
sites-available/sites-enabled handling: list disabled vhost files
alongside active ones, toggle their state via symlink with apachectl
configtest rollback, and delete VirtualHost blocks from inactive files.
When Virtualmin manages a vhost, defer enable/disable to Virtualmin's
own forms instead of touching the symlink directly.
https://forum.virtualmin.com/t/enable-disable-toggle-buttons-in-ngnix-module/137238/4?u=ilia
* Note: Preserve existing Netplan indentation when updating DNS settings, validate with netplan generate before applying, and surface apply errors to avoid network loss from malformed YAML.
* Note: Add lightweight quick controls for allowed ports, services, and port forwards, with service autocomplete, ACLs, and structured NAT redirect/DNAT editing.
* Note: Resolve nftables profile service ports from supported Webmin module configs and /etc/services, with safe fallbacks and SSH custom-port regression coverage.
https://github.com/webmin/webmin/issues/2706
* Note: Declare the SSL certificate lookup user as lexical inside `handle_request`, so a previously matched client certificate user cannot survive into later keep-alive requests handled by the same miniserv child.
Enlightened by: https://github.com/webmin/webmin/pull/2699
* Note: Validate File Manager action name/file parameters as checked paths under the current directory and `allowed_paths` before operations, blocking traversal and symlink escapes.
* Note: Canonicalize and check uploaded file and directory-upload paths against `allowed_paths` before creating directories or writing files, preventing traversal outside the File Manager ACL sandbox.
* Note: Add a reusable save_profile_ruleset() API for other modules (like Virtualmin Config), and.
Example:
foreign_require("nftables");
nftables::save_profile_ruleset('profile_virtualmin', 'virtualmin', '*');
* Note: Create profile rulesets using named inet_service sets for selected service ports instead of emitting one accept rule per port. Keep scoped rules such as DHCPv6 and mDNS explicit, split TCP and UDP port sets to avoid widening access, and normalize interval set elements so ranges are valid and non-overlapping.
* Note: Track saved nftables configuration changes with Apache-style config/apply timestamp flags, expose the standard restart.cgi header action for themes, and use it as the single apply endpoint. The button expands to “Apply Changes” when saved rules need applying, while the existing Apply Configuration action now routes through restart.cgi and clears the pending state after a successful apply.
* Note: When a table is deleted from the nftables module, also remove that same table from the active kernel ruleset. The delete path now updates the saved Webmin configuration first, then runs a targeted nft delete table for the selected table only, after checking that the active table is not externally managed.
* Note: Prevent incompatible nftables sets from being used in rule fields. The rule editor now only offers address sets for address matches and port/service sets for port matches, while save and apply paths validate existing set references before writing or loading rules. This avoids nft datatype mismatch errors such as using inet_proto sets with tcp dport.
Rework the nftables module so Webmin manages its saved nftables configuration as the source of truth instead of directly editing the live ruleset. Add an active ruleset view for inspecting live tables and importing copies into Webmin-managed config if needed, track managed and imported tables with metadata, and prevent externally managed tables from being overwritten during apply.
Co-authored-by: Copilot <copilot@github.com>
Rework the nftables index page to make table, chain, and set management clearer. Move table actions next to the table selector, split chains and sets into tabs, use checked tables with standard select/invert controls for bulk deletes, move Add Rule into the Actions column, and replace nested rule tables with tag-based row layout.
Fix nftables direct-mode operations so create, edit, delete, and move actions apply only the selected table instead of rewriting or applying the full ruleset. This avoids copying firewalld-owned rules, or any other externally managed rules, into Webmin’s save file and prevents operations from failing against externally managed tables. Also remove previously added unsafe full-ruleset flush action and keep Apply Configuration out of direct mode (will be further reworked).
* Note: Recognize mariadbd option groups and binaries in MySQL config, SSL, syslog, and safe-mode command discovery while preserving existing mysqld/mariadb compatibility.
* Note: Replace external tnef/opentnef shelling with Convert::TNEF for
application/ms-tnef attachments.
For root-run Webmin mailbox parsing, decode TNEF as the mailbox owner
instead of root by carrying open_user on mail objects and switching to
that user for the parser temp-file work.
https://github.com/webmin/usermin/issues/132
* Note: Adds support for custom ACME directory URLs in Webmin’s SSL certificate flow, including optional EAB credentials, renewal persistence, and compatibility fixes for saved validation modes.
https://github.com/webmin/webmin/issues/2669
Webmin now uses the bundled QRCode::Encoder implementation by default to generate TOTP QR codes locally and inline, without relying on qr.cgi or external services.
This encoder requires Perl 5.24 or newer, so qrencode is no longer included as a recommended package dependency. On older systems where the bundled encoder cannot run, admins can still install qrencode manually to restore QR generation support.
Systems old enough to lack Perl 5.24 are typically already well past their supported security lifecycle, so keeping qrencode preinstalled by default is no longer treated as a packaging requirement. When neither option is available, Webmin falls back cleanly to manual TOTP setup using the shared secret.
https://github.com/webmin/webmin/issues/2667#issuecomment-4247431279
[no-build]
*Note: This is important if we want to support tags inside tab name, for example in case of showing a count of elements using HTML tag created with `ui_tag('tt')`
* Note: Fix Miniserv IPv6 hostname resolution and matching used by access control when `alwaysresolve` is enabled:
1. Correct `to_ip6address()` success handling (before getaddrinfo result was interpreted backwards)
2. In `ip_match()`, resolve hostnames with `to_ip6address()` for IPv6 clients instead of IPv4-only `to_ipaddress()`
3. Canonicalize IPv6 addresses before reverse and forward verification to avoid format-based mismatches.
4. Mirror the IPv6 logic change in "webmin/webmin-lib.pl"
https://forum.virtualmin.com/t/webmin-access-control-for-domain-names-with-ipv6/136661?u=ilia
All $err type error messages in HTML are safely escaped now.
URL-encoding in links:
I have implemented urlize() in all places where user input ($in{'device'}, $in{'slice'}, $in{'part'}) was included in the URL (footer/redirect/other link), e.g. edit_slice.cgi?device=...&slice=....
Affected files include: create_part.cgi, create_slice.cgi, delete_part.cgi, delete_slice.cgi, change_slice_label.cgi, part_form.cgi, slice_form.cgi, edit_slice.cgi, edit_part.cgi, fsck.cgi, newfs.cgi, newfs_form.cgi, save_part.cgi, save_slice.cgi, save_slice_label.cgi, zfs_create.cgi, zvol_create.cgi.
*Note: Even though the current code generally works, it's better to properly reap child processes with waitpid to avoid infinite timeouts and also clean up inherited FDs.
*Note: The problem was that we didn't check the commit message correctly and didn't add the right flag to rebuild all non-core Webmin modules. Now it should work.
* Add improvements to user input validation across all modules
* Update Authentic theme to the latest version with various improvements and fixes:
- Add a new airy button style to the light palette to match the dark one
- Fix to optimize stats server to reduce WebSocket memory usage
- Fix the real-time follow indicator when viewing the journal
- Fix regex-based match highlighting when viewing the journal
- Fix mail compose panel sizing in HTML mode on low-DPR screens
- Fix display of the 2FA QR code in the dark palette
#### 2.621 (January 25, 2026)
* Fix to prevent NAT from dropping idle RPC sessions during long transfers
* Fix to improve the message when socket authentication is used in the MySQL/MariaDB module
* Fix to make upload tracking work correctly in all situations and on all systems
* Fix to correctly display the PHP version in the PHP Configuration module when managing packages
* Update Xterm.js to the latest version with lots of improvements and fixes
* Update Authentic theme to the latest version with various improvements and fixes:
* Fix the support for the cloned Terminal module
* Fix error handling for file uploads when the user is out of quota or the system is out of disk space in the File Manager module
* Fix to stop loading full file into memory for upload check to prevent memory leak on large uploads in the File Manager module
* Fix to permanently save the state of the navigation menu and right-side slider when toggled
#### 2.620 (January 9, 2026)
* Add ability to use correct driver depending on the database in MySQL/MariaDB module
* Add improvements to BIND DNS module for better key management
* Add support for Ubuntu 26.04 development preview
* Add a config option to increase the RPC timeout
* Add support for EC SSL certificate and key in the ProFTPd module
* Add support for using `gpart` in FreeBSD disk management module
* Add support for Ed25519 public key in User and Groups module
* Fix RPC session timeout during large file transfers
* Fix selection and configuration of TLS certificate and key in the ProFTPd module
* Update Authentic theme to the latest version with various improvements and fixes:
* Add support for multiple scrollable tabs in the File Manager
* Fix displaying of the right-side toolbar in File Manager when using Safari
* Fix to print menu separator when no virtual servers are added yet in Virtualmin
* Fix bugs in white palette
* Fix exported file name in data tables
#### 2.610 (November 23, 2025)
* Fix to drop dependency on `IO::Pty` Perl module
* Fix `virtual-server` module server-side search to work correctly
@@ -270,7 +407,7 @@
* Fix to using the `qrencode` command to generate QR codes locally instead of the remote Google Chart API
* Fix a number of various other issues
#### 2.105 (November 09, 2023)
#### 2.105 (November 9, 2023)
* Fix param to read only headers [sourceforge.net/usermin-bugs#501](https://sourceforge.net/p/webadmin/usermin-bugs/501/)
* Fix not to set `reuse` flag on initial Let's Encrypt request
* Fix to correctly escape mail file names upon deletion
@@ -285,7 +422,7 @@
* Fix the absent init script for legacy systems after the initial installation
* Update the Authentic theme to the latest version with various fixes and improvements
#### 2.103 (October 08, 2023)
#### 2.103 (October 8, 2023)
* Add support for hostname detection using `hostnamectl` command
* Add support for other ACME services
* Add ability to hide dotfiles in File Manager [#1578](https://github.com/webmin/authentic-theme/issues/1578)
@@ -334,7 +471,7 @@
* Fix clearing packages caches before checking for updates in status collection #1863
* Update the Authentic theme to the latest version
#### 2.020 (March 08, 2023)
#### 2.020 (March 8, 2023)
* Add full locale support
* Add slave zone file format option in BIND DNS module
* Add support for editing ACLs in File Manager
@@ -502,12 +639,12 @@ This release adds automatic translations for all languages in UTF-8, updates the
This release updates the built-in Let's Encrypt client, adds support for creating "safe-mode" Webmin users, support for CAA records in the BIND module, and the ability to search Postfix maps. It also updates the Authentic theme to the latest version, which includes numerous improvements to the File Manager and overall UI.
#### Version 1.930 (August 18, 2019)
These updates fix a [security vulnerability](http://webmin.com/security.html) and should be installed IMMEDIATELY by all users. Although it is not exploitable in a Webmin install with the default configuration, upgrading is strongly recommended.
These updates fix a [security vulnerability](https://webmin.com/security/) and should be installed IMMEDIATELY by all users. Although it is not exploitable in a Webmin install with the default configuration, upgrading is strongly recommended.
#### Version 1.920 (July 04, 2019)
#### Version 1.920 (July 4, 2019)
This update includes the latest theme version, translation updates, the ability to disable hosts file entries, easier monitoring of bootup actions, and a bunch of bugfixes.
#### Version 1.910 (May 09, 2019)
#### Version 1.910 (May 9, 2019)
This release includes theme and translation updates, a page for editing package repositories, cron and status module improvements, and a bunch of other bugfixes and small improvements.
#### Version 1.900 (November 19, 2018)
@@ -519,7 +656,7 @@ This version includes Ubuntu 18 network config support, translation updates, mul
#### Version 1.880 (March 16, 2018)
This version includes German, Catalan and Bulgarian translation updates, a new version of the Authentic theme, support for directly editing the MySQL and PostgreSQL config files, Let's Encrypt bugfixes, more control over system status email notifications, and more.
#### Version 1.870 (December 08, 2018)
#### Version 1.870 (December 8, 2018)
This release includes many translation updates, fixes for Let's Encrypt support, UI cleanups, and most importantly a new major version of the Authentic theme.
#### Version 1.860 (October 10, 2017)
@@ -528,7 +665,7 @@ This release includes Let's Encrypt DNS fixes, Majordomo module improvements, XS
#### Version 1.850 (June 28, 2017)
This release includes Let's Encrypt fixes, Majordomo module improvements, FirewallD forwarding support, translation updates, an update to the Authentic theme, and a bunch of other bugfixes.
#### Version 1.840 (May 08, 2017)
#### Version 1.840 (May 8, 2017)
This major release includes a large theme update, XSS security fixes, per-domain SSL cert support, thin-provisioned LVM support, Let's Encrypt improvements, translation updates, and the usual gang of bugfixes. Also available is Usermin 1.710, which contains many of the same updates.
#### Version 1.830 (December 29, 2016)
@@ -835,4 +972,3 @@ This updated includes the latest Authentic theme, a new IPv6 Firewall module for
#### Version 1.140
* Fixed a security hole that allowed any user to view the configuration of any module, even those that they should not have access to.
* Fixed a security hole that could allow an attacker to lock valid users by sending a bogus username or password.
@@ -23,7 +23,6 @@ index_modgroups=Modules from group $1
index_sync=Configure Unix User Synchronization
index_unix=Configure Unix User Authentication
index_sessions=View Login Sessions
index_rbac=Setup RBAC
index_delete=Delete Selected
index_joingroup=Add To Group:
index_eulist=Failed to list users : $1
@@ -95,9 +94,6 @@ edit_switch=Switch to User
edit_forgot=Send Password Reset Link
edit_return=Webmin user
edit_return2=Webmin group
edit_rbacdeny=RBAC access mode
edit_rbacdeny0=RBAC only controls selected module ACLs
edit_rbacdeny1=RBAC controls all modules and ACLs
edit_global=Permissions for all modules
edit_templock=Temporarily locked
edit_temppass=Force change at next login
@@ -185,8 +181,6 @@ acl_title3=For group $1 in $2
acl_options=$1 access control options
acl_config=Can edit module configuration?
acl_reset=Reset To Full Access
acl_rbac=Get access control settings from RBAC?
acl_rbacyes=Yes (overrides settings below)
acl_uall=All users
acl_uthis=This user
@@ -382,13 +376,6 @@ hide_clone=(Clone $1)
switch_euser=You are not allowed to switch to this user
switch_eold=Existing session not found!
rbac_title=Setup RBAC
rbac_desc=Webmin's RBAC integration provides a way for user module and ACL permissions to be determined from an RBAC (Role Based Access Control) database, rather than Webmin's own configuration files. Once RBAC support is enabled, any user for whom the <b>RBAC controls all modules and ACLs</b> option is selected will have his capabilities determined by RBAC rather than Webmin's own access control settings.
rbac_esolaris=RBAC is only supported on Solaris at the moment, and so cannot be used on this $1 system.
rbac_eperl=The Perl module $1 needed for RBAC integration is not installed. <a href='$2'>Click here</a> to have it installed now.
rbac_ecpan=You do not have access to Webmin's Perl Modules page in order to install the necessary $1 module for RBAC integration.
rbac_ok=RBAC integration is available on this system, and can be enabled on a per-user basis on the Edit Webmin User page.
udeletes_err=Failed to delete users
udeletes_jerr=Failed to add users to group
udeletes_enone=None selected
@@ -514,9 +501,18 @@ twofactor_enable=Enroll For Two-Factor Authentication
twofactor_enrolling=Enrolling for two-factor authentication with provider $1 ..
twofactor_failed=.. enrollment failed : $1
twofactor_done=.. complete. Your ID with this provider is <tt>$1</tt>.
twofactor_done=.. completed, with ID <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=No button clicked!
twofactor_testdesc=Before logging out, you can test your new two-factor authentication setup here by entering a token. If for some reason it doesn't work, turn off two-factor authentication and try setting it up again.
twofactor_testfield=Two-factor token
twofactor_test=Validate Token
twofactor_terr=Failed to test two-factor setup
twofactor_etestuser=Login does not have two-factor enabled!
twofactor_testing=Testing two-factor validation with $1 ..
twofactor_testfailed=.. test failed! Maybe the wrong token was entered, or your authentication app has not been configured correctly?
twofactor_testok=.. test passed! You can now safely login using two-factor authentication.
index_certmsg=Klikk på denne knappen for å spørre etter et SSL sertifikat som vil gi deg sikker login i Webmin uten å måtte skrive brukernavn og passord.
@@ -14,7 +14,7 @@ index_global=Global ACL
index_users=Webmin Brukere
index_groups=Webmin Grupper
index_group=Gruppe
index_nousers=Ingen editerbar Webminbruker er definert.
index_nousers=Ingen editerbar Webmin-bruker er definert.
index_nogroups=Ingen editerbar Webmin gruppe er definert.
index_gcreate=Lag en ny Webmin gruppe
index_members=Medlemmer
@@ -30,11 +30,11 @@ index_eglist=Kunne ikke liste grupper : $1
edit_title=Rediger Webmin Bruker
edit_title2=Lag Webmin Bruker
edit_title3=Opprett sikker Webminbruker
edit_readonly=Denne Webminbrukeren bør ikke redigeres siden den vedlikeholdes av modulen $1. <a href='$2'>Klikk her</a> for å ignorere denne advarselen og redigere brukeren allikevel - men vær oppmerksom på at manuelle endringer kan bli overskrevet!
edit_rights=Tilgangsrettigheter for Webminbruker
edit_title3=Opprett sikker Webmin-bruker
edit_readonly=Denne Webmin-brukeren bør ikke redigeres siden den vedlikeholdes av modulen $1. <a href='$2'>Klikk her</a> for å ignorere denne advarselen og redigere brukeren allikevel - men vær oppmerksom på at manuelle endringer kan bli overskrevet!
edit_rights=Tilgangsrettigheter for Webmin-bruker
edit_user=Brukernavn
edit_cloneof=Klober Webminbruker
edit_cloneof=Klober Webmin-bruker
edit_real=Virkelig navn
edit_group=Medlem av gruppe
edit_pass=Passord
@@ -89,7 +89,7 @@ edit_selall=Velg alle
edit_invert=Inverter valg
edit_hide=Skjul ubrukte
edit_switch=Bytt til bruker
edit_return=Webminbruker
edit_return=Webmin-bruker
edit_return2=Webmin gruppe
edit_rbacdeny=RBAC tilgangsmodus
edit_rbacdeny0=RBAC kontrollerer valgte modul ACLer
@@ -126,21 +126,21 @@ save_eoverlay=Et tema-overlegg kan ikke velges med mindre et tema er
save_edeny=Du kan ikke nekte deg selv tilgang til Webmin Bruker modulen
save_eos=Det samme som Unix passord opsjonen er ikke støttet på ditt operativsystem.
save_emd5=Det samme som Unix passord opsjonen kan ikke brukes på systemer med MD5 kryptering
save_eunix=Unixbruker '$1' eksisterer ikke
save_eunix=Unix-brukeren '$1' eksisterer ikke
save_emod=Du kan ikke bevilge tilgang til modul '$1'
save_ecreate=Du har ikke tilgang til å opprette brukere
save_euser=Du har ikke tilgang til å editere denne brukeren
save_euser=Du har ikke tilgang til å redigere denne brukeren
save_ecolon=Passord kan ikke inneholde : karakteren
save_epass=Passord er ikke gyldig : $1
save_eself=Din vanlige IPadresse ($1) vil bli nektet
save_eself=Din vanlige IP-adresse ($1) vil bli nektet
save_epam=PAM autentisering er ikke tilgjengelig fordi <tt>Authen::PAM</tt> Perl modulen ikke er installert eller ikke virker ordentlig.
save_epam2=Du kan bruke Webmin's Perl Modules modul til <a href='$1'>laste ned å installere Authen::PAM</a> nå.
save_egroup=Du har ikke rettigheter til å tildele til den gruppen
save_enone=Ingen adresse er tastet inn
save_enet='$1' er ikke en gyldig nettverksadresse
save_enet='$1' er ikke en gyldig nettverksadresse
save_emask='$1' er ikke en gyldig nettmaske
save_eip='$1' er ikke en komplett IP eller nettverksadresse
save_ehost=Kunne ikke finne IPadresse for '$1'
save_eip='$1' er ikke en komplett IP eller nettverksadresse
save_ehost=Kunne ikke finne IP-adresse for '$1'
save_elogouttime=Manglende eller ikke-numerisk tid for utlogging ved inaktivitet
save_eminsize=Manglende eller ikke-numerisk minimum passordlengde
save_edays=Ingen tillatte dager valgt
@@ -223,11 +223,11 @@ acl_times=Kan endre tillatte innloggings-tider?
acl_pass=Kan endre passord-begrensinger?
acl_sql=Kan konfigurere databasen for brukere og grupper?
log_modify=Modifisert Webminbruker $1
log_rename=Skiftet navn på Webminbruker $1 til $2
log_create=Opprettet Webminbruker $1
log_clone=Klonet Webminbruker $1 til $2
log_delete=Slettet Webminbruker $1
log_modify=Modifisert Webmin-bruker $1
log_rename=Skiftet navn på Webmin-bruker $1 til $2
log_create=Opprettet Webmin-bruker $1
log_clone=Klonet Webmin-bruker $1 til $2
log_delete=Slettet Webmin-bruker $1
log_acl=Oppdatert tilgang for $1 i $2
log_reset=Tilbakestilte tilgang for $1 i $2
log_cert=Utlevert sertifikat for bruker $1
@@ -235,10 +235,10 @@ log_modify_g=Modifisert Webmin gruppe $1
log_rename_g=Forandret navn på Webmin gruppe $1 til $2
log_create_g=Opprettet Webmin gruppe $1
log_delete_g=Slettet Webmin gruppe $1
log_switch=Byttet til Webminbruker $1
log_delete_users=Slettet $1 Webminbrukere
log_switch=Byttet til Webmin-bruker $1
log_delete_users=Slettet $1 Webmin-brukere
log_delete_groups=Slettet $1 Webmin grupper
log_joingroup=La til $1 Webminbrukere i gruppe $2
log_joingroup=La til $1 Webmin-brukere i gruppe $2
log_pass=Endret passord-begrensinger
log_unix=Endret unix bruker-autentisering
log_sync=Endret unix bruker-synkronisering
@@ -273,7 +273,7 @@ gsave_edesc=Ugyldig beskrivelse - tegnet : er ikke tillatt
convert_title=Konverter Brukere
convert_ecannot=Du har ikke tilgang til å konvertere Unix brukere
convert_nogroups=Ingen Webmin gruppe er definert på ditt system. Du må i det minste lage en gruppe før du konverterer brukere, dette for å kunne sette rettigheter for konverterte brukere.
convert_desc=Denne Dette feltet lar deg konvertere eksisterende Unixbrukere til Webminbrukere. Rettighetene til hver nye Webminbruker vil bestemmes av rettighetene til gruppen som valgt over.
convert_desc=Denne Dette feltet lar deg konvertere eksisterende Unix-brukere til Webmin-brukere. Rettighetene til hver nye Webmin-bruker vil bestemmes av rettighetene til gruppen som valgt over.
convert_0=Alle brukere
convert_1=Bare brukere
convert_2=Alle unntagen brukere
@@ -284,43 +284,43 @@ convert_sync2=Synk. passord med Unix-bruker i fremtiden?
convert_ok=Konverter nå
convert_err=Kunne ikke konvertere brukere
convert_eusers=Ingen brukere inntastet
convert_egroup=Unixgruppe eksisterer ikke
convert_emin=Ugyldig minimum brukerID (UID)
convert_emax=Ugyldig maksimum brukerID (UID)
convert_egroup=Unix-gruppen eksisterer ikke
convert_emin=Ugyldig minimum bruker-ID (UID)
convert_emax=Ugyldig maksimum bruker-ID (UID)
convert_ewgroup=Ingen sånn Webmin gruppe
convert_ewgroup2=Du har ikke rettigheter til å tilordne nye brukere til denne gruppen
convert_skip=Hoppet over $1
convert_exists=$1 Eksisterer allerede
convert_invalid=$1 er ikke et gyldig Webminbrukernavn
convert_invalid=$1 er ikke et gyldig Webmin-brukernavn
convert_added=$1 er lagt til
convert_msg=Konverterer Unixbrukere...
convert_msg=Konverterer Unix-brukere...
convert_user=Unix-bruker
convert_action=Handling utført
convert_action=Handling utført
convert_done=$1 brukere konvertert, $2 ugyldig, $3 finnes allerede, $4 ekskludert.
convert_users=Brukere som skal konverteres
sync_title=Unix Bruker Synkronisering
sync_desc=Dette feltet lar deg konfigurere automatisk synkronisering av Unixbrukere laget via Webmin og brukere i denne modulen.
sync_title=Unix-brukersynkronisering
sync_desc=Dette feltet lar deg konfigurere automatisk synkronisering av Unix-brukere laget via Webmin og brukere i denne modulen.
sync_nogroups=Ingen Webmin gruppe er definert på ditt system. Du må i det minste lage en gruppe før du konverterer brukere, dette for å kunne sette rettigheter for konverterte brukere.
sync_when=Synkroniser når
sync_create=Opprett Webminbruker når en Unix bruker blir laget.
sync_update=Oppdater passende Webminbruker når Unixbrukere blir oppdatert.
sync_delete=Slett passende Webminbruker når Unixbrukere blir slettet.
sync_create=Opprett Webmin-bruker når en Unix bruker blir laget.
sync_update=Oppdater passende Webmin-bruker når Unix-brukere blir oppdatert.
sync_delete=Slett passende Webmin-bruker når Unix-brukere blir slettet.
sync_group=Tilordne ny bruker til Webmin gruppe
sync_unix=Sett passord for nye brukere til Unix autentisering
sync_ecannot=Du har ikke rettigheter til å konfigurere bruker synkronisering.
unix_title=Unix Bruker Autentisering
unix_title=Unix-brukerautentisering
unix_err=Kunne ikke lagre Unix autentisering
unix_desc=Denne siden lar deg konfigurere Webmin til verifisere login forsøk med systemets bruker liste og PAM. Dette kan være nyttig hvis du har mange eksisterende Unixbrukere som du ønsker å gi tilgang til Webmin.
unix_def=Tillat bare login av Webminbrukere
unix_sel=Tillat Unixbrukere i listen nedenfor å logge inn ..
unix_desc=Denne siden lar deg konfigurere Webmin til verifisere login forsøk med systemets bruker liste og PAM. Dette kan være nyttig hvis du har mange eksisterende Unix-brukere som du ønsker å gi tilgang til Webmin.
unix_def=Tillat bare login av Webmin-brukere
unix_sel=Tillat Unix-brukere i listen nedenfor å logge inn ..
unix_mode=Tillat
unix_mall=Alle brukere
unix_group=Medlemmer i gruppen..
unix_user=Tillat alle Unixbrukere login med rettigheter som Users
unix_user=Tillat alle Unix-brukere login med rettigheter som Users
unix_who=Bruker eller gruppe
unix_to=Som Webminbruker
unix_to=Som Webmin-bruker
unix_ecannot=Du har ikke rettigheter til å konfigurere Unix bruker autentisering
unix_epam=Unix autentisering er ikke tilgjengelig fordi <tt>Authen::PAM</tt> Perl modul ikke er installert eller ikke virker som den skal.
twofactor_already=Din Webmin-bruker har allerede to-faktor autentisering aktivert med leverandør %1 og konto ID %2.
twofactor_already2=Webmin-brukeren %3 har allerede to-faktor autentisering aktivert med leverandør %1 og konto ID %2.
twofactor_desc=Denne siden lar deg aktivere to-faktor autentisering for din Webminbruker vha. <a href='$2' target=_blank>$1</a>. Når denne er aktivert kreves det et ekstra autentiserings-token når du logger inn på Webmin.
twofactor_desc=Denne siden lar deg aktivere to-faktor autentisering for din Webmin-bruker vha. <a href='$2' target=_blank>$1</a>. Når denne er aktivert kreves det et ekstra autentiserings-token når du logger inn på Webmin.
twofactor_desc2=Denne siden lar deg aktivere to-faktor autentisering for Webmin-brukeren $1 vha. <a href='$2' target=_blank>$1</a>. Når denne er aktivert vil det kreves et ekstra autentiserings-token for å logge inn på Webmin.
twofactor_enable=Meld inn til to-faktor autentisering
twofactor_header=Detaljer for innmelding til to-faktor autentisering
acl_dirs=Apachedirektiver tilgængelige<br><font size=-1>(Subjekt tor type begrænsinger ovenfor)</font>
acl_dirs=Tilgængelige Apache-direktiver, begrænset af de direktivtyper, der er valgt ovenfor
acl_dirs0=Alle
acl_dirs1=Kun listede ..
acl_dirs2=Alle undtagen listede ..
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.