mlockall_agent
mlockall_agent copied to clipboard
JVMTI agent which calls mlockall and setuids down to a target user upon initialization
Overview:
mlockall_agent is a simple JVMTI agent that runs a small piece of code at JVM start time.
This code does the following:
- Raises the current process's resource limit for locked memory
- Calls mlockall() to lock all current and future allocations in wired memory
- Sets the current userid and group list to match a target user
- Continues on JVM initialization
Usage:
Simply add the following JVM argument to the Java command line: -agentpath:/path/to/libmlockall_agent.so=user=target_user_for_setuid
Then, run the Java process as root.
If the Java command line is obscured within a script, you can also use the JAVA_TOOL_OPTIONS environment variable for the same effect.