В Ubuntu в директории /var/lock (которая на самом деле является ссылкой на /run/lock) у меня создаются файлы блокировок нолевой длины для синхронизации общего доступа через ф-цию flock.
Всё работает с обычными пользовательскими правами.
Обнаружилось, что в CentOS 7 директория /run/lock имеет права rwxr-xr-x, т.е. обычный пользователь уже не имеет возможность создать там файл блокировки.
Просто для уточнения - первые rwx - это права владельца, вторые r-x - права группы, а третьи - всех остальных. Если Ваш пользователь вдруг окажется владельцем, то это будут его права.
Но есть возможность создавать файлы блокировок в директории /var/tmp.
Насколько правильно так делать? И где вообще полагается создавать файлы блокировок для ф-ции flock?
В принципе, Вы можете их создавать где угодно, главное чтобы искали потом тоже в тех-же местах. Как вариант - можете использовать переменную окружения XDG_RUNTIME_DIR и в каталоге, который там указан создавать свои файлы, соответственно эти блокировки будут работать только для данного конкретного пользователя.
PS:
тут нашлось полное теоретическое обоснование.