И приземленный сценарий: выполнение Ctrl-Z, затем упущение об этом и выходить из системы и потеря процесса!=)
sed -i ... file
на самом деле делает что-то как:
sed ... file > some-temp-file &&
mv some-temp-file file
Это длится mv
делает a rename
. Это sed -i
не редактирует файл на месте, он заменяет его измененной копией себя.
Здесь это - переименовывание, которое заблокировано. Это не заблокировано из-за проблем разрешения (Вы добрались бы, разрешение отклонило сообщение об ошибке, если это было), но похоже, что существует некоторое административное ограничение любой для удаления связи с inode ~/.bash_profile (как некоторый тип SELinux мандатного управления доступом), или к пути к тому файлу (как некоторый AppArmor вводят MAC).
Можно, вероятно, найти больше подсказки где-нибудь в журналах.
getfattr -dm- ~/.bash_profile
перечислил бы все расширенные атрибуты (ACLs, контексты защиты) файла.
lsattr ~/.bash_profile
для потенциально большего количества атрибутов Linux.
'.' в конце ls
вывод полномочий говорит, что существуют расширенные данные некоторого вида. chattr(1)
дает список атрибутов для расширения? файловые системы, lsattr(1)
перечисляет текущие. Также проверьте tha ACL на файл (getfacl(1)
). Политика безопасности (как SELinux) могла также запретить некоторые операции на файле.
Вероятно, у Вас нет разрешения записи родительского dir (который является странным потому что его Ваш дом),
Так или иначе можете Вы делать:
$ ls -la ~