Почему umask 077 не позволяет пользователю выполнять файлы / каталоги?

10

Я использую umask 077. «Другие» и «группа» не имеют никаких прав, но пользователь не может выполнять файлы / каталоги. Почему umask 077 не позволяет владельцу выполнять файлы / каталоги?

Просто я
источник

Ответы:

6

При использовании umask077 только пользователь имеет права на чтение, запись и выполнение. Пользователь определенно сможет открывать ('выполнять') каталоги (подробнее о том, почему каталоги должны быть исполняемыми в моем ответе здесь ). Тем не менее, файлы всегда должны быть исполняемыми путем ввода chmod u+x myfile; они никогда не выполняются автоматически. В umaskэтом ответе приведена более полезная информация :

Вероятная причина ваших проблем заключается в том, что вы, возможно, ввели значение немного неправильно, что привело к другому значению маски или что значение не было установлено постоянно. Если вы войдете umask 077в терминал, он будет действителен только для этого сеанса терминала; чтобы сделать его постоянным для вашего пользователя, просто добавьте umask 077к нему ~/.profile. Системная настройка по умолчанию для umaskнаходится в /etc/login.defs; он используется , чтобы быть в /etc/profile. Также смотрите man-страницу для pam_umask, которая является модулем pam, который обрабатывает назначение umask.

Следующие примеры взяты из успешной настройки umask 077:

1) Для создания папки : mkdir docпроверил, stat docдал правильные разрешения и «исполняемая» папка:

File: `doc'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d  Inode: 6425268     Links: 2
Access: (0700/drwx------)  Uid: ( 1000/    mike)   Gid: ( 1000/    mike)
Access: 2012-09-12 11:33:01.236675420 +0100
Modify: 2012-09-12 11:33:01.236675420 +0100
Change: 2012-09-12 11:33:01.236675420 +0100
 Birth: -

2) Для создания файла : touch newпроверил с stat newдал правильные разрешения; файл становится исполняемым только при использовании chmod +x:

File: `new'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 6303902     Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/    mike)   Gid: ( 1000/    mike)
Access: 2012-09-12 11:34:58.272676270 +0100
Modify: 2012-09-12 11:34:58.272676270 +0100
Change: 2012-09-12 11:34:58.272676270 +0100

Значение umask077 даст показанные разрешения, но если у вас все еще есть проблемы с разрешениями после umask 077правильной настройки (как обсуждено выше), мы можем рассмотреть это подробнее.

Сообщество
источник
5

Значение umask будет использоваться для соответствующей модификации маски fmask по умолчанию для прав доступа к файлу (базовое разрешение 0666) и маски dmask для разрешений для каталога / папки (базовое разрешение 0777).

Эффективные значения fmask и dmask будут рассчитываться путем вычитания значения umask (октальные вычисления).

Таким образом, umask 0022 приведет к тому, что fmask получит значение 0644 (т. Е. 0666 - 0022), а dmask - 0755 (т. Е. 0777 - 0022).

Umask 0077 предотвратить файлы создаются с любым доступом не только к миру (обозначенного конечной восьмеричной цифра) , но и вашим членам группы (обозначенный предпоследней восьмеричной цифра).

Справка:

точный
источник
чем больше я читаю это, тем больше я не понимаю этого. Есть ли объяснение новичку, который хочет делать небольшие изменения, не зная глубоко?
GusDeCooL