Когда вы делаете apt-get install bind9
, там создается пользователь bind
.
У меня проблемы с установкой привязки.
См.
Как добавить файл, создать, прочитать и удалить для конкретного пользователя?
- [ 1124] Как разрешить привязку в app armor?
для получения дополнительной информации об этом.
blockquote>Я пытался отлаживать,
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
, но это не имеет значения. Так в чем же проблема?
Правильно настроенная система, как Ваш, не позволяет успешные логины (даже с 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
как его оболочка, это - то, что происходит, когда пользователь входит в систему:
/bin/false
, вызывается.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
еще хуже, чем изменение его оболочки входа в систему, и Вы не должны делать этого.Как детализировано выше, Вы не должны делать ни одной из этих вещей.