LINUX.ORG.RU

KDE 4.10, при редактировании файлов заменяется их владелец

 ,


0

1

Это баг или фича? Обнаружил когда не смог отредактировать файлы с правами 664, владельцем которых я не являюсь, но вхожу в группу-владельа. У родительского каталога права 755.

Раньше такие файлы без проблем редактировались, с версии 4.10 выскакивает ошибка, нет прав на запись, якобы. При этом другие редакторы не на kdelibs без проблем редактируют. С этой версии редактор почему-то при сохранении стал менять владельца файла, раньше этого не делал.

Проявляется ли у вас это?

★★★☆

Последнее исправление: cetjs2 (всего исправлений: 1)

С этой версии редактор почему-то при сохранении стал менять владельца файла, раньше этого не делал.

Предполагаю, что раньше файл открывали и писали прямо в него при сохранении. А теперь начали делать, как рекомендуется: сохранять в файл рядом, а потом переименовывать, стирая старый.

Возможна ситуация, когда в файл писать можно, а рядом создавать файлы нельзя. Тогда второй подход обломится.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

А теперь начали делать, как рекомендуется

Кем рекомендуется? Ни один редактор так себя не ведёт.

а рядом создавать файлы нельзя. Тогда второй подход обломится.

Если очень так надо, временный файл можно создавать во временном каталоге. /tmp и /var/tmp/kdecache-$USER на что? В любом случае, это не повод менять владельца файла при редактировании (а он это делает теперь).

firestarter ★★★☆
() автор топика
Ответ на: комментарий от firestarter

Ни один редактор так себя не ведёт.

Плохо для кармы.

Если очень так надо, временный файл можно создавать во временном каталоге.

Нельзя, он должен быть на той же ФС.

В любом случае, это не повод менять владельца файла при редактировании (а он это делает теперь).

Новосозданный файл получает владельцем текущего пользователя. Сменить его никак нельзя. Это тебе кажется, что файл тот же, на самом деле это новый. Проверь номер inode.

Так нужно для минимизации потерь данных при внезапном отключении. Журнал ФС даёт гарантии относительно целостности ФС, а не файлов в ней. Если посередине записи отключится питание, ты либо получишь испорченный файл, либо старую копию + часть новой. Ты какой вариант предпочитаешь?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Нельзя, он должен быть на той же ФС.

Причина?

Если посередине записи отключится питание, ты либо получишь испорченный файл, либо старую копию + часть новой. Ты какой вариант предпочитаешь?

Ну и где тут причина создавать новый файл, а не перезаписывать существующий (во втором случае владелец будет сохранён)? Ничто же не мешает держать временный файл до завершения процесса перезаписи. Так оно видимо раньше и работало, во время правки файла рядом появлялся временный файл, который исчезал после сохранения изменений (проверил, сейчас так же, создаётся файл .имя_редакрируемого_файла.kate-swp). Но какие причины не перезаписывать файл просто?

firestarter ★★★☆
() автор топика
Ответ на: комментарий от firestarter

Ну и где тут причина создавать новый файл, а не перезаписывать существующий

Первое либо — старое поведение, второе — новое. Ну так какое выбираешь?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Первое либо — старое поведение, второе — новое. Ну так какое выбираешь?

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

firestarter ★★★☆
() автор топика
Ответ на: комментарий от firestarter

Я выбираю вариант, когда файл просто перезаписывался, чтобы мне не приходилось лишний раз менять владельца после каждого редактирования.

Ну тогда ищи патч и делай обратный. Вот так и появляются треды «<имя фс> портит файлы!».

i-rinat ★★★★★
()
Ответ на: комментарий от firestarter

Как, прям заменяет владельца редактируемого файла?

Нет. Создаёт в директории с редактируемым файлом временную копию.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Нет. Создаёт в директории с редактируемым файлом временную копию.

Да причём здесь это, редактор стал заменять владельца файла. Это идиотизм.

firestarter ★★★☆
() автор топика
Ответ на: комментарий от i-rinat

Ну тогда ищи патч и делай обратный. Вот так и появляются треды «<имя фс> портит файлы!».

Делать нефиг, других редакторов полно, Geany, например. Не вижу связи каким образом смена владельца файла поможет спасти файл от сбоя ФС.

firestarter ★★★☆
() автор топика
Ответ на: комментарий от i-rinat

ls -li

Да чё вы привязались своими инодами. Ничто не мешает писать в существующий файл, сохраняя изменения в отдельном файле, который можно удалить после успешной записи, как это делалось в предыдущей версии.

firestarter ★★★☆
() автор топика
Ответ на: комментарий от firestarter

Ничто не мешает писать в существующий файл

Ничто не мешает выстрелить себе в ногу. Ты что правда не понимаешь, почему сохранение сделали так?

сохраняя изменения в отдельном файле, который можно удалить после успешной записи

Как это вообще возможно? Я не представляю, как в этом случае атомарность реализовать. Можешь пояснить свою мысль?

как это делалось в предыдущей версии.

Плохая версия стало быть была.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Ничто не мешает выстрелить себе в ногу. Ты что правда не понимаешь, почему сохранение сделали так?

Потому что надо обязательно сделать чтобы пользователю было неудобно. Это линуксвей.

Ты так и не назвал веских причин зачем делать так, а не просто писать в файл, сохранив его владельца.
Сохранить информацию для восстановления на случай сбоя ФС есть возможность и так. Редактор до того как перезапишет файл, хранит такой файл, который удаляется после успешного сохранения изменений.

firestarter ★★★☆
() автор топика
Последнее исправление: firestarter (всего исправлений: 1)
Ответ на: комментарий от firestarter

Сохранить информацию для восстановления на случай сбоя ФС есть возможность и так. Редактор до того как перезапишет файл, хранит такой файл, который удаляется после успешного сохранения изменений.

Хм. И что, этого прям достаточно для восстановления?

По мне так атомарность предпочтительнее: либо файл старой версии, либо новой. Если не дописалась новая версия (софт упал или сбой питания), есть старая. Если дописалась, она заменяет старую атомарно.

Редактор может, конечно, хранить изменения, потом переписывать. Добавить ещё кучу костылей, которые будут следить за всеми файлами, а не являются они недописанными версиями? Поиск, запуск программ восстановления. Да, твой способ гораздо лучше. (Сарказм.)

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Это для тех, кто забывает нажать «сохранить»

В случае сбоя оно тоже может помочь.

firestarter ★★★☆
() автор топика
Ответ на: комментарий от firestarter

Не делает. Владелец файла не меняется.

Хм, действительно. Там разные ветки для «своих» и «чужих» файлов. Но я только свои редактирую, для них geany делает так, как я упоминал.

i-rinat ★★★★★
()

У меня такой вопрос: Вы на bugtracker писали, чтобы в следующем мелком обновлении это исправили?

nexfwall ★★★★
()
Последнее исправление: nexfwall (всего исправлений: 1)
Ответ на: комментарий от nexfwall

Собирался. Хотел сперва удостовериться что проблема не только у меня и не только в Kubuntu, для чего эта тема и была создана.

firestarter ★★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.