Почему вновь созданные пользователи назначаются в основные группы по их именам пользователей?

Почему вновь созданные пользователи назначаются в основные группы по их именам пользователей?

Я заметил, что в ряде дистрибутивов Linux всякий раз, когда создается новый пользователь, он назначается в основную группу с его собственным именем.

Например, если я создам пользователя с именем «testuser», по умолчанию он будет назначен в основную группу «testuser».

Это приводит к тому, что все пользователи имеют свои собственные уникальные основные группы. Все эти группы также будут иметь только 1 пользователя, поскольку не имеет смысла добавлять других пользователей в эти группы. Это несколько противоречит интуиции, поскольку «группа» обычно означает «больше 1».

Эти основные группы пользователей также, как правило, бесполезны при попытке назначить разрешения файлам/папкам.

Есть ли причина, по которой это поведение по умолчанию в дистрибутивах? И есть ли какие-либо варианты использования, где это поведение действительно полезно? Почему бы не назначать всех новых пользователей в основную группу "пользователи"?

решение1

Причина (насколько мне известно, единственная) помещения пользователей в отдельную группу — это создание umask 002разумного umask 007значения по умолчанию.

Theumask— это маска для разрешений по умолчанию для вновь созданных файлов. Значение цифр такое же, как в chmod; первая цифра — для пользователя, вторая — для группы, а третья — для остальных. Если бит в umask равен 1, он удаляется (маскируется) из разрешений вновь созданного файла. Например, если приложение создает неисполняемый файл без особых требований к конфиденциальности¹, оно передаст 666 в качестве разрешений файла, а применение umask 002 приведет к созданию файла с разрешениями 664 ( 0666 & ~002в нотации, подобной C), т. е. файл, который доступен для чтения всем и доступен для записи только пользователю и группе ( rw-rw-r--).

С umask 022 файлы доступны для чтения всем по умолчанию, но только их автору на запись. С umask 002 файлы дополнительно доступны на запись группе, которой они принадлежат. Если основная группа пользователя — это группа, в которой он является единственным пользователем, а umask — 002, то:

  • По умолчанию файлы доступны для записи только их автору, поскольку, несмотря на то, что разрешения равны rw-rw-r--, в группе нет других пользователей, имеющих права на запись.
  • Чтобы разрешить членам группы изменять файл, автору нужно только сделать его владельцем этой группы с помощью chgrp. Это может произойти даже автоматически, если файл создан вкаталог с битом setgidили эквивалентACL.

Преимущество перед umask 022 заключается в том, что в этой настройке для того, чтобы сделать файл доступным для редактирования пользователями, автор должен выполнить две вещи: задать группу и расширить права доступа ( chmod g+w). Люди склонны забывать этот второй шаг (или единственный шаг в каталоге setgid).

¹ Примеры файлов с особыми требованиями к конфиденциальности: ключи шифрования; электронные письма; любой файл в общедоступном каталоге, например /tmp.

решение2

Было принято добавлять всех пользователей в группу users, но это делает неудобным контролируемый обмен файлами (откройте групповые разрешения, у всех есть доступ). Поскольку сегодня процесс может принадлежать многим группам одновременно, просто закройте доступ, дав каждому пользователю свою собственную группу, и обменивайтесь файлами, добавляя для этого явные группы. Или (если доступно) используйтеACL-списки.

Связанный контент