На сервачке у меня апач исторически работает не под тем юзером, под которым я правлю файлы. Поэтому для файлов, которые создал апач (читай пых), нужно ставить права на запись для одногруппников.
Вроде всегда это работало, а тут перестало. Права стоят правильные и даже больше (rw-rw-rw-), а при сохранении через WinSCP появляется окошко с ошибкой.
Потратил уйму времени. Перечитал доки по системе прав в linux/unix вплоть до исторической справки о красноглазых админах прошлого века. Убедился, что все помню и понимаю правильно. Но один хрен не работает.
Плевался, ругался. Дошел до адского изврата в виде шелл-скрипта, меняющего права на то, что нужно править.
А тут случайно прочитал, что собственно написано в окошке с ошибкой:
"Upload of file olo.php was successful, but error ocurred while setting permissions and/or timestamp. If the problem persists, turn on 'Ignore permission errors' option".
Проще говоря, файл успешно перезалился, но возникла проблема при установке даты модификации и/или прав. WinSCP после загрузки файла пытается выставить ему права (если в настройках включена галка "Set permissions" - по умолчанию выключена) и назначить дату модификации файла как у локальной копии (по умолчанию включена - если выключить, у обновленного файла будет дата заливки на сервер, а не дата реальной модификации).
Учитывая, что WinSCP чаще всего используется для правки "на горячую" через редактор, дата заливки и модификации фактически совпадают, так что последняя проблема для нас не проблема.
Итого, лечится просто:
"Options - Preferences... - Transfer - Edit - включаем галку Ignore permission errors".
Счастье. Радость.