root用户无权编辑环境文件

root用户无权编辑环境文件

最近我的 Ubuntu 系统出现了一个新问题。我需要更改 /etc/environment 文件的内容,但是这是不可能的,即使是 root 用户也没有权限这样做。

正如您所看到的,root 在这里具有写权限:

>> ls -lia /etc/environment 
262296 -rw-r--r-- 1 root root 241 Oct  3 17:59 /etc/environment

它不允许我更改文件。

>> sudo su
>> echo sample=1 >> /etc/environment
   operation not permitted: /etc/environment

即使使用 vim 和 nano 这样的编辑工具也无法更改文件。

在此处输入图片描述

输出:

>> findmnt -T /etc/environment
TARGET SOURCE         FSTYPE OPTIONS
/      /dev/nvme0n1p5 ext4   rw,relatime,errors=remount-ro


>> lsattr /etc/environment
----i---------e------- /etc/environment

答案1

根据输出伊萨特,所讨论的文件具有“不可变”属性集(请注意i输出开头的属性标志列表中的):

具有“i”属性的文件无法修改:无法删除或重命名,无法创建指向此文件的链接,也无法向此文件写入任何数据。只有超级用户或拥有 CAP_LINUX_IMMUTABLE 功能的进程才能设置或清除此属性。

(来自的手册页chattr)。

ext“不可变”属性是文件系统上可用的扩展文件属性列表之一( ext2、、)。ext3ext4

您可以使用以下方式设置或取消设置这些属性聊天室像这样

chattr +s /some/file # sets the 's' attribute
chattr -s /some/file # removes the 's' attribute

对于某些属性,其中包括i“不可变”属性,您需要 root 权限才能设置或删除它们,因此您需要执行以下操作

sudo chattr +i /some/file
sudo chattr -i /some/file

根据我的经验,您不会经常遇到这些扩展属性。所以我建议首先研究一下为什么设置了/etc/environmenti属性。我的系统上没有它 ;)

相关内容