O proprietário não pode ler / proc / $ pid / io

6

No CentOS 7, estou tentando depurar um problema em que o agente amplificador nginx não pode ler / proc / $ pid / io, mesmo que seja de propriedade do usuário adequado.

Um dos processos de trabalho do nginx agora é o pid 5693:

# ps aux | grep 5693
nginx     5693  0.5  0.0 129000 14120 ?        S    Jul18  16:10 nginx: worker process

o usuário nginx tem permissão para ler o arquivo:

# ls -lAh /proc/5693/io
-r-------- 1 nginx nginx 0 Jul 20 11:30 /proc/5693/io

... mas não consegue lê-lo:

# sudo -u nginx /bin/sh -c 'cat /proc/5693/io'
cat: /proc/5693/io: Permission denied

... embora o selinux esteja desativado:

# sestatus
SELinux status:                 disabled

O Root é capaz de ler / proc / 5693 / io muito bem, e o usuário do nginx pode ler outros arquivos em / proc / 5693. Parece que deve haver algum outro mecanismo de segurança que esteja impedindo o acesso, mas não tenho ideia do que seja.

    
por Jay Paroline 20.07.2016 / 20:54

1 resposta

2

According to what proc(5) has to say on /proc/[pid]/io, _"Permission to access this file is governed by a ptrace access mode TRACE_MODE_READ_FSCREDS check; see ptrace(2)."_ The Ptrace access mode checking section of the ptrace(2) man page contains a list of things that are checked to grant or deny permission, including whether the process is marked dumpable, whether you have the same fsuid as the target process etc, might be worth it having a look at it.

A documentação foi adicionada recentemente, confira upstream.

Suspeito que você precise alterar o GID em que seu processo está sendo executado, além do UID.

    
por 07.09.2016 / 22:48