Disable and re-enable address space layout randomization only for myself
The documentation for the randomize_va_space
sysctl setting is in Documentation/sysctl/kernel.txt
in the kernel source tree. Basically,
0 - Turn the process address space randomization off.
1 - Make the addresses of mmap base, stack and VDSO page randomized.
2 - Additionally enable heap randomization.
The best way to disable locally the ASLR on a Linux-based system is to use processes personality flags. The command to manipulate personality flags is setarch
with
-R
,--addr-no-randomize
Disables randomization of the virtual address space (turns on ADDR_NO_RANDOMIZE).
Here is how to proceed:
$> setarch $(uname -m) -R /bin/bash
This command runs a shell in which the ASLR has been disabled. All descendants of this process will inherit of the personality flags of the father and thus have a disabled ASLR. The only way to break the inheritance of the flags would be to call a setuid program (it would be a security breach to support such feature).
Note that the uname -m
is here to not hard-code the architecture of your platform and make this command portable.