Search K
Appearance
Appearance
As of DirectAdmin version 1.59, the number of users a reseller can create is controlled in the reseller packages.
Starting from DirectAdmin version 1.51, additional directories exist in the reseller home directory (as well in the admin home directory), like:/home/res1x/domains/default/
and/home/res1x/domains/suspended/
Which contain the default files from /usr/local/directadmin/data/templates/suspended. These could be customized after copying to /usr/local/directadmin/data/templates/custom/suspended. The same is true for the default/ directory.
It will also now include an .htaccess file to prevent any caching of the html/htm/js/css files, so that the moment a domain is unsuspended, the client's browser won't cache the suspended page.
Before the global IP type, only the server IP could be shared among many Resellers, and shared IPs could only "officially" exist in one Reseller at a time. This is no longer the case with the implementation of global IPs.
One may allow multiple resellers to use a shared secondary IP with DirectAdmin now via the shared IP option global=yes.
This will be set by the Admin in the Admin Level -> IP Manager for a given "shared" IP. Once an IP is global, it can then be assigned to multiple Resellers, and will be treated as a shared IP. Accessing the IP directly should go to the Admin's shared area, rather than the Reseller's shared area.
This feature replaces the following guide:
https://help.directadmin.com/item.php?id=538
The Reseller Level -> IP Manager will always hide the User count for global shared IPs.
The "Remove from Reseller" button will remove any global shared IP from all Reseller/Admin ip.list files, but as before, does require the value to be 0 prior to DA allowing removal.
Setting a status=free IP to be global from the details page will automatically assign this IP to the current Admin, and convert the status to shared.
Note that, with the implementation of this feature, you can now remove the server IP from a Reseller! In Admin Level -> IP Manager, when you select the server IP checkbox, if you previously clicked "Free from Reseller", it would throw an error. This button is now allowed and DA will use the current drop-down Reseller selector to know which reseller to remove the server IP from.
There are 2 areas that control which IPs a Reseller with have when they're created.
ip.list)IPs: Number of free IPs to assign to the ResellerShare Server IP: Checkbox to optionally include the Server IP. Is not part of the IPs count.user_ip.list)Shared - Server: The created Reseller's own account will be on the server IP address. Variable:sharedShared - Reseller's IP: The created Reseller's own account will use one of the assigned IPs. It will be set to be a shared IP. Variable:sharedresellerAssigned: The created Reseller's own account will own one of the assigned IPs. It will be set to be an owned IP. Variable:assigned1.2.3.4 - Shared - Global: The created Reseller's own account will use the specified Global IP address. Variable:1.2.3.4If you wish to include a random or specific Global IP to the Reseller's ip.list (for user with their Users), set, eg:
da config-set auto_add_global_ip '1|random'Shared - Global IP is chosen for the Account IP, should auto_add_global_ip be is set, the returned auto_add_global_ip list will be guaranteed to contain at least that selected Account IP.Share Server IP and Shared - Server is chosen, if auto_add_global_ip returns a list, a Global IP will be used for the Account IP.Share Sever IP and Share - Server is chosen, the Server IP sill be used for the Account IP.auto_add_global_ip is set, that returned list will be added to the Reseller's ip.list file.Related:
To save changes, you can either use:
CMD_IP_MANAGER_DETAILS
method: POST
action=global
ip=1.2.3.4
global=yes|no #ABSENCE of global=* counts as no, since it's a checkbox.OR
CMD_IP_MANAGER
method: POST
action=select
set_global=<any text>
select0=1.2.3.4
(select1=1.2.3.5)
global=yes|no #DIFFERENT FROM ABOVE in that absence of global implies yes.You can pass global=no if you want to set it to no for the selected IPs. Enhanced does not do this.
When viewing the details of an IP:
CMD_IP_MANAGER_DETAILS?ip=1.2.3.4&json=yesif set, there will be:
"global": "yes"The global value might not be present, which can be assumed set to "no". If "yes", then there could be multiple Resellers/Admins managing this IP.
For all loads of the details of the IP, of any status, DA will scan all Reseller/Admin ip.list files to see who has this IP listed. This array will be shown as:
"resellers_with_ip":
[
"admin"
],This is primarily for informational purposes, but can be handy in case the IP value is more than 0 and you're not sure who's on it (alternatively, one could check the Show All Users page).
The admin/ip_manager_details.html file has the following form:
|?GLOBAL_CHECKED=|
|*if global="yes"|
|?GLOBAL_CHECKED=checked|
|*endif|
|?SHOW_GLBOAL=no|
|*if status="shared"|
|?SHOW_GLBOAL=yes|
|*endif|
|*if status="free"|
|?SHOW_GLBOAL=yes|
|*endif|
|*if SHOW_GLBOAL="yes"|
<tr><td class=list_alt>|LANG_GLOBAL|</td><td class=list_alt>
<form class='mb0' action='CMD_IP_MANAGER_DETAILS' method='POST'>
<input type='hidden' name='action' value='global'>
<input type='hidden' name='ip' value='|ip|'>
<input type='checkbox' name='global' value='yes' |GLOBAL_CHECKED|> When enabled, this IP can be used by multiple Resellers
<input type='submit' value='|LANG_SAVE|' class='float_right'>
</form>
</td></tr>
|*endif|Creation of Users now lists global IPs. Instead of shared, they'll show as:
1.2.3.4 - Shared - Global
Global - randomly selectedwhich will assume the Reseller has a global IP assigned in their account.
The randomly selected value will be:
ip=global_randomThe same values will be listed in the Admin Backup -> Restore area (CMD_ADMIN_BACKUP).
The call to CMD_IP_CONFIG?json=yes will also include have_global=yes if there are global IPs.
Keep in mind, a global IP address is a sub-set of a shared IP. So having a global IP address by default means you have at least one shared.
The CMD_IP_CONFIG?json=yes also includes a Select box array as:
"ip_list" { "0": { ... } }in the standard select-box format DA provides in other areas.
The following is retained for troubleshooting purposes and for those that may require this functionality but be using an older version of DirectAdmin that doesn't support the Global IP feature.
There might be a case where you don't want to give your Resellers the server IP, and only let them all share 1 "shared IP" between them.
Assumptions:
1.2.3.4 - Server IP
1.2.3.5 - Shared IP
Ensure the shared IP has been created in the Admin Level -> IP Manager. Assign it to the "admin" account on that page, then go to: Admin -> Reseller Level -> IP Manager and ensure the 1.2.3.5 IP is set as "shared".
Now we want all newly created Resellers to have the server IP swapped with this shared IP upon their creation. To do this, create the /usr/local/directadmin/scripts/custom/user_create_post_confirmed.sh script and add the code:
#!/bin/sh
IPL=/usr/local/directadmin/data/users/$username/ip.list
SERVER=1.2.3.4
SHARED=1.2.3.5
if [ -s ${IPL} ]; then
STR="perl -pi -e \'s/^${SERVER}\\$/${SHARED}/\' ${IPL}"
eval ${STR}
echo "Swapped server IP ${SERVER} with shared IP ${SHARED} for $username";
fi
exit 0;chmod 755 /usr/local/directadmin/scripts/custom/user_create_post_confirmed.shNOTE: Their User Level domain will still be set to the server IP. More perl regex calls would be needed to accomplish that (user.conf, user.ip_list, httpd.conf, domains/domain.com.conf, domains/domain.com.ip_list, /var/named/domain.com.db).
If you want to set a header in the welcome message, example:
Content-Type: text/plain; charset=windows-1251you would add:
|?HEADER=Content-Type: text/plain; charset=windows-1251|to your welcome message.
Note: you can already add:
<html>to the very top of your welcome message, to get DA to add:
MIME-Version: 1.0
Content-Type: text/htmlAlso, no "creative" headers are allowed. DA does strict character checking to make sure you headers are sane.
For international messages that need UTF-8 encoding, add this line:
|?HEADER=Content-Type: text/plain; charset=utf-8|Extra headers can now be used. Their token names will be:
HEADER2
HEADER3
HEADER4in addition to the already existing token value HEADER .
E.g.,
|?HEADER=MIME-Version: 1.0|
|?HEADER2=Content-Type: text/plain; charset=utf8|This does not apply to the HEADER value used in tickets, only welcome emails.
Related keywords/files:u_welcome.txtr_welcome.txta_welcome.txtlost_password_email.txt