The concept of a limited server is such that the owner of the hardware or OS can delegate server administration out to a third party, another admin.  This delegation allows the server owner to set a locked location for server config files, and the server install versus the location user data files are placed.\\

Example:\\
The server install could be: C:\CrushFTP8\ \\
So prefs, user config, certificates, private keys can all be there.\\
The user data storage could be: D:\UserData\ \\
So even if the admin tried to, they could not give a user access to something located in the C: drive.  They can only give users access to things in the D:\UserData\ folder area and sub areas.  The core functions in CrushFTP prevent accessing items out of their area.

The configuration is done via startup flags that change the behavior of CrushFTP.\\
Windows:\\
Edit the wrapper.conf file in the service file and append this to it (note the double backslashes due to config file encoding):\\
{{{
wrapper.java.additional.2=-Dcrushftp.server.root=C:\\CrushFTP8\\
wrapper.java.additional.3=-Dcrushftp.user.root=D:\\UserData\\
wrapper.java.additional.4=-Dcrushftp.server.file.warn=true
wrapper.java.additional.5=-Dcrushftp.server.file.log=false
wrapper.java.additional.6=-Dcrushftp.server.file.strict=true
}}}

file.warn = log an error about the violation, mainly useful for debugging why something got blocked\\
file.log = if a separate audit log should eb kept with all the error info.\\
file.strict = if its true, the action is blocked. Otherwise its allowed and just the error info is logged.\\