newHook: php_safe_mode_post.sh for OpenBasedir and Safe mode
Custom hook path anytime the CMD_PHP_SAFE_MODE is saved for a given domain (one call per domain)
which is the new format of custom hook, allowing multiple scripts per hook name.
domain=domain.com username=fred type=open_basedir|safe_mode set=on|off
exit code has no effect to call. Output will not be shown.
newdomain_modify_post.sh/domain_modify_pre.sh to be triggered when modifying User
When changing features on a User, if any of the following have been changed:
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
newoption to block/allow plus char in new email names
A firstname.lastname@example.org 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
newAuto assign global IPs to Admins/Resellers
1.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|184.108.40.206,220.127.116.11 2|18.104.22.168,22.214.171.124 126.96.36.199
where the VALUE can be a literal IP address so the new Admin/Reseller always gets this global IP: auto_add_global_ip=188.8.131.52
The integer format before the | pipe represents the number of global IPs to randomly select from the given list. 1|184.108.40.206,220.127.116.11 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|18.104.22.168 would be the same as: 22.214.171.124
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)
newdovecot_extra_fields: option to add extra data to dovecot passwd entries
There 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
and when the domain's passwd file is rewritten, this will be appended to the end.
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
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
newFastCGI: 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.
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:
fixedMultiple log entries: Clean shutdown successful
Code 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.
fixedDatabase: deleting a User when on multiple DBs needs new methods
Removing 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.
fixedMariaDB 10.5 not setting mysql_use_new_user_methods=1 internally with mysql_detect_correct_methods=1
The 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.