Типичный вариант использования группового пароля

35

Я проверил более чем полувековой опыт работы с Unix, и ни мои коллеги, ни я никогда не устанавливали пароль для группы ( sgи gpasswd). Каков типичный вариант использования группового пароля или он используется только по историческим причинам?

jippie
источник
4
Возможно я должен послать Кену электронное письмо, прося его рассмотреть во время фазы проектирования; o)
jippie

Ответы:

26

Я тоже никогда не видел, чтобы эта функция использовалась, даже один раз. Большинство SA даже не знают, что это средство существует. При просмотре справочной страницы gpasswdбыла записка:

Примечания о групповых паролях

  Group passwords are an inherent security problem since more than one 
  person is permitted to know the password. However, groups are a useful 
  tool for permitting co-operation between different users.

Почему они существуют

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

Идея с групповым паролем заключается в том, что если вам необходимо получить доступ к определенной группе (в которой вы не указаны как член), вы можете сделать это с помощью newgrpкоманды и получить пароль для получения доступа. к этим альтернативным группам.

Большая проблема с ними заключается в том, что для каждой группы существует только один пароль, что вынуждает людей делиться этим единственным паролем, когда нескольким людям требуется доступ к этой конкретной группе.

группы

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

Судо

С появлением sudoдополнительных разрешений группы могут быть предоставлены по мере необходимости группам, что еще больше подрывает любые варианты использования, которые могут быть предоставлены групповыми паролями. Если вам нужно было предоставить пользователям больше разрешений, было гораздо проще создавать роли, sudoа затем просто разрешать им имена пользователей или группы, в которых они находились, разрешать повышать их разрешения, чтобы они могли выполнять определенную задачу.

списки управления доступом

Наконец, возможность создавать списки контроля доступа (ACL) действительно дала последний бит гибкости, которую модель разрешений Пользователь / Группа / Другие не могла предоставить в одиночку, откладывая любую возможную потребность в паролях группы до неясности.

SLM
источник
Вы уже упоминали sudoи ACLs. Я думаю, udevчто схожая история, конечно, с акцентом на устройства. Интересно читать.
Джиппи
11

Вот практическое использование групповых паролей, которые я реализовал для себя на нашем рабочем сервере, поскольку в журналах указывалось, что моя учетная запись была взломана (или могла быть атакой по словарю).
Я использовал ssh-keygenи puttygenуважительно генерировать пары ключей для использования на моей рабочей станции и домашнем компьютере. Ключ, который я использую из дома, требует пароля. Я добавил оба открытых ключа в .ssh/authorized_keys, создал группу marionetteс паролем и без членов. Как корень я использовал visudoдля добавления следующих строк.

Cmnd_Alias      SUDOING = /bin/bash, /usr/bin/sudo -i
%marionette     ALL=NOPASSWD:SUDOING

Я отключил пароль моей учетной записи, вы не можете войти в него таким образом. Теперь я авторизируюсь только с моими ключами, и вход в защищенную паролем группу newgrp marionetteпозволяет мне войти в систему с помощью root sudo -i.
Без NOPASSWD:опции потребуется пароль вашей учетной записи . Если он отключен, а этой группы нет NOPASSWD, вы не сможете sudo -i. Также потребуется пароль вашей учетной записи пользователя, если в вашем списке команд нет /bin/bashкакой-либо оболочки, используемой вашим корнем по умолчанию.

Несмотря на то, что это делает путь к sudoing на несколько шагов длиннее, это добавляет хороший уровень безопасности. Если вы решили сделать все свои учетные записи такими, создайте одну локальную учетную запись с паролем и привилегиями sudo, но запретите запись ssh /etc/ssh/sshd_config, добавив что-то вроде:

DenyUsers root caan
DenyGroups root daleks

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

coladict
источник
Вы могли бы сделать это намного лучше, sudoесли бы вместо этого использовали команду POSIX newgrp. все же отличный ответ.
mikeserv
Не совсем ответ на вопрос, но отличное предложение по использованию и комбинации «old» ( newgrp) и «new» ( sudo) с явной добавленной стоимостью. Это заслуживает похвалы.
Дирк
1

Я никогда не видел вариант использования этого пароля тоже. И это около 20 лет опыта * nix.

Единственный вариант использования, который приходит мне в голову, это установить его на "!" - заблокирован, поэтому никто, не будучи членом этой группы, не может перейти на нее с помощью newgrpкоманды.

Если я загляну в / etc / group в SLES или / etc / gshadow в системах на базе RedHat, то это, похоже, «типичный» вариант использования. SLES даже не удосужился создать механизм тени для этого пароля.

Nils
источник
Не уверен, что вы имеете в виду. Например. Я newgrp ntpуже не могу , как !блокировка меняет это?
Джиппи
@jippie - так, каково поле пароля для ntp в вашей системе? Если бы было легко угадать пароль, вы могли бы сделать newgrp ntp. С ! Вы не можете.
Нильс
Это всего лишь пример, у него есть 'x', и нет никаких членов группы, кроме самого пользователя ntp. Я просто не понимаю, какую проблему вы !
решаете,
2
От man newgrp: Пользователю будет отказано в доступе, если пароль группы пуст и пользователь не указан в качестве участника.
user2387
0

Позвольте мне предложить вариант использования.

Прежде всего позвольте мне сказать, что мы настолько привыкли к термину «пользователь», что даже не думаем об этом. Но «пользователь» на самом деле не пользователь . Например, дома у нас есть три компьютера - ноутбук моей жены, мой ноутбук и обычный настольный компьютер. Когда я использую ноутбук моей жены, я захожу с ее учетной записью. Когда она использует мой ноутбук, она входит в мою учетную запись. Если кому-то нужен рабочий стол, он или она использует одну общую учетную запись. Здесь мы видим, что то, что компьютерная система называет «пользователем», на самом деле не пользователь, а рабочий процесс - набор действий.

Вот вопрос: почему у меня не может быть более одного занятия - по одному на каждую мою работу? Я могу. На своем рабочем компьютере я создал (экспериментально) много разных пользователей, чтобы я мог сосредоточиться на текущей задаче. Я поместил всех этих пользователей в одну группу, чтобы получить доступ к своим файлам, независимо от того, каким пользователем я сейчас пользуюсь.

Так в чем же заключается gpasswd?

Поведение Ubuntu по умолчанию заключается в создании специальной группы для каждого пользователя.

Что если мы решим думать об этих основных группах как о пользователях и о системных пользователях как о рабочих процессах ?

Чем этим новым пользователям понадобится пароль для входа, верно? Здесь место gpasswd. Мне все еще нужно выяснить, как войти в группу (до этого момента я знал, что вы можете переключать группы с помощью gpasswd, если вы уже вошли в систему).

Райчо Николов
источник
групповой пароль, однако, в этом весь вопрос, который вы не рассмотрели.
Джефф Шаллер
С точки зрения безопасности и подотчетности, которая очень распространена в ИТ, использование чужой учетной записи недопустимо. Хотя это может работать для вашей домашней ситуации, это плохая практика для корпоративной среды.
Джиппи