Não é possível alterar os atributos do arquivo (por exemplo, imutável) em /etc/resolv.conf

3

Percebi que o gerente de rede frequentemente mudava meu servidor DNS, então queria definir o bit imutável no arquivo /etc/resolv.conf , o que não funcionou. Notei que o arquivo /etc/resolv.conf é na verdade um link simbólico para /run/resolvconf/resolv.conf .

Agora, sudo chattr +i /run/resolvconf/resolv.conf resulta em:

chattr: Inappropriate ioctl for device while reading flags on /run/resolvconf/resolv.conf

Pelo que posso dizer, isso significa que /run/resolvconf/ não suporta tais atributos. Está certo?

Xubuntu 15.10;

Como posso proteger meu arquivo resolv.conf ?

    
por boolean.is.null 12.02.2016 / 10:46

2 respostas

2

/run é um sistema de arquivos tmpfs (ramdisk) e não suporta atributos estendidos:

% df -T /run
Filesystem     Type  1K-blocks  Used Available Use% Mounted on
tmpfs          tmpfs    393016  6416    386600   2% /run

Sobre como evitar que /etc/resolv.conf seja alterado pelo NetworkManager, encontrei uma possível solução no Arch Linux fóruns .

Crie um arquivo resolv.conf contendo as configurações que você deseja manter em algum lugar do sistema (digamos, em /etc/resolv.conf.DNSoverride ) e coloque este script em /etc/NetworkManager/dispatcher.d :

#! /bin/sh
cp -f /etc/resolv.conf.DNSoverride /etc/resolv.conf

O script, citando man networkmanager :

% bl0ck_qu0te%

Citando man networkmanager :

% bl0ck_qu0te%

Isso significa que o script copiará /etc/resolv.conf.DNSoverride overwriting /etc/resolv.conf sempre que um evento de rede ocorrer, substituindo possíveis alterações feitas em /etc/resolv.conf .

    
por kos 12.02.2016 / 11:13
0

Esta resposta resolve algumas questões na resposta do kos .

Como /etc/resolv.conf é um link simbólico, substituí-lo diretamente pode causar um erro quando o resolvconf -u é executado automaticamente.

Primeiro, crie seu substituto resolv.conf.override conforme abaixo. Isso destina-se a substituir resolv.conf . Corresponda as permissões e o proprietário conforme abaixo:

$ ll /etc/resolv.conf.override
-rwxrwxrwx 1 root root 172 Jun 26 20:38 resolv.conf.override*

Em seguida, crie um script como 20-resolv-conf-override . Combine as permissões e o proprietário como abaixo.

$ cd /etc/NetworkManager/dispatcher.d
$ ll 20-resolv-conf-override
-rwxr-xr-x 1 root root 101 Jun 26 20:45 20-resolv-conf-override*

$ cat 20-resolv-conf-override
#!/bin/sh
cp -f /etc/resolv.conf.override /run/resolvconf/resolv.conf

$ sudo ln -f 20-resolv-conf-override ./pre-up.d/

Os scripts em dispatcher.d são executados quando NetworkManager é re / started. Em contraste, os scripts em dispatcher.d/pre-up.d são executados efetivamente quando o sistema é re / iniciado. Ambos são necessários.

    
por A-B-B 02.08.2018 / 01:16