首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法更改/etc/rupv.conf上的文件属性(例如不可变)

无法更改/etc/rupv.conf上的文件属性(例如不可变)
EN

Ask Ubuntu用户
提问于 2016-02-12 09:46:26
回答 1查看 7.7K关注 0票数 3

我注意到网络管理器经常更改我的DNS服务器,所以我想在/etc/resolv.conf文件上设置不可变的位,这是行不通的。我注意到/etc/resolv.conf文件实际上是指向/run/resolvconf/resolv.conf的符号链接。

现在,sudo chattr +i /run/resolvconf/resolv.conf的结果是:

代码语言:javascript
复制
chattr: Inappropriate ioctl for device while reading flags on /run/resolvconf/resolv.conf

据我所知,这意味着/run/resolvconf/不支持这些属性。是那么回事吗?

Xubuntu 15.10;

我如何写-保护我的resolv.conf文件?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2016-02-12 10:13:10

/run是一个tmpfs (ramdisk)文件系统,不支持扩展属性:

代码语言:javascript
复制
% df -T /run
Filesystem     Type  1K-blocks  Used Available Use% Mounted on
tmpfs          tmpfs    393016  6416    386600   2% /run

关于如何避免/etc/resolv.conf被NetworkManager更改,我在Arch Linux论坛中找到了一个可能的解决方案。

创建一个resolv.conf文件,其中包含您希望保存在系统中某个位置的设置(例如在/etc/resolv.conf.DNSoverride中),并将此脚本放在/etc/NetworkManager/dispatcher.d中:

代码语言:javascript
复制
#! /bin/sh
cp -f /etc/resolv.conf.DNSoverride /etc/resolv.conf

脚本引用了man networkmanager

...应该是根用户拥有的常规可执行文件。此外,它不能由组或其他,而不是setuid写。...

引用man networkmanager

... NetworkManager将按字母顺序在/etc/NetworkManager/dispatcher.d目录或子目录中执行脚本,以响应网络事件。...

这意味着每当发生网络事件时,脚本都会复制/etc/resolv.conf.DNSoverride覆盖/etc/resolv.conf,从而覆盖对/etc/resolv.conf所做的可能更改。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/732748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档