Права доступа по умолчанию

При создании новых файлов и директорий устанавливаются права доступа по умолчанию. У директорий это 777, а у файлов — 666. Если сейчас пользователь создаст файл или директорию, то их права не будут равны правам доступа по умолчанию.

$ touch test
$ mkdir dir
$ ls -l
итого 4
drwxr-xr-x  2 artur users 4096 2005-06-06 15:48 dir/
-rw-r--r--  1 artur users    0 2005-06-06 15:48 test
$

У директории права доступа 755, а у файла — 644 (в различных реализациях Linux права доступа могут отличаться). Почему так получилось? Дело в том, что при создании файла учитывается так называемая пользовательская маска (umask).

Пользовательская маска — это число, которое отнимается от прав доступа по умолчанию. Получившиеся в результате вычитания права доступа применяются к создаваемому файлу.

Для просмотра текущего значения и изменения маски используется встроенная в оболочку команда umask.

umask [маска]

В следующем примере показано, как получить текущее значение маски и как установить маску 0077.

$ umask
0022
$ umask 0077
$ touch new_file
$ ls -l new_file
-rw-------  1 artur users 0 2005-06-07 11:45 new_file
$

При создании нового файла была учтена маска. Результирующие права доступа стали равны 666–0077=0600, то есть rw-------.

При создании новой директории права доступа получатся такими: 777–0077=0700, то есть rwx------.

$ mkdir new_dir
$ ls -ld new_dir
drwx------  2 artur users 4096 2005-06-07 11:51 new_dir/
$

После выхода пользователя из системы и входа обратно будет использоваться значение макси по умолчанию. Для того, чтобы новое значение маски не пропадало, добавьте команду umask 0077 в любую строку файла .bash_profile (в SuSE Linux надо использовать файл .profile), находящегося в домашней директории пользователя.