Можете ли вы указать несколько паролей учетной записи пользователя?

Я хочу назначить 2 пароля для одной учетной записи. То, что я хочу знать, это 1) возможно ли это, и 2) каковы последствия этого для безопасности?

Причина, по которой я хочу это сделать, – это то, что я в настоящее время занят некоторым локальным тестированием, и я думал, что это будет удобно в некоторых конкретных ситуациях. После некоторого исследования я нашел что-то под названием PAM , но я изо всех сил пытаюсь найти информацию о том, как работает установка / настройка.

Я запускаю Ubuntu 12.04.

  • RHEL sudo еще не разрешено для пользователя tina '
  • Отредактированный файл после вызова `sudo visudo`
  • логин с пользователем apache
  • Почему переменные PATH отличаются при запуске через sudo и su?
  • Как обычный пользователь может запускать задачу root cron немедленно, без задержки?
  • использование sudo в приложениях с графическим интерфейсом
  • Безопасны ли sudo и gksudo?
  • Получение no tty присутствует и не запрашивать программу, указанную при использовании git over ssh
  • 4 Solutions collect form web for “Можете ли вы указать несколько паролей учетной записи пользователя?”

    Да, хотя это довольно редко, это определенно выполнимо.

    Вместо того, чтобы пытаться реализовать его самостоятельно, поскольку метод проверки подлинности по умолчанию /etc/password /etc/shadow не предусматривает такую ​​конфигурацию, более простой способ – делегировать аутентификацию на внутренний сервер, который уже поддерживает несколько паролей для пользователя.

    Известным является LDAP, userPassword является многозначным в соответствии с RFC4519 :

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

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

    На стороне Linux ничего не запрещает (здесь учетная запись с именем testuser была предоставлена ​​как pass1 и pass2 как значения атрибута userPassword ):

     $ uname -a Linux lx-vb 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux $ grep VERSION /etc/os-release VERSION="13.04, Raring Ringtail" $ grep "^passwd" /etc/nsswitch.conf passwd: files ldap $ ldapsearch -LLL -h localhost -p 1389 -D "cn=directory manager" -w xxxxxxxx "uid=testuser" userPassword dn: uid=testuser,ou=People,dc=example,dc=com userPassword:: e1NTSEF9b2JWYXFDcjhNQmNJVXZXVHMzbE40SFlReStldC9XNFZ0NU4yRmc9PQ== userPassword:: e1NTSEF9eDlnRGZ5b0NhKzNROTIzOTFha1NiR2VTMFJabjNKSWYyNkN3cUE9PQ== $ grep testuser /etc/passwd $ getent passwd testuser testuser:*:12345:12345:ldap test user:/home/testuser:/bin/sh $ sshpass -p pass1 ssh testuser@localhost id uid=12345(testuser) gid=12345 groups=12345 $ sshpass -p pass2 ssh testuser@localhost id uid=12345(testuser) gid=12345 groups=12345 $ sshpass -p pass3 ssh testuser@localhost id Permission denied, please try again. 

    Вот некоторые технические и связанные с безопасностью последствия такой конфигурации:

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

    Я просто попытался создать 2 записи для пользователя в /etc/shadow и это не сработало. В первую очередь это была запись пароля, которая была использована.

    пример

    Создал тестового пользователя.

     $ useradd -d /home/newuser newuser 

    Задайте пароль для «super123»:

     $ passwd newuser 

    Вручную отредактируйте файл /etc/shadow и сделайте вторую запись:

     newuser:$6$....password #1...:15963:0:99999:7::: newuser:$6$....password #2...:15963:0:99999:7::: 

    Затем попробуйте войти в систему с учетной записью, используя два пароля.

     su - newuser 

    Первая запись в /etc/shadow – это то, что используется get, запись во второй позиции никогда не работает, если вы переверните их так:

     newuser:$6$....password #2...:15963:0:99999:7::: newuser:$6$....password #1...:15963:0:99999:7::: 

    Затем работает второй пароль, а первый – нет.

    Использовать sudo

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

    Вы можете добавить эту запись в свой файл sudoers ( /etc/sudoers ), который разрешил бы пользователю joe делать что-либо, как вы:

     joe ALL=(yourusername) ALL 

    Если вы можете это сделать, вы, вероятно, не должны.

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

    Если выбор между безопасностью и «удобный в некоторых конкретных ситуациях», выберите первый.

    Вы можете установить два разных имени пользователя, каждый со своим паролем, для одной учетной записи. Запустите vipw для редактирования /etc/passwd вручную, vipw существующую строку для интересующей вас учетной записи и измените имя пользователя (и если вам нравится поле Gecos , домашний каталог и оболочка). Запустите vipw -s и vipw -s строку для этого пользователя в /etc/shadow . Войдите под новым именем пользователя и запустите passwd чтобы изменить пароль для нового имени пользователя. Теперь у вас есть два разных имени пользователя с разными паролями для одной учетной записи (идентификатор пользователя – это то, что определяет учетную запись).

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

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

       user1 ALL = (user2) ALL 
    • Создайте ключ SSH для учетной записи, который позволяет запускать только одну конкретную команду .
    Linux и Unix - лучшая ОС в мире.