Updated: 3 November 2026 · Applies to: CloudLinux, CageFS (commands according to CloudLinux's own documentation, not independently tested, since CloudLinux is proprietary and licensed per server)
To move CageFS's skeleton directory to free up disk space on /usr, disable CageFS, relocate the skeleton directory to a different partition, symlink the old location to the new one, then re-enable CageFS.
Before you start: a WHM setting you likely need to change
If the new location for the skeleton will be under /home, WHM must be told that /home is a valid place for account data, or cPanel will start creating new accounts in the wrong place:
In WHM, go to Server Configuration, then Basic cPanel/WHM Setup, then Basic Config, and find Additional home directories. Change its value to blank, not the default of home.
Step 1: disable CageFS
cagefsctl --disable-cagefs
cagefsctl --unmount-all
Step 2: confirm it actually unmounted
This should return nothing:
cat /proc/mounts | grep cagefs-skeleton
Step 3: move the skeleton directory aside
Confirm a stale backup directory from a previous attempt does not already exist under this name; if it does, rename it to something else first so you do not overwrite it. Then:
ls -d /usr/share/cagefs-skeleton.bak
mv /usr/share/cagefs-skeleton /usr/share/cagefs-skeleton.bak
Step 4: create the new location and link it back
mkdir -m 0755 /home/cagefs-skeleton
ln -s /home/cagefs-skeleton /usr/share/cagefs-skeleton
Step 5: rebuild and re-enable CageFS
cagefsctl --init
cagefsctl --enable-cagefs
cagefsctl --remount-all
Step 6: confirm it is working again
This should again return nothing, confirming the old path is no longer separately mounted (it is now only reachable through the symlink):
cat /proc/mounts | grep cagefs-skeleton.bak
Step 7: remove the old backup copy
Once you have confirmed everything works correctly with the new location, the old copy is safe to remove:
rm -rf /usr/share/cagefs-skeleton.bak