最近我的 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
、、)。ext3
ext4
您可以使用以下方式设置或取消设置这些属性聊天室像这样
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/environment
该i
属性。我的系统上没有它 ;)