用于将栈标记为不可执行,这样可阻止缓冲区溢出攻击。
缺省情况下,运行 64 位内核的 Solaris 系统将所有 64 位应用程序的栈都标记为不可执行。要使 32 位应用程序不能在运行 64 位或 32 位内核的系统上执行,则有必要设置此参数。
此参数存在于所有运行 Solaris 2.6、7、8、9 或 10 发行版的系统上,但它仅对 64 位 SPARC 和 AMD64 体系结构有效。
带符号整数
0(禁用)
0(禁用)或 1(启用)
切换(开/关)
是。不会影响当前正在运行的进程,只影响在设置此值之后创建的进程。
无
应始终处于启用状态,除非应用程序要故意在不使用 mprotect 的情况下在栈中放置可执行代码以使栈可执行。有关更多信息,请参见 mprotect(2)。
不稳定
有关信息,请参见noexec_user_stack(Solaris 9 发行版)。