问题及解决

最近在升级系统的时候,遇到一个很奇怪的问题,报错如下:

正在设置 network-manager (1.22.10-1xxxx8) ...
ln: 无法创建符号链接'/etc/resolv.conf': 不允许的操作
dpkg: 处理软件包 network-manager (--configure)时出错:
 已安装 network-manager 软件包 post-installation 脚本 子进程返回错误状态 1
dpkg: 依赖关系问题使得 network-manager-gnome 的配置工作不能继续:
 network-manager-gnome 依赖于 network-manager (>= 1.8);然而:
  软件包 network-manager 尚未配置。

然后查看了下/etc/resolv.conf文件,是个只读文件;
且无法使用chmod更改权限,更没法mvrm

后面在网上搜到了解决方案,使用 chattr 命令可以解除这个限制,更改文件的相关属性:

# 首先查看相关属性,看有没有 i 属性
sudo lsattr /etc/resolv.conf
# 假如有,去除i这个属性
sudo chattr -i /etc/resolv.conf

# 然后就可以修改权限,进行其他操作了
chmod +w /etc/resolv.conf

相关命令

lsattr

查询文件或目录属性

  • 使用

    lsattr [-adlRvV] [文件或目录...]

    chattr

    使用需要超级权限
    可改变存放在ext2、ext3、ext4、xfs、ubifs、reiserfs、jfs等文件系统上的文件或目录属性,但对/dev/tmp/var目录无效

  • 使用:

    chattr [-pRVf] [-+=aAcCdDeijPsStTuF] [-v 版本] [文件...]
  • 属性:

    + :在原有参数设定基础上,追加参数。
    - :在原有参数设定基础上,移除参数。
    = :更新为指定参数设定。
    A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
    S:硬盘I/O同步选项,功能类似sync。
    a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
    c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
    d:即no dump,设定文件不能成为dump程序的备份目标。
    i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
    j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
    s:保密性地删除文件或目录,即硬盘空间被全部收回。
    u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
  • 参数:

    -R: 递归处理,将指定目录下的所有文件及子目录一并处理。
    -V: 显示指令执行过程。
    -f: 显示错误信息。

    参考:

    https://blog.csdn.net/u013690521/article/details/108140942
    https://my.oschina.net/direnjie/blog/542219