DirectAdmin v1.652 has been released

Hmm

No, /usr/local/directadmin/custombuild/build is it's own file, not a symlink.

When did /usr/local/directadmin/custombuild/build become a symlink to /usr/local/directadmin/directadmin?

I do have a pre/post update_da hook in place that monitors changes to /usr/local/directadmin/custombuild/build and /usr/local/directadmin/custombuild/build had been being updated with DirectAdmin updates. Strange that it would be updating /usr/local/directadmin/custombuild/build if /usr/local/directadmin/custombuild/build is suppose to be a symlink to /usr/local/directadmin/directadmin.

Symlinking /usr/local/directadmin/custombuild/build to /usr/local/directadmin/directadmin does appear to correct the issue.

This leads to another concern. Was there a DirectAdmin update that was suppose to symlink /usr/local/directadmin/custombuild/build to /usr/local/directadmin/directadmin but it didn't?

It looks like from DirectAdmin 1.650 build b7461e717bf3a0db98de1db8db3fe557aea60edf to DirectAdmin 1.651 build c7b73cd05f44bddde4df9d27ea75aca4c82292a2 there was some changes made to /usr/local/directadmin/custombuild/build. I would somewhat gather from that, that at least with DirectAdmin 1.651 build c7b73cd05f44bddde4df9d27ea75aca4c82292a2 it was expected that /usr/local/directadmin/custombuild/build would be it's own file and not a symlink - otherwise why would the DirectAdmin 1.651 build c7b73cd05f44bddde4df9d27ea75aca4c82292a2 update be making changes to /usr/local/directadmin/custombuild/build?

Is there a changelog entry that details when this change happened?
 
@sparek yes, it was replaced by symlink on one of updates.
When?

And why weren't any of my DirectAdmin servers updated to reflect this?

This is really the first I am hearing of this.

No doubt that this is the cause of my issues, thanks to all that pointed this out. But now I'm trying to undercover the mystery of why this didn't happen for any of my servers during whatever update this was changed to. Not trying to say that it's not my own fault in some capacity - just simply I don't know why it didn't happen as was (apparently) expected. Kind of makes me wonder what else should have happened that didn't happen.

Is there a missing DirectAdmin integrity check in place during DirectAdmin updates? Seems at the very least a DirectAdmin update should notify the server administrator when something with DirectAdmin's systems doesn't line up with the expected behavior.

It would also be nice if this was noted some where in the changelog from version to version. Or was this done during a hotfix that is not documented in the changelogs? And maybe it is noted some where and I'm just not aware of it. I'm having trouble finding it if it is.
 
I've been trying to find if I can find where this actually happened. My guess is version 1.651. And I'm guessing there's no integrity checks so that if 1.651 is skipped, you miss out on all of these "changes."

Here is what I found on one of our servers:

# /usr/local/directadmin/directadmin version
DirectAdmin v.1.650 b7461e717bf3a0db98de1db8db3fe557aea60edf

# mv /usr/local/directadmin/custombuild/build /usr/local/directadmin/custombuild/build.old

# ln -s /usr/local/directadmin/directadmin /usr/local/directadmin/custombuild/build

# ls -al /usr/local/directadmin/custombuild/build
lrwxrwxrwx 1 root root 34 Aug 28 16:24 /usr/local/directadmin/custombuild/build -> /usr/local/directadmin/directadmin

# /usr/local/directadmin/custombuild/build versions
Unknown command `versions', did you mean `version'?
Usage:
directadmin [OPTIONS] <command>

Help Options:
-h, --help Show this help message

Available commands:
admin Print admin username
admin-backup Perform admin-level backups
api-url Create a login-key for HTTP API access (aliases: root-auth-url)
build Run CustomBuild script, manage 3rd party software
config Print DirectAdmin config
config-get Get DirectAdmin config value
config-set Set DirectAdmin config value
doveadm-quota Print email usage quota
info Print binary compile info
install Run DirectAdmin installer
license Print license info
license-set Change license key
login-url Create single-sign-on URL (aliases: create-login-url)
permissions Set DirectAdmin files permissions
server Run DirectAdmin web server
suspend-domain Suspend domain
suspend-user Suspend user
taskq Run dataskq
unsuspend-domain Unsuspend domain
unsuspend-user Unsuspend user
update Update DirectAdmin
version Print DirectAdmin version


This would seem to indicate - at least in version v.1.650 b7461e717bf3a0db98de1db8db3fe557aea60edf - that /usr/local/directadmin/custombuild/build is not expected to be a symlink to /usr/local/directadmin/directadmin.

But I'm not seeing anything at


That mentions anything about /usr/local/directadmin/custombuild/build becoming a symlink to /usr/local/directadmin/directadmin
 
I'm wondering if

/usr/local/directadmin/custombuild/build update_da

and

/usr/local/directadmin/directadmin update

No longer accomplish the same thing?

I use - /usr/local/directadmin/custombuild/build update_da - to update DirectAdmin on all of our servers.

I'm wondering if that - /usr/local/directadmin/custombuild/build update_da - doesn't actually make the /usr/local/directadmin/custombuild/build symlink, but perhaps /usr/local/directadmin/directadmin update does?

I only have the one 1.650 server left. I can switch it to use the stable channel and upgrade it to 1.651, but by just having one server to run this on, I can't run both /usr/local/directadmin/custombuild/build update_da and /usr/local/directadmin/directadmin update to determine if there are any differences in the upgrade process.
 
So I decided to use /usr/local/directadmin/directadmin update to update the server from DirectAdmin v.1.650 b7461e717bf3a0db98de1db8db3fe557aea60edf to DirectAdmin v.1.651 c7b73cd05f44bddde4df9d27ea75aca4c82292a2 on the stable channel.

# /usr/local/directadmin/directadmin update
updating to directadmin stable v1.651 c7b73cd05f44bddde4df9d27ea75aca4c82292a2 linux_amd64

# /usr/local/directadmin/directadmin version
DirectAdmin v.1.651 c7b73cd05f44bddde4df9d27ea75aca4c82292a2

# ls -al /usr/local/directadmin/custombuild/build
-rwxr-xr-x 1 root root 676374 Aug 28 17:49 /usr/local/directadmin/custombuild/build


So that did not appear to create /usr/local/directadmin/custombuild/build as a symlink to /usr/local/directadmin/directadmin

Alas, it does not appear that DirectAdmin v.1.651 c7b73cd05f44bddde4df9d27ea75aca4c82292a2 expects /usr/local/directadmin/custombuild/build to be a symlink anyway:

# mv /usr/local/directadmin/custombuild/build /usr/local/directadmin/custombuild/build.old

# ln -s /usr/local/directadmin/directadmin /usr/local/directadmin/custombuild/build

# /usr/local/directadmin/custombuild/build versions
Unknown command `versions', did you mean `version'?
Usage:
directadmin [OPTIONS] <command>

Help Options:
-h, --help Show this help message

Available commands:
admin Print admin username
admin-backup Perform admin-level backups
api-url Create a login-key for HTTP API access (aliases: root-auth-url)
build Run CustomBuild script, manage 3rd party software
config Print DirectAdmin config
config-get Get DirectAdmin config value
config-set Set DirectAdmin config value
doveadm-quota Print email usage quota
info Print binary compile info
install Run DirectAdmin installer
license Print license info
license-set Change license key
login-url Create single-sign-on URL (aliases: create-login-url)
permissions Set DirectAdmin files permissions
server Run DirectAdmin web server
suspend-domain Suspend domain
suspend-user Suspend user
taskq Run dataskq
unsuspend-domain Unsuspend domain
unsuspend-user Unsuspend user
update Update DirectAdmin
version Print DirectAdmin version


So let's try updating it to 1.652 using /usr/local/directadmin/directadmin update. Let's reset everything:

# rm -f /usr/local/directadmin/custombuild/build

# mv /usr/local/directadmin/custombuild/build.old /usr/local/directadmin/custombuild/build

# /usr/local/directadmin/directadmin set update_channel current
update_channel=current

# /usr/local/directadmin/custombuild/build versions

DirectAdmin 1.651 build c7b73cd05f44bddde4df9d27ea75aca4c82292a2 to 1.652 build 09894e5e75bd47a69827dd5e5c24de5b24759b16 update is available.

# ls -al /usr/local/directadmin/custombuild/build
-rwxr-xr-x 1 root root 676374 Aug 28 17:49 /usr/local/directadmin/custombuild/build

# /usr/local/directadmin/directadmin update
updating to directadmin current v1.652 09894e5e75bd47a69827dd5e5c24de5b24759b16 linux_amd64

# /usr/local/directadmin/directadmin version
DirectAdmin v.1.652 09894e5e75bd47a69827dd5e5c24de5b24759b16

# ls -al /usr/local/directadmin/custombuild/build
-rwxr-xr-x 1 root root 676374 Aug 28 17:49 /usr/local/directadmin/custombuild/build


So what exactly is suppose to turn /usr/local/directadmin/custombuild/build into a symlink to /usr/local/directadmin/directadmin?

Am I the only person that this is not happening with? Is everybody else's DirectAdmin server having /usr/local/directadmin/custombuild/build as a symlink to /usr/local/directadmin/directadmin?

At least with DirectAdmin v.1.652 09894e5e75bd47a69827dd5e5c24de5b24759b16 manually creating the symlink works:

# mv /usr/local/directadmin/custombuild/build /usr/local/directadmin/custombuild/build.old

# ln -s /usr/local/directadmin/directadmin /usr/local/directadmin/custombuild/build

# ls -al /usr/local/directadmin/custombuild/build
lrwxrwxrwx 1 root root 34 Aug 28 18:03 /usr/local/directadmin/custombuild/build -> /usr/local/directadmin/directadmin

# /usr/local/directadmin/custombuild/build versions
Latest version of DirectAdmin: 1.652 build 09894e5e75bd47a69827dd5e5c24de5b24759b16
Installed version of DirectAdmin: 1.652 build 09894e5e75bd47a69827dd5e5c24de5b24759b16


Did some earlier version of 1.652 perform this /usr/local/directadmin/custombuild/build symlink action and then subsequent 1.652 hotfixes did not?
 
So I decided to use /usr/local/directadmin/directadmin update to update the server from DirectAdmin v.1.650 b7461e717bf3a0db98de1db8db3fe557aea60edf to DirectAdmin v.1.651 c7b73cd05f44bddde4df9d27ea75aca4c82292a2 on the stable channel.

# /usr/local/directadmin/directadmin update
updating to directadmin stable v1.651 c7b73cd05f44bddde4df9d27ea75aca4c82292a2 linux_amd64

# /usr/local/directadmin/directadmin version
DirectAdmin v.1.651 c7b73cd05f44bddde4df9d27ea75aca4c82292a2

# ls -al /usr/local/directadmin/custombuild/build
-rwxr-xr-x 1 root root 676374 Aug 28 17:49 /usr/local/directadmin/custombuild/build


So that did not appear to create /usr/local/directadmin/custombuild/build as a symlink to /usr/local/directadmin/directadmin

Alas, it does not appear that DirectAdmin v.1.651 c7b73cd05f44bddde4df9d27ea75aca4c82292a2 expects /usr/local/directadmin/custombuild/build to be a symlink anyway:

# mv /usr/local/directadmin/custombuild/build /usr/local/directadmin/custombuild/build.old

# ln -s /usr/local/directadmin/directadmin /usr/local/directadmin/custombuild/build

# /usr/local/directadmin/custombuild/build versions
Unknown command `versions', did you mean `version'?
Usage:
directadmin [OPTIONS] <command>

Help Options:
-h, --help Show this help message

Available commands:
admin Print admin username
admin-backup Perform admin-level backups
api-url Create a login-key for HTTP API access (aliases: root-auth-url)
build Run CustomBuild script, manage 3rd party software
config Print DirectAdmin config
config-get Get DirectAdmin config value
config-set Set DirectAdmin config value
doveadm-quota Print email usage quota
info Print binary compile info
install Run DirectAdmin installer
license Print license info
license-set Change license key
login-url Create single-sign-on URL (aliases: create-login-url)
permissions Set DirectAdmin files permissions
server Run DirectAdmin web server
suspend-domain Suspend domain
suspend-user Suspend user
taskq Run dataskq
unsuspend-domain Unsuspend domain
unsuspend-user Unsuspend user
update Update DirectAdmin
version Print DirectAdmin version


So let's try updating it to 1.652 using /usr/local/directadmin/directadmin update. Let's reset everything:

# rm -f /usr/local/directadmin/custombuild/build

# mv /usr/local/directadmin/custombuild/build.old /usr/local/directadmin/custombuild/build

# /usr/local/directadmin/directadmin set update_channel current
update_channel=current

# /usr/local/directadmin/custombuild/build versions

DirectAdmin 1.651 build c7b73cd05f44bddde4df9d27ea75aca4c82292a2 to 1.652 build 09894e5e75bd47a69827dd5e5c24de5b24759b16 update is available.

# ls -al /usr/local/directadmin/custombuild/build
-rwxr-xr-x 1 root root 676374 Aug 28 17:49 /usr/local/directadmin/custombuild/build

# /usr/local/directadmin/directadmin update
updating to directadmin current v1.652 09894e5e75bd47a69827dd5e5c24de5b24759b16 linux_amd64

# /usr/local/directadmin/directadmin version
DirectAdmin v.1.652 09894e5e75bd47a69827dd5e5c24de5b24759b16

# ls -al /usr/local/directadmin/custombuild/build
-rwxr-xr-x 1 root root 676374 Aug 28 17:49 /usr/local/directadmin/custombuild/build


So what exactly is suppose to turn /usr/local/directadmin/custombuild/build into a symlink to /usr/local/directadmin/directadmin?

Am I the only person that this is not happening with? Is everybody else's DirectAdmin server having /usr/local/directadmin/custombuild/build as a symlink to /usr/local/directadmin/directadmin?

At least with DirectAdmin v.1.652 09894e5e75bd47a69827dd5e5c24de5b24759b16 manually creating the symlink works:

# mv /usr/local/directadmin/custombuild/build /usr/local/directadmin/custombuild/build.old

# ln -s /usr/local/directadmin/directadmin /usr/local/directadmin/custombuild/build

# ls -al /usr/local/directadmin/custombuild/build
lrwxrwxrwx 1 root root 34 Aug 28 18:03 /usr/local/directadmin/custombuild/build -> /usr/local/directadmin/directadmin

# /usr/local/directadmin/custombuild/build versions
Latest version of DirectAdmin: 1.652 build 09894e5e75bd47a69827dd5e5c24de5b24759b16
Installed version of DirectAdmin: 1.652 build 09894e5e75bd47a69827dd5e5c24de5b24759b16


Did some earlier version of 1.652 perform this /usr/local/directadmin/custombuild/build symlink action and then subsequent 1.652 hotfixes did not?
Custombuild is now embedded in DirectAdmin binary, and a new command da build has been created to use it.
For compatibility, old script is symlinked to DirectAdmin binary which if run under build name acts same as if da build was run.

DirectAdmin update procedure is responsible for symlinking old custombuild script location to DirectAdmin binary, more specifically the scripts/update.sh -> ${DA_PATH}/directadmin p ensures the symlink creation.

The pre/post update hooks you mentioned, what do they do? Do they have any effect on custombuild script's path?
 
The pre/post scripts just monitor changes from the previous version to the new version.

One thing it does is compare the output of /usr/local/directadmin/directadmin c prior to the upgrade and then after the upgrade to see if any new configuration options are present.

Running /usr/local/directadmin/directadmin p results in the following error:

# /usr/local/directadmin/directadmin p
setting directadmin file permissions: dafs: mkdir 700 as 992:990: is not a directory


I'm not sure what it's trying to create or where.
 
The pre/post scripts just monitor changes from the previous version to the new version.

One thing it does is compare the output of /usr/local/directadmin/directadmin c prior to the upgrade and then after the upgrade to see if any new configuration options are present.

Running /usr/local/directadmin/directadmin p results in the following error:

# /usr/local/directadmin/directadmin p
setting directadmin file permissions: dafs: mkdir 700 as 992:990: is not a directory


I'm not sure what it's trying to create or where.
Hmm yeah, error is not very expressive, will adjust that with the next release.

The command is trying to create/ensure the following paths are directories. Could you check them manually? Perhaps you have some symlinks setup?

Code:
/usr/local/directadmin
/usr/local/directadmin/conf
/usr/local/directadmin/scripts
/usr/local/directadmin/shared
/usr/local/directadmin/custombuild
/usr/local/directadmin/custombuild/tmp
/usr/local/directadmin/custombuild/cache
/usr/local/directadmin/plugins
/usr/local/directadmin/data
/usr/local/directadmin/data/users
/usr/local/directadmin/data/admin
/usr/local/directadmin/data/admin/ips
/usr/local/directadmin/data/admin/packages
/usr/local/directadmin/data/tickets
/usr/local/directadmin/data/sessions
/home
/home/tmp
/var/spool/virtual
/etc/virtual
/var/log/directadmin
 
Doing an ls of these directories:

Code:
# ls -ald /usr/local/directadmin /usr/local/directadmin/conf /usr/local/directadmin/scripts /usr/local/directadmin/shared /usr/local/directadmin/custombuild /usr/local/directadmin/custombuild/tmp /usr/local/directadmin/custombuild/cache /usr/local/directadmin/plugins /usr/local/directadmin/data /usr/local/directadmin/data/users /usr/local/directadmin/data/admin /usr/local/directadmin/data/admin/ips /usr/local/directadmin/data/admin/packages /usr/local/directadmin/data/tickets /usr/local/directadmin/data/sessions /home /home/tmp /var/spool/virtual /etc/virtual /var/log/directadmin
drwx--x--x  11 mail     mail     4096 May  2 15:10 /etc/virtual
drwxr-xr-x. 12 root     root     4096 May  2 15:10 /home
drwxrwxrwt   2 root     root     4096 Aug 29 00:10 /home/tmp
drwxr-xr-x   8 diradmin diradmin 4096 Aug 28 12:57 /usr/local/directadmin
drwx------   2 diradmin diradmin 4096 Aug 28 12:57 /usr/local/directadmin/conf
drwx------   9 root     root     4096 Aug 28 12:57 /usr/local/directadmin/custombuild
drwxr-xr-x   2 root     root     4096 Aug  3 13:48 /usr/local/directadmin/custombuild/cache
drwxr-xr-x   2 root     root     4096 Aug 28 12:57 /usr/local/directadmin/custombuild/tmp
drwx--x--x   9 diradmin diradmin 4096 Aug 29 10:57 /usr/local/directadmin/data
drwx------   5 diradmin diradmin 4096 Aug 29 11:13 /usr/local/directadmin/data/admin
drwx------   2 diradmin diradmin 4096 Aug 29 00:10 /usr/local/directadmin/data/admin/ips
drwx------   2 diradmin diradmin 4096 Apr 26 14:47 /usr/local/directadmin/data/admin/packages
drwx------   2 diradmin diradmin 4096 Aug  4 15:28 /usr/local/directadmin/data/sessions
drwx------   3 diradmin diradmin 4096 Apr 26 15:06 /usr/local/directadmin/data/tickets
drwx--x--x   9 diradmin diradmin 4096 May  2 15:10 /usr/local/directadmin/data/users
drwx--x--x   5 diradmin diradmin 4096 Apr 26 16:45 /usr/local/directadmin/plugins
drwx--x--x   3 diradmin diradmin 4096 Aug 28 12:57 /usr/local/directadmin/scripts
drwxr-xr-x   3 root     root     4096 Aug 28 12:57 /usr/local/directadmin/shared
drwx------   2 diradmin diradmin 4096 Aug 29 04:37 /var/log/directadmin
drwxrwxrwt   2 mail     mail     4096 Apr 26 14:47 /var/spool/virtual

Does anything look out of the ordinary there?
 
There is no --debug flag for permission checks

# da p --debug=2000
unknown flag `debug'
Usage:
directadmin [OPTIONS] permissions


No clue what options are available for permissions check. Doesn't appear to be any documentation.
 
There is no --debug flag for permission checks

# da p --debug=2000
unknown flag `debug'
Usage:
directadmin [OPTIONS] permissions


No clue what options are available for permissions check. Doesn't appear to be any documentation.
Yeah, permissions command has no debug flag.

Running either of the following could give more info, what actually failed:
Bash:
strace -f da p 2>&1 | grep -B10 'is not a directory'
# or
strace -f da p 2>&1 | grep -B10 'st_mode' | tail

What I'm looking for is what mode did last stat syscall reported and on which path before exiting with an error message.
 
Last edited:
Code:
# strace -f da p 2>&1 | grep -B10 'is not a directory'
[pid 913520] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid 913526] mkdirat(AT_FDCWD, "data/admin/packages", 0700) = -1 EEXIST (File exists)
[pid 913526] newfstatat(AT_FDCWD, "data/admin/packages", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
[pid 913520] <... nanosleep resumed>NULL) = 0
[pid 913526] mkdirat(AT_FDCWD, "/dev/null", 0700 <unfinished ...>
[pid 913520] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid 913526] <... mkdirat resumed>)     = -1 EEXIST (File exists)
[pid 913526] newfstatat(AT_FDCWD, "/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(0x1, 0x3), ...}, 0) = 0
[pid 913520] <... nanosleep resumed>NULL) = 0
[pid 913526] write(2, "setting directadmin file permiss"..., 85 <unfinished ...>
[pid 913520] nanosleep({tv_sec=0, tv_nsec=20000}, setting directadmin file permissions: dafs: mkdir 700 as 993:991: is not a directory


Code:
# strace -f da p 2>&1 | grep -B10 'st_mode' | tail
[pid 913705] newfstatat(AT_FDCWD, "data/admin/ips",  <unfinished ...>
[pid 913704] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid 913705] <... newfstatat resumed>{st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
[pid 913705] mkdirat(AT_FDCWD, "data/admin/packages", 0700) = -1 EEXIST (File exists)
[pid 913705] newfstatat(AT_FDCWD, "data/admin/packages", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
[pid 913704] <... nanosleep resumed>NULL) = 0
[pid 913705] mkdirat(AT_FDCWD, "/dev/null", 0700 <unfinished ...>
[pid 913704] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid 913705] <... mkdirat resumed>)     = -1 EEXIST (File exists)
[pid 913705] newfstatat(AT_FDCWD, "/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(0x1, 0x3), ...}, 0) = 0
 
Code:
# strace -f da p 2>&1 | grep -B10 'is not a directory'
[pid 913520] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid 913526] mkdirat(AT_FDCWD, "data/admin/packages", 0700) = -1 EEXIST (File exists)
[pid 913526] newfstatat(AT_FDCWD, "data/admin/packages", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
[pid 913520] <... nanosleep resumed>NULL) = 0
[pid 913526] mkdirat(AT_FDCWD, "/dev/null", 0700 <unfinished ...>
[pid 913520] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid 913526] <... mkdirat resumed>)     = -1 EEXIST (File exists)
[pid 913526] newfstatat(AT_FDCWD, "/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(0x1, 0x3), ...}, 0) = 0
[pid 913520] <... nanosleep resumed>NULL) = 0
[pid 913526] write(2, "setting directadmin file permiss"..., 85 <unfinished ...>
[pid 913520] nanosleep({tv_sec=0, tv_nsec=20000}, setting directadmin file permissions: dafs: mkdir 700 as 993:991: is not a directory


Code:
# strace -f da p 2>&1 | grep -B10 'st_mode' | tail
[pid 913705] newfstatat(AT_FDCWD, "data/admin/ips",  <unfinished ...>
[pid 913704] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid 913705] <... newfstatat resumed>{st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
[pid 913705] mkdirat(AT_FDCWD, "data/admin/packages", 0700) = -1 EEXIST (File exists)
[pid 913705] newfstatat(AT_FDCWD, "data/admin/packages", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
[pid 913704] <... nanosleep resumed>NULL) = 0
[pid 913705] mkdirat(AT_FDCWD, "/dev/null", 0700 <unfinished ...>
[pid 913704] nanosleep({tv_sec=0, tv_nsec=20000},  <unfinished ...>
[pid 913705] <... mkdirat resumed>)     = -1 EEXIST (File exists)
[pid 913705] newfstatat(AT_FDCWD, "/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(0x1, 0x3), ...}, 0) = 0
Do you have anything in directadmin.conf set to /dev/null?
Perhaps ticketsdir?
Bash:
da config | grep /dev/null
 
Yes, ticketsdir is set to /dev/null

That does indeed appear to be the issue.

Is there another way to disable the ticket system completely? It just tends to create confusion as to what "ticket" means in this context.
 
Yes, ticketsdir is set to /dev/null

That does indeed appear to be the issue.

Is there another way to disable the ticket system completely? It just tends to create confusion as to what "ticket" means in this context.
I'm afraid there is no way to disable ticketing.
One approach I can think of on the spot is hiding Create Ticket action from the menu.
This can easily be customized on Evolution skin: Customize Evolution Skin > Menu.
 
I'm afraid there is no way to disable ticketing.
Really? How about the very old option?
/usr/local/directadmin/data/users/admin/ticket.conf
And set ON=no and active=no doesn't that work anymore? Or set a link to external ticket system.
Or do you mean serverwide? So resellers can't use it either? That is indeed not possible I believe.
 
Back
Top