设置ptrace_scope

September 24, 2013

最近一次升级ArchLinux,开机多了两个错误消息(一个来自驱动,一个来自systemd),加上其他小变化,强迫症表示很不爽。

今天又发现没法直接strace -p自己的进程,一查发现内核参数kernel.yama.ptrace_scope是1,原来是最近才加上的。

好吧,安全特性,但是需要的时候还是要放行的,不然每次strace都要sudo太麻烦了:

toggle_ptrace ()
{
    local enable;
    mapfile -t enabled < /proc/sys/kernel/yama/ptrace_scope;
    enabled=${enable[0]};
    if [[ $enabled == '0' ]]; then
        enabled=1;
    else
        enabled=0;
    fi;

    sudo sh -c "echo $enabled > /proc/sys/kernel/yama/ptrace_scope"
}