Version 1.61.5

Released: 2020-09-26

Hook: php_safe_mode_post.sh for OpenBasedir and Safe mode new

Custom 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.

domain_modify_post.sh/domain_modify_pre.sh to be triggered when modifying User new

When 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

option to block/allow plus char in new email names new

A 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

Auto assign global IPs to Admins/Resellers new

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|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)

dovecot_extra_fields: option to add extra data to dovecot passwd entries new

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

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

FastCGI: Per-Domain php.ini for Apache (TEMPLATES) new

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

Multiple log entries: Clean shutdown successful fixed

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.

Database: deleting a User when on multiple DBs needs new methods fixed

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.

MariaDB 10.5 not setting mysql_use_new_user_methods=1 internally with mysql_detect_correct_methods=1 fixed

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.

Last Updated: