Es imprescindible interpretar el código correctamente antes de aplicarlo a tu proyecto si ttienes algo que aportar puedes dejarlo en los comentarios.
Solución:
Su /etc/resolv.conf
es probablemente un enlace simbólico. Consulte esta explicación para obtener más información.
Tu podrías intentar:
chattr +i "$(realpath /etc/resolv.conf)"
¿El punto de montaje raíz admite Listas de control de acceso (acl)
o Atributos extendidos?
Compruébelo a través de:
findmnt -fn / | grep -E "acl|user_xattr" || echo "acl or user_xattr mount option not set for mountpoint /"
¿Es su partición raíz del tipo ‘VFAT’? Creo que ‘VFAT’ no es compatible ACL.
Compruébelo a través de:
findmnt -fn / | grep vfat
O tal vez su directorio de destino de enlace simbólico es un tmpfs?
ACL se pierden en tmpfs
Pruébalo:
findmnt -fn $(dirname $(realpath /etc/resolv.conf)) | grep tmpfs && echo $(dirname $(realpath /etc/resolv.conf)) is tmpfs
salud
Como viste, parece que no puedes configurar chattr
attributes en enlaces simbólicos. Además, no son compatibles con tmpfs
. La página del manual para chattr
menciona que
No todas las banderas son compatibles o utilizadas por todos los sistemas de archivos; consulte las páginas del manual específicas del sistema de archivos, como
btrfs(5)
,ext4(5)
yxfs(5)
para obtener más detalles específicos del sistema de archivos.
Y no hay mención de la bandera inmutable o chattr
en tmpfs(5)
.
ACL o extendidas attributes no tienes nada que ver con esto, chattr
attributes se almacenan directamente en el inodo, como se ve para ext4
en esta tabla de la estructura del inodo.
Deberá encontrar alguna otra forma de evitar que sus programas lo modifiquen. systemd-resolved
debería ser lo suficientemente inteligente como para dejar el archivo solo si reemplaza el enlace simbólico con un static expediente:
Tres modos de manejo
/etc/resolv.conf
(verresolv.conf(5)
) son compatibles:· Alternativamente,
/etc/resolv.conf
puede ser administrado por otros paquetes, en cuyo casosystemd-resolved
lo leerá para los datos de configuración de DNS. En este modo de funcionamientosystemd-resolved
es consumidor en lugar de proveedor de este archivo de configuración.Tenga en cuenta que el modo de funcionamiento seleccionado para este archivo se detecta de forma totalmente automática, dependiendo de si
/etc/resolv.conf
es un enlace simbólico a/run/systemd/resolve/resolv.conf
o listas
127.0.0.53
como servidor DNS.
Si tiene otros programas que podrían modificarlo (como un cliente DHCP), tendrá que volver a configurarlos. O chattr +i /etc/resolv.conf
después de convertirlo en un static archivo en lugar de un enlace simbólico, pero tenga en cuenta que sea lo que sea que intente escribirlo, es posible que no le gusten los errores resultantes.
sudo rm /etc/resolv.conf //remove the symlink
sudo nano /etc/resolv.conf //create the new file and populate it as you wish
sudo chattr +i /etc/resolv.conf //change its attributes as you wish.....
Recuerda algo, que te concedemos agregar una reseña .