Считаете ли вы хорошей практикой реализовать возможность разрешить пользователю с правами администратора входить в систему как другой пользователь, минуя пароль? Это может быть реализовано с помощью мастер-пароля или функции внутри администрации пользователя «Войти как этот пользователь».
Администраторы запрашивают такую функцию, чтобы попытаться воспроизвести сообщенную проблему или проверить, например, в порядке ли гранты.
security
problem-solving
Дэн МакГрат
источник
источник
Ответы:
Нет, совсем нет. Это нарушает разделение обязанностей.
Это также приводит к хаосу при использовании журналов для отображения действий пользователя.
Если вам действительно нужно проверить подобные вещи, у администратора также должна быть фиктивная тестовая учетная запись (и), настроенная как пользователи. Таким образом, они могут сначала подтвердить правильность предоставления прав и т. Д. Для тестового пользователя.
Кроме того, пользователям с правами администратора не всегда следует предоставлять все права, которыми обладает пользователь. Например, у пользователя могут быть веские причины для просмотра номеров кредитных карт в системе. Администратор не должен; эти данные не являются частью их работы. Еще раз, это сводится к разделению обязанностей.
Минимизируйте свое воздействие, сводя к минимуму предоставление несоответствующих прав. Это должно включать администраторов, а также ...
источник
С точки зрения безопасности и принципов чистого программирования, это не очень хорошая идея. Но это может быть огромным удобством в повседневной работе для администратора, поэтому я за это, если все реализовано хорошо.
Для меня реализация ok должна соответствовать следующим требованиям:
Система регистрирует вас как рассматриваемого пользователя, но обходит аутентификацию по паролю, если вы вошли как администратор.
Система знает через флаг, что это не пользователь x, а администратор, вошедший в систему как пользователь x. Любое средство регистрации будет отражать разницу.
Невозможно «вырваться» из входа пользователя на уровень администратора.
На самом деле это может повысить безопасность, поскольку администратору не нужно искать и использовать учетные данные пользователей, что на самом деле часто происходит по причинам, указанным в OP: что-то должно быть проверено, протестировано и т. Д. В учетной записи пользователя. ,
источник
Как всегда ... это зависит. Простого ответа нет, и обе системы используются на практике (например, Windows: администратор не может войти в систему как пользователь без сброса пароля по сравнению с Linux: администратор может войти в систему как локальный пользователь, используя
su
).Ясно, что не разрешать администратору входить в систему как другой пользователь является более безопасным вариантом, поэтому вам нужно решить, перевешивает ли дополнительный комфорт (возможность отладки проблем, возникающих только у определенного пользователя) риск. Если вы решили реализовать такую опцию, убедитесь, что ведется строгая регистрация, чтобы администратор (или кто-то, кто получил пароль администратора) не мог скрыть свои треки.
В качестве альтернативы вы можете использовать шаблон, который использует Windows: администратор не может войти в систему как другой пользователь, но администратор может сбросить пароль пользователя. Таким образом, администратор может получить доступ, но пользователь всегда будет знать, что кто-то получил доступ к его учетной записи.
источник
sudo
не регистрирует вас как локального пользователя, он просто запускает один процесс как пользователь (а-ля Window в «Запуск от имени пользователя»). Чтобы войти как локальный пользователь, используйтеsu
. В противном случае я согласен.sudo -i
.sh
ведет себя исполняемый файл, чем с тем, какие разрешения предоставляются.su - user
иsudo -u user sh
предоставить такой же доступ; Разница в том, чтоsh
запускаются разные сценарии запуска.Что ж, phpBB3 имеет функцию «Проверка прав пользователя» для администраторов, которая действительно полезна. Кроме того, это не позволяет вам вмешиваться в эту учетную запись пользователя, но на самом деле просто получить опыт, который они имеют, основываясь на их разрешениях.
Но на самом деле вход в систему как кто-то другой имеет ряд проблем, как уже упоминалось.
источник
Да, такая функциональность может быть проблематичной, но иногда нет другого пути, поэтому она может быть необходимой.
Несколько примеров:
su - <username>
что дает тот же результат, что и вход в систему от имени этого пользователя, но не требует пароля для пользователя root)Как уже указывалось, если сложные параметры зависят от пользователя, вошедшего в систему (переменные среды, пути, личные настройки в приложении), часто не существует другого практического способа отладки проблемы пользователя.
Что касается ведения журнала / аудита: использование этой функции, конечно, должно быть зарегистрировано. Кроме этого, вы должны доверять своему администратору, чтобы не злоупотреблять им. Но это действительно для администраторов.
Если вам нужно больше ограничивать своих администраторов, вам нужна какая-то система MAC (обязательного контроля доступа) без «истинного» администратора. Это возможно, но гораздо сложнее, так что это компромисс.
источник