3

У меня есть пользователь, которого я создал с помощью

adduser --system --shell /bin/bash --home /home/myuser myuser

Соответствующая строка в /etc /passwd выглядит так:

myuser:x:106:65534::/home/myuser:/bin/bash

Когда я вхожу как этот пользователь, запустив sudo -u myuser bash , я получаю сообщение об ошибке

bash: /root/.bashrc: Permission denied

Действительно, echo $HOME дает мне /root/ . Поэтому каждый раз, когда я вхожу в систему как этот пользователь, мне приходится вручную запускать export HOME=/home/myuser , иначе многие программы не будут работать правильно. Я добавил эту строку в .profile, .bash_profile и .bashrc этого пользователя (на всякий случай), но делать нечего.

Любая помощь приветствуется. Спасибо!

1 ответ1

3

Вы не авторизуетесь под этим пользователем. sudo только изменяет ваши учетные данные безопасности (UID, GID ...), самое большее, он вызывает несколько сессионных модулей PAM, но это по-прежнему не настоящий "логин" (и на самом деле это не su и даже не su -l ).

В частности, sudo часто настраивается для сохранения исходного домашнего каталога для удобства, так как многие люди используют sudo -s для корневых привилегий, но хотят сохранить свои обычные ~/.vimrc и подобные.

Существует опция sudo -H для принудительной установки $ HOME и опция sudo -i для запуска оболочки в режиме "входа в систему" (чтобы она читала .bash_profile), но ни один из них в любом случае не будет означать полный вход в систему. Чтобы правильно войти в систему как этот пользователь, попробуйте ssh myuser@localhost или просто сделайте это из обычного приглашения на вход.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .