Não é possível executar programas sob strace

1

Estou tentando executar este programa simples ls sob strace e ele não me deixaria. Vocês podem pensar em por que este é o caso?

[jeffjose@skipper ~]$ strace ls
strace: ptrace(PTRACE_TRACEME, ...): Permission denied

Estou no Fedora 17b e meu shell é tcsh . Eu posso fornecer mais informações, se necessário.

UPDATE: Christopher aponta que há um relatório de bug sobre isso. Ele também sugere que eu ajuste o selinux ou desative-o. Este é o único caminho? O que isto significa? O que estou fazendo se eu fizer isso? Alguém pode elaborar e responder isso? Eu escolhi isso como a resposta correta para minha consulta. Obrigado!

UPDATE2: Eu estava fazendo algumas depurações usando gdb e isso surgiu novamente. Para minha sorte, o que precisa ser feito foi claramente mencionado lá.

warning: the SELinux boolean 'deny_ptrace' is enabled, you can disable this process attach protection by: (gdb) shell sudo setsebool deny_ptrace=0

Consegui executar strace sem problemas. Mas o que isso significa? O que eu acabei de fazer?

    
por jeffjose 01.05.2012 / 01:40

1 resposta

3

O SELINUX é (linux com segurança aprimorada) para proteger servidores, e rodá-lo na sua área de trabalho é um pouco demais.

No entanto, se você quiser aprender sobre o selinux, um bom método é executá-lo no modo permissivo em sua máquina desktop.

Eu uso uma ferramenta chamada setroubleshooter que me envia notificações da área de trabalho quando uma das políticas do selinux foi violada. Se a operação for legítima, posso "gerar um módulo de política local para permitir esse acesso"

Por exemplo, hoje na minha máquina gnome3 violou o selinux, mas não foi negado como estou em modo permissivo. O selinuxtroubleshooter forneceu este conselho:

 You should report this as a bug.
 You can generate a local policy module to allow this access.
 Allow this access for now by executing:
 # grep gnome-session-c /var/log/audit/audit.log | audit2allow -M mypol
 # semodule -i mypol.pp

estes dois comandos permitem-lhe verificar e definir o SELINUX

  $ getenforce 
  Permissive

  $ setenforce 
  usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

Divirta-se.

    
por 01.05.2012 / 16:58

Tags