Version 1.33.0

Released: 2008-12-18 and new

Pre/Post scripts for changing the IP of a user. and



Difficult password enforcement option new

directadmin.conf option to allow enforcing users to use difficult/strong passwords.

Option is:


The default is enforce_difficult_passwords=0, so this will not change anything unless you turn it on.

If enabled, all places that have users enter a new password will be enforced.

Locations that you enter a password but it's only for a password match are not enforced. Example, the cluster option requires a password for a remote server. This example would not be checked because it's up to the other box to use difficult passwords.

The password checking script is:


If you wish to make changes to it, copy it to:


The default enforcements are both upper and lower case.

Must include numbers

Must be 6 or more characters long.

There is also a commented out check which you can enable, to require users to include "shift characters, like !@#$, etc..

Ability to translate hardcoded text via language packs new

Until now, the hardcoded bits of DA were not easily translatable.

With this feature, hardcoded items can be easily translated using the usual means of copying the en version of the packs and changing the text.

The path for the internal texts (for the enhanced skins and en) is:


In this directory are txt files for different class types within DA, eg:




the table.txt for example will allow you to translate texts that show up in all of the tables DA creates. The bulk of this particular file has words for the advanced filter options, just an example.

The design of the internal bits of this feature is somewhat complex, but simple at the same time. A global "server" class is created to manage all data. Client classes are spawned to be used within each module class (eg the table class) to serve up the texts. The client class gets all data from the server class. The server class is centralized so that multiple txt read-ins are not done to maximize efficiency. Also the client classes share a large buffer used for assembling the texts, since only 1 is ever needed. Basically, this feature has been optimized as much as it can to remove redundancies and slow-downs. It's also to help me translate the source code bits faster, since there are around 10,000 entries that need converting to this system (I won't be doing all of them.. eg: many error messages, you'll never see wouldn't be worthwhile).

Note all translations are not complete for this release.

I'll be doing more for future releases.

At the moment, the bulk of the User Level texts are complete, as well as some areas in Admin/Reseller Levels.

Bug found for not using other skin/langs, will be resolved for next release:

internal text lang files not using other skins

Recursive chmod in filemanager new

Checkbox next to the [755] textarea with "recusive".

This applies to directories when setting permissions (not files)

With this checkbox enabled, the diretory being set will have it's permissions set recusively, meaning all files and folders below it will have the same permissions.

Delete button on message page (SKINS) new

Simple addition of a delete button on the "view message" page, so you don't have to go back and delete it from the list.



|*if type="message"|
<form name=tableform2 action='/CMD_TICKET' method='POST'>
<input type=hidden name=action value="multiple">
<input type=hidden name=select0 value="|number|">
<p width=100% align=right><input type=submit name=delete value="Delete"></p>

Ability to force which hostname is used when accessing DA new

By default DA allows people to connect to any IP, domain name, subdomain, etc.. that lives on port 2222. Their browser will show whatever they type.

This feature allows the admin to force a redirect to the hostname of their choice.

This mainly applies if the host has ssl certificates setup for DA. If a client types in, this isn't authenticated. This feature will redirect clients to the hostbname specified, thus allowing the certifiate to be authenticated on the domain it's designed for.

So basically, if this feature is used, DA checks the Host header passed. If the value doesn't match, DA redirects the User to the value set in the feature.

The option for your directadmin.conf is:


by default it's null (not set) which is also how it's disabled (so it's disabled by default).

If you setup a value:

and then restart DA, then the location value in a browser will always be redirected to

NOTE about APIs:

disable force_hostname for API calls

Hard quota limit multiplier vs soft quota limit. new

Previously, the hard limit and soft limit for system quotas were the same.

Once you hit your limit, you can no longer write anymore.

This new variable allows the admin to specify how much over the soft limit (spefied in packages, etc) the hard should be. The user can go over the soft limit for a short period of time (default is one week as defined by the system quotas). Once that time is exceed, then he cannot add anymore. The user can never exceed the hard limit, who's value is specified by the the multiplier.

The default is:


if you wish to change it, add that line with the new value to your directadmin.conf and restart directadmin.

To reset all of your users to have a higher hard limit after updating, type:

echo "action=rewrite&value=quota" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d800

and confirm it with:

repquota -a

Note that this is not run with the update of DA.

For your existing users, if you wish to have them set to 1.1, you must run the above code or they'll remain sitting at the 1.0 default. Only new users and changes to existing account settings will have the 1.1 multipliers.

The main reason for this feature is to lower the impact of over quota usage has on the email system. It allows more time to react before emails can no longer be saved.

An example of the multiplier is if you spefied a 100meg limit for a User.

The soft limit will be 100meg. The hard limit will be 110meg (assuming default of 1.1). The user can then add up to 110 meg for a duration of 1 week. After 1 week he cannot add anymore files. He the user goes below 100meg during his grace period, his timer is reset.

repair broken next_ticket.number in realtime new

If DA is trying to send a ticket to someone, and the next_ticket.number file is missing or empty (possibly due to full disks), DA will now go into the tickets directory to find out what the next_ticket.number contents should actually be and seamlessly return the correct number, and repair the next_ticket.number (fill it with the next number in the sequence). More logging is also added to the error.log and errortaskq.log to tell admin's what's wrong with the next_ticket.number file.

change root to hostmaster in dns zone contact new

the old zone email info used to be:

default for new domains with this release will be

since "root" isn't accepted, while hostmaster is.

random password generator to ensure numbers new

Because of the "hard password" feature, the random password generator has to step up to also generate hard passwords. Previously there was no guarantee a number would show up in the password. This change to the javascript.html in the skins now checks for numbers in the new passwords, and if no number is generated, the generator is send back again, up to 20 times (then it errors out) custom script new

/usr/local/directadmin/scripts/custom/ will be run after the write of /etc/httpd/conf/ips.conf, if the script exists.

No values are passed via environment. (get list from /usr/local/directadmin/data/admin/ips.list if you need the list of IPs)

Ability to reset apache ownership recursively blindly. new

This feature adds a new button to the filemanager next to the "Add to clipboard" and "set permissions" buttons.

The user select directories/files and clicks the button that says "Reset Owner".

DA then resets that folder and all files/folders below it to their user if the files/folders it checks are chowned to apache. The items selected do not require apache ownership to initiate this traversal.. so you can have apache files in a user owned directory, and simply reset the directory which sets all files within it.

todovecot mode to only run on non-converted users new

If the todovecot command has stopped for whatever reason mid-conversion, running dovecot again will result in duplicate emails.

This feature is very simple, it adds a smart=yes flag on the todovecot task.queue command. When this flag is set, the convertor checks for the existence of /home/user/Maildir. If tha path exists, that user is skipped and the conversion moves on to the next user.

The command would look like:

cd /usr/local/directadmin
echo "action=convert&value=todovecot&smart=yes" >> /usr/local/directadmin/data/task.queue
./dataskq d

If you need to run the conversion for just 1 user, use this:

ability to only run action=convert&value=todovecot for 1 user.

filter option to not use /new/ for Maildir paths new

directadmin.conf option:


is the default value. Set to 0 to disable using:



in the filters for hardcoded text.

Note you must still edit the templates to remove the /new/ path for non-hardcoded texts.

Mail Queue Admin using duplicate BODY token (SKINS) fixed

The token BODY is used in the file:


to show the textarea for the email body.

This token is a duplciate from the header.html file for <body |BODY| ..> so one must be changed.

The mail_id_info.html will have the BODY token changed to EMAIL_BODY.

The CMD_API command will not change, the "body" variable will remain just "body".

awstats data dir chmod to 700 prevents backup from reading fixed

When creating a backup, the awstats .data directory cannot be read because it's chowned to root, chmod to 700.

The fix (at the time being) will be to set it to 755.

chmod -R 755 /home/*/domains/*/awstats/.data
Last Updated: