Solaris 可调参数参考手册

noexec_user_stack

说明

用于将栈标记为不可执行,这样可阻止缓冲区溢出攻击。

缺省情况下,运行 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 发行版)