The exact particulars vary depending on OS. I will use HP-UX as an example. The number of possible file decriptors is under the control of
setrlimit(2). (A less powerful interface,
ulimit() is also available.) A process cannot have more fd's than the "soft" limit . Using setrlimit(2), a process may raise or lower its soft limit. But a process cannot raise the soft limit above the hard limit. A process can lower the hard limit. Only a root process can raise the hard limit. Kernel parameters define the initial value of the hard and soft limit. Even root cannot raise the hard limit above the initial value for the hard limit. The kernel paramters:
maxfiles
maxfiles_lim
I have cheated a little bit by picking HP-UX as my sample OS. HP-UX allows dynamic reconfiguration of the kernel. Only root can reconfigure the kernel. But a root process could, in theory, raise maxfiles_lim and then raise its hard limit and then relower maxfiles_lim. Not all versions of Unix give that much power to a root process.
I don't believe that cron fiddles with these limits.