Como posso verificar se um arquivo de configuração foi lido?

4

Parece que as modificações no meu arquivo /etc/ssh/sshd_config não são selecionadas pelo daemon SSH. Para fins de teste, incluí um DenyUsers * , fiz service ssh restart e até reinicializei todo o sistema. Mas eu ainda posso ssh de controle remoto.

Como posso verificar se o arquivo /etc/ssh/sshd_config é lido por sshd ?

    
por user210161 01.11.2013 / 08:55

1 resposta

4

Se eu não tiver certeza se um programa lê um arquivo de configuração específico (ou em qual ordem), tento rastrear os syscalls abertos com strace . Para fazer isso, pare o daemon ssh. Em seguida, inicie-o manualmente no terminal:

strace -e open -ostrace.out /usr/sbin/sshd

Depois de iniciado, você deve ter um arquivo em seu diretório de trabalho atual chamado strace.out . No meu caso, parecia assim (saída despojada):

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
...
many libraries
...
open("/proc/filesystems", O_RDONLY)     = 3
open("/dev/null", O_RDWR)               = 3
open("/usr/lib/ssl/openssl.cnf", O_RDONLY) = 3
open("/etc/ssh/sshd_config", O_RDONLY)  = 3 <--- here sshd_config was opened
open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 3
open("/etc/gai.conf", O_RDONLY|O_CLOEXEC) = 3
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
...
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
...
ssh keys
...
open("/etc/ssh/blacklist.ECDSA-256", O_RDONLY) = -1 ENOENT (No such file or directory)

Com esse teste, posso garantir que sshd leia meu /etc/ssh/sshd_config . Na última entrada você pode ver que este arquivo não é encontrado no meu sistema (-1).

    
por chaos 01.11.2013 / 09:48

Tags