文件只读的不明原因?

文件只读的不明原因?

Linux 文件系统似乎有一层又一层的微妙之处,我在具体情况下偶然发现:

我有兴趣编辑这个文件:

[user@box ~]$ ls -l /a/b/c/foo.bar
-rw-rwxr-x    1 user   user      144529 Jan 26  2018 /a/b/c/foo.bar

看起来它应该可以被用户写入user- 真的吗?但是当我尝试在 vim 中编辑文件时,我收到“ W10: Warning: Changing a readonly file”警告。

我知道文件的可写性依赖于其包含文件夹的权限。我认为包含的文件夹需要具有执行权限 - 正确吗?我假设所需的目录权限也一直延伸到/- 正确吗?

在我看来,所记录的文件的包含文件夹树具有执行权限:

[user@box ~]$ ls -ld /a/b/c/                                                                                    
drwxrwxrwx    2 user   user       36864 Mar  5 17:50 /a/b/c/
[user@box ~]$ ls -ld /a/b/           
drwxrwxr-x    4 user   user        4096 Sep 22  2017 /a/b/
[user@box ~]$ ls -ld /a/                
drwxrwxr-x    9 user   user        4096 Sep 15  2017 /a/
[user@box ~]$ ls -ld /     
drwxr-xr-x   24 root   root           0 Aug 24 10:48 /
[user@box ~]$ whoami
user

据我从上面可以看出,相关树中的每个目录都具有执行权限。起初,我怀疑它是否与/属于 拥有有关root,但它具有“其他”的执行权限。另外,如果存在与/拥有相关的问题root,我想我将无法以 以外的用户身份在文件系统上的任何位置写入文件root,但事实并非如此。

任何人都可以想到/确定指出的文件被视为只读的其他原因吗?

答案1

第一的 - 你设置了不可变的标志

chattr -i yourfilename

如果设置了不可变标志,则无法更改文件。请记住,权限不会覆盖该行为!

第二,检查文件所在的目录是否是安装在另一个磁盘或分区中,只读,只需键入:

mount 

(无参数)

如果您看到类似您的目录以只读方式安装的内容,那就是原因!将其重新安装为读写即可获得幸运!

第三种——也是最常见的,你只是运行一个文件系统有错误,要纠正这个问题,您必须备份您可以备份的内容,重新启动,然后以单一模式登录并运行:

mount #To determine how the partition is mounted
mount -o remount,ro /dev/sd(yourpartition) directory
fsck.ext4 /dev/sd(yourpartition)

(ext4可能需要更改为您的分区类型)

祝你好运!

相关内容