На заметку.
Можно заметить что когда вы создаёте новый файл, к примеру, из тела програмы, при помощи fopen/open (без задания прав доступа), или командой touch из командной оболочки, этот файл приобретает какие-то предустановленные права. Значение этих прав доступа определяются значение umask.
Посмотреть текущее значение umask можно соответствующей командой:
$ umask
0026
При таком значении, права новых файлов будут 0640
- чтение/запись для владельца, чтение для группы и запрет доступа для всех остальных. Специальные биты сброшены (первый 0)
Вычисляются значения umask следующим образом:
0666 - <нужная маска> = <значение umask>
В нашем примере:
0666 - 0640 = 0026
Обычно в Linux-системах, которые я видел в последнее время, значение umask - 0022 (путем несложных вычислений получаем права доступа - 0644). Мне кажется, что не во всех случаях целесообразно разрешать ВСЕМ доступ на чтение к файлу, тем более, что иногда на сервере дается chmod +x
на домашний каталог пользователя, дабы web-сервер смог получить доступ к ~/public_html (как там подробнее настраивать, это уже личное дело каждого).
Зачастую значение umask задается в стартовых скриптах, либо, в скриптах входа в оболочку. Так, в случае Archlinux значение umask задается в файле /etc/profile. Локально значение umask можно изменить в файле ~/.profile или, к примеру, ~/.bash_profile
Ну и в заключение, не сколько от себя, так, вроде, всегда было в RedHat, в качестве группы пользователя рекоменду создавать индивидуальную группу, соответствующую имени пользователя, а уже когда надо - дораздавать права.