Version 1.61.5
Released: 2020-09-26
new
Hook: php_safe_mode_post.sh for OpenBasedir and Safe modeCustom hook path anytime the CMD_PHP_SAFE_MODE is saved for a given domain (one call per domain)
Create path: /usr/local/directadmin/scripts/custom/php_safe_mode_post/YOURNAME.sh
which is the new format of custom hook, allowing multiple scripts per hook name.
VARIABLES
domain=domain.com
username=fred
type=open_basedir|safe_mode
set=on|off
RETURN VALUE
exit code has no effect to call. Output will not be shown.
new
domain_modify_post.sh/domain_modify_pre.sh to be triggered when modifying UserWhen changing features on a User, if any of the following have been changed:
- spam
- catchall
- cgi
- ssl
- php
The existing domain_modify_pre.sh and domain_modify_post.sh scripts will be triggered. As usual, any non-zero exit value will have their output added to the resulting message. The post.sh will not throw an error or block, but will have it's message listed. The pre.sh will block if a non-zero output is thrown, but
new
option to block/allow plus char in new email namesA user+name@domain.com email address is "valid" to send to, but the + char is not intended to be used for account as it's reserved for sieve filtering: https://tools.ietf.org/html/rfc5228
Extra check added for email, forwarder creation, to no longer allow + characters in the name.
Internal default: allow_email_plus=0
where you can turn it on to still allow the + character by typing:
cd /usr/local/directadmin
./directadmin set allow_email_plus 1
service directadmin restart
T29233
new
Auto assign global IPs to Admins/Resellers1.61.6 UPDATE When creating a Reseller, if "Shared - Server" is selected for the Reseller creation (ip=shared), but "Share Server IP" is disabled in the selected package, and there is more than 1 global IP that will be assigned to this Reseller, then the fallback will be to use the first global IP that was assigned to the Reseller (eg: lowest sorted number) Reseller Create: Can select global IP for new User (SKINS)
The new shared "global" IPs did not get automatically added to an Admin/Reseller's ip.list file unless they were "free" or the "server" ip address, controlled by packages. Global IPs are simply shared IPs with an extra global=yes tag.
This feature allows you to auto-assign your global IPs to any new Admin/Reseller, simply by adding a directadmin.conf setting, eg: cd /usr/local/directadmin ./directadmin set auto_add_global_ip 'VALUE'
where VALUE would be in the form:
1|random
2|random
1|1.2.3.4,1.2.3.5
2|1.2.3.4,1.2.3.5
1.2.3.4
where the VALUE can be a literal IP address so the new Admin/Reseller always gets this global IP: auto_add_global_ip=1.2.3.4
The integer format before the | pipe represents the number of global IPs to randomly select from the given list. 1|1.2.3.4,1.2.3.5 Will, pick either the first or 2nd value. The integer can be any positive value, assuming you have enough global IPs to satisfy it.
1|1.2.3.4 would be the same as: 1.2.3.4
IPv6 IPs are allowed, but must be in the same full-format syntax (no ::1 shorthand)
If the 2nt part after the pipe is "random", eg; 1|random
this means DA will obtain all possible global IPs on the box, and will pick 1 from that list. Similarly: 2|random will assign any 2 random IPs to the new Admin/Reseller account, assuming they're available.
This will not return errors to the GUI, but any issues can be debug with debug level 10, looking for output starting with: IP::fill_auto_add_global_ips (the function that deciphers the da.conf option, and fills the Admin/Reseller's ip list)
new
dovecot_extra_fields: option to add extra data to dovecot passwd entriesThere might be cases where you want to append each /etc/virtual/domain.com/passwd entry for a given domain with, for example: userdb_mail=maildir:~/Maildir:UTF-8
This change lets you do this. At the moment, it's only available at the back-end for manual addition to: /usr/local/directadmin/data/users/USERNAME/domains/DOMAIN.COM.conf
as: dovecot_extra_fields=userdb_mail=maildir:~/Maildir:UTF-8
and when the domain's passwd file is rewritten, this will be appended to the end.
DIRECTADMIN.CONF
The new internal default is: dovecot_extra_fields=1
where, you can disable the domain.com.conf check by setting:
/usr/local/directadmin/directadmin set dovecot_extra_fields 0
service directadmin restart
REWRITE
Once a domain's conf file has the setting, you can issue an /etc/virtual/domain.com/passwd rewrite, by running: echo "action=rewrite&value=email_passwd" >> /usr/local/directadmin/data/task.queue; /usr/local/directadmin/dataskq d2000
T30736
new
FastCGI: Per-Domain php.ini for Apache (TEMPLATES)Related to the existing feature for per-Domain php.ini settings: Per-Domain php.ini settings through GUI (TEMPLATES)(SKINS)
this change expands the functionality to include FastCGI mode for php with Apache.
TEMPLATES
virtual_host2.conf virtual_host2_sub.conf virtual_host2_secure.conf virtual_host2_secure_sub.conf user_virtual_host.conf
Add token: |FASTCGI_PHP_SETTINGS|
to the FCGIWrapper line, after |FASTCGI_OPENBASEDIR|
The |FASTCGI_PHP_SETTINGS| token will be filled in the format, for example:
-d memory_limit="368M"
T31253
fixed
Multiple log entries: Clean shutdown successfulCode rewrite for 1.61.4 triggered the adding of the log entry: Clean shutdown successful in the system.log for closing of each child process, rather than just the parent process.
fixed
Database: deleting a User when on multiple DBs needs new methodsRemoving a User should use mysql statements. This is already done for the removal of the actual DB User. However, if that User is on multiple databases, this method is not used, and it would fallback to only clear the User from the mysql.db. This should not be done with the DELETE command for mysql.db, and has now been changed to use the correct REVOKE statement on each mysql.db host for that db+user, for the case: mysql_detect_correct_methods=1 which should be all modern DA boxes.
fixed
MariaDB 10.5 not setting mysql_use_new_user_methods=1 internally with mysql_detect_correct_methods=1The mysql_detect_correct_methods internal variable was not correctly set for MariDB 10.5. It was working for 10.2, 10.3 and 10.4 Code changed to handle future MariaDB releases as well.