Я получаю 700, когда создаю тестовый файл, но umask - это 0002? Почему не 664?

7106

Где хранятся значения по умолчанию 666 и 777 для файлов и каталогов соответственно?

umask 0002 touch dummy  ls -l  

Говорит мне, что разрешения манекена 700, а не ожидаемые 644. Есть идеи?

1
Похоже, что Умаск ничего не делает. Даже после установки umask на 100 и создания временного файла, я все равно получаю 700 в качестве разрешений. 12 лет назад 0
Что это за файловая система? Если это файловая система FAT / vFAT, которая не понимает полный набор разрешений, то фактические результаты, которые вы получите, будут зависеть больше от параметров монтирования, чем от umask. 12 лет назад 5
FWIW, `mktemp`, команда * real *« сделать временный файл », даст только права доступа владельцу. Daniel Beck 12 лет назад 1

1 ответ на вопрос

5
max

[max @ localhost ~] $ umask

Это будет отображать Umask по умолчанию

0002

В /etc/bashrcфайле хранятся разрешения по умолчанию

16 if [$ UID -gt 199] && ["` id -gn` "=" `id -un`"]; затем 17 масск 002 Еще 18 19 масск 022 20 фантастических 

Маска по умолчанию для обычного пользователя 002

Маска по умолчанию для пользователя root - 022.

Для каталогов базовые разрешения - 0777, а для файлов - 0666.

Это означает, что если вы установите значение umask на 002, вы вычтете значение umask из базовых разрешений.

Для каталогов

777-002 = 775

Для файлов

666-002 = 664

[max @ localhost ~] $ mkdir file1

[max @ localhost ~] $ ls -ld file1

drwxrwxr-x 2 max max 4096 сент. 25 15:37 file1 ------> 775

[max @ localhost ~] $ touch file2

[max @ localhost ~] $ ls -l file2

-rw-rw-r-- 1 max max 0 сен. 25 15:40 file2 -------> 664