The example in a??Sample .profilea?? is for /bin/sh
on GNU/Linux, and may need to be adapted for use with other shells on other platforms.
At a high level, preventing a captive user from getting to a shell or GT.M prompt involves:
trapping signals that may cause the login shell to give the user interactive access, for example, by pressing <CTRL-Z> to suspend the mumps application;
preventing a GT.M process from responding to a <CTRL-C> until the application code sets up a handler; and
preventing an error in the application, or a bug in an error handler, from putting a captive user into direct mode.
Note that other users on the system who have appropriate privileges as managed by the operating system can still interfere with captive users. In order to secure a system for captive applications, you must protect it from untrusted other users. Users should only have credentials that permit them the level of access appropriate to their level of trustworthiness, thus: untrusted users should not have credentials to access a system with captive applications.
Defensive configuration implies setting up layers of defenses, so that an error in one layer does not compromise the system.