umask действует как набор разрешений, которые приложения не могут устанавливать для файлов. Это маска создания файлового режима для процессы и не может быть установлен для самих каталогов. Большинство приложений не будут создавать файлы с установленными разрешениями на выполнение, поэтому по умолчанию у них будет значение 666
, который затем изменяется с помощью umask.
Поскольку вы настроили umask на удаление битов чтения/записи для владельца и битов чтения для других, значение по умолчанию, такое как 777
в приложениях приведет к тому, что права доступа к файлам будут 133
. Это означало бы, что вы (и другие) могли бы выполнить файл, а другие могли бы записывать в него.
Если вы хотите, чтобы файлы не могли быть прочитаны / записаны / выполнены никем, кроме владельца, вам следует использовать umask, например 077
чтобы отключить эти разрешения для группы и других пользователей.
В отличие от этого, umask из 000
сделает вновь созданные каталоги доступными для чтения, записи и передачи для всех (разрешения будут 777
). Такая umask крайне небезопасна, и вы никогда не должны устанавливать umask на 000
.
umask по умолчанию в Ubuntu был 022
это означает, что вновь созданные файлы доступны для чтения всеми, но доступны для записи только владельцем:
user@computer:~$ touch new-file-nameuser@computer:~$ ls -dl new-file-name-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
Начиная с Ubuntu Oneiric (11.10), umask по умолчанию был смягчен до 002
, который расширяет доступ на запись к группе владельца:
user@computer:~$ touch new-file-nameuser@computer:~$ ls -dl new-file-name-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Просмотр и изменение umask
Чтобы просмотреть текущие настройки umask, откройте терминал и запустите команду:
umask
Чтобы изменить настройку umask текущей оболочки на что-то другое, скажем, 077, запустите:
umask 077
Чтобы проверить, работает ли этот параметр или нет, вы можете создать новое файл (права доступа к существующему файлу не будут затронуты) и отобразите информацию о файле, запустите:
user@computer:~$ touch new-file-nameuser@computer:~$ ls -dl new-file-name-rw------- 1 user user 0 Apr 1 19:14 new-file-name
Настройка umask наследуется процессами, запущенными из одной и той же оболочки. Например, запустите текстовый редактор GEdit, выполнив gedit
в терминале и сохраните файл с помощью gedit. Вы заметите, что на вновь созданный файл влияет та же настройка umask, что и в терминале.
Пример использования: многопользовательская система
Если вы работаете в системе, которая используется несколькими пользователями, желательно, чтобы другие пользователи не могли читать файлы в вашем домашнем каталоге. Для этого очень полезна umask. Редактировать ~/.profile
и добавьте новую строку с:
umask 007
Вам необходимо повторно войти в систему для этого изменения umask в ~/.profile
чтобы вступить в силу. Далее вам нужно изменить существующие права доступа к файлам в вашем домашнем каталоге, удалив бит чтения, записи и выполнения для всего мира. Откройте терминал и выполнить:
chmod -R o-rwx ~
Если вы хотите, чтобы этот параметр umask применялся ко всем пользователям в системе, вы можете отредактировать файл общесистемного профиля по адресу /etc/profile
.