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

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

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

решение1

Я тоже никогда не видел, чтобы эта функция использовалась, ни разу. Большинство 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-списки

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

решение2

Вот практическое применение групповых паролей, которое я реализовал для себя на нашем рабочем сервере, поскольку журналы показывали, что мой аккаунт был взломан методом подбора (или это могла быть атака по словарю).
Я использовал ssh-keygenи puttygenсоответственно для генерации пар ключей для использования с моей рабочей станции и домашнего компьютера. Ключ, который я использую дома, требует пароля. Я добавил оба открытых ключа в .ssh/authorized_keys, создал группу marionetteс паролем и без участников. Как пользователь root я 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или любая другая оболочка, которую ваш root использует по умолчанию.

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

DenyUsers root caan
DenyGroups root daleks

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

решение3

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

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

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

решение4

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

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

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

Так какое же место здесь занимает gpasswd?

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

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

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

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