Инструменты пользователя

Инструменты сайта


// umask: дефолтные права к новосозданным файлам

На заметку.

Можно заметить что когда вы создаёте новый файл, к примеру, из тела програмы, при помощи 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, в качестве группы пользователя рекоменду создавать индивидуальную группу, соответствующую имени пользователя, а уже когда надо - дораздавать права.

Комментарии

Старые комментарии

Хатред, ты чего? Это ж базовая информация для самых маленьких пингвинят. Где-то между командами touch и mknod

1 | | 2008-10-04 05:47 | reply

Забавно, что зачастую всякие мелочи и забываются, особенно если ими не пользуешься :) потому и заметка.

2 |
Alexander Drozdov
| 2008-10-04 10:29 | reply