Почему & ldquo; su bind & rdquo; Работа?

Когда вы делаете apt-get install bind9, там создается пользователь bind.

У меня проблемы с установкой привязки.

См.

для получения дополнительной информации об этом.

Я пытался отлаживать, su переходя от root к пользователю bind (из root, потому что я не знаю пароля).

Обычно это работает для любого пользователя.

Но когда я набираю

su bind

, я не получаю сообщения об ошибке, но пользователь на bash все равно отображается как root, а whoami также говорит мне, что я все еще root. [ 1129]

Если я сделаю то же самое для любого другого пользователя, bash изменит этого пользователя, и whoami также скажет мне, что я этот пользователь.

Итак ... Почему я не могу su пользователю bind?

Вот что отрывок из /etc/passwd:

root@zotac:/etc# cat passwd | grep "bind"
bind:x:107:119::/var/cache/bind:/bin/false

Я пытался заменить [ 1114] с /bin/bash, но это не имеет значения. Так в чем же проблема?

2
задан 13 April 2017 в 15:23

1 ответ

Правильно настроенная система, как Ваш, не позволяет успешные логины (даже с su или sudo -u) как bind. Но можно выполнить команды как bind- даже оболочка, если Вы должны.

Почему это (и должен быть), случай

Пользователь bind не пользователь, который должен смочь войти в систему. Это дизайном.

bind:x:107:119::/var/cache/bind:/bin/false

/bin/false bindоболочка входа в систему. false не реальная оболочка как sh или bash. Вместо этого это не выполняет действия и предупреждает обработку вызовов, что перестало работать. Конфигурирование пользователя с /bin/false поскольку его оболочка является одним из стандартных способов сделать (потенциально) возможным пройти проверку подлинности как пользователь к командам выполнения, но не возможная эффективно войти в систему как пользователь. Когда пользователь имеет /bin/false как его оболочка, это - то, что происходит, когда пользователь входит в систему:

  1. Аутентификация происходит. Принятие его успешно выполняется...
  2. Оболочка, /bin/false, вызывается.
  3. Оболочка сразу выходит.
  4. Так как оболочка входа в систему вышла, сессия входа в систему завершается.
  5. Теперь Вы вернулись к тому, чтобы быть root, так управляет как whoami покажите Вам как root.

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

Почему это происходит даже с /bin/bash Замена /bin/false

Если Вы изменили /etc/passwd непосредственно, я полагаю, что возможно, что кэшированные данные не были обновлены. Если Вы перезагрузите, то проблема будет, вероятно, решена. Но, как объяснено выше, это не действительно хорошая идея. Если Вы поэтому уже не сделали, я рекомендую (тщательно) редактировать ту строку назад к исходной версии (с /bin/false).

Выполнение команд как bind

Вместо этого если действительно необходимо выполнить команду как пользователь bind, использовать sudo выполнять определенную команду:

sudo -u bind command

И если действительно необходимо выполнить оболочку входа в систему как пользователь bind, использовать sudo выполнять оболочку как bind, и скажите оболочке действовать как начальная оболочка входа в систему:

sudo -u bind bash -l

Замена bash с названием оболочки Вы хотите использовать, если отличающийся.

-l флаг делает bash действуйте как оболочка входа в систему (см. man bash). Это соответствует функционально su - bind (см. man su) или sudo -i bind (см. man sudo). Кроме, оболочка Вы указываете (в этом примере, bash) выполнения, вместо /bin/false.

Если Вы хотите что-то, что соответствует su bind или sudo -s bind (оболочка, которая не является оболочкой входа в систему и этим главным образом, сохраняет переменные среды вызывающей стороны, включая HOME), но выполнения /bin/bash вместо /bin/false, используйте эту команду:

sudo -u bind bash

Если по некоторым причинам Вы хотели использовать su (выполнение его как root) выполнять команду как bind, можно выполнить это с -c флаг:

su bind -c command

Вещи не сделать

  • Возможно использовать usermod измениться bindоболочка от /bin/false к чему-то еще. Это позволило бы администраторам использовать sudo -u -i bind или sudo -u -s bind, и root использовать su bind, по крайней мере, если сделано правильно. Но Вы не должны почти наверняка делать этого - это нарушает предположение дизайна, что никто не может войти в систему как bind.
  • Можно даже работать sudo passwd bind установите пароль для bind, так, чтобы любой (кроме гостя) мог войти в систему как bind с su, если они знают пароль. Это также позволило бы войти в систему как bind на виртуальной консоли, через SSH, и возможно даже с графическим экраном входа в систему. Установка пароля для bind еще хуже, чем изменение его оболочки входа в систему, и Вы не должны делать этого.

Как детализировано выше, Вы не должны делать ни одной из этих вещей.

4
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: