Непонятные причины, по которым файл доступен только для чтения?

Файловая система 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 « W10: Warning: Changing a readonly file ».

Я знаю, что возможность записи в файл зависит от разрешений его содержащей папки. Я думаю, что содержащая папка должна иметь разрешение на выполнение – правда? Я предполагаю, что требуемое разрешение на каталог также распространяется до / – true?

Мне кажется, что дерево папок с указанным файлом имеет права на выполнение:

 [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 , но это не так.

Может кто-нибудь придумать / определить другие причины, по которым указанный файл считается доступным только для чтения?

Во-первых, у вас установлен неизменный флаг

 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 на тип вашего раздела)

Удачи!