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

Для учетных записей, в контейнерах, которые не имеют никакой оболочки (например, пользовательские www-данные) я хотел бы использовать sudo, не заканчивая в/root/папке.

Почему это только работает после использования его во второй раз? Как я могу постараться не заканчивать в/root/dir с sudo?

$ sudo lxc-attach -n hugo
root@hugo:~# sudo -H -u golanger /bin/bash && cd /home/golanger
golanger@hugo:/root$
golanger@hugo:/root$ exit
root@hugo:/home/golanger# sudo -H -u golanger /bin/bash && cd /home/golanger
golanger@hugo:~$ 
0
задан 6 February 2017 в 21:02

1 ответ

В sudo -H -u golanger /bin/bash && cd /home/golanger, Ваша текущая оболочка выполняется sudo -H -u golanger /bin/bash и когда это заканчивается успешно, выполнения cd /home/golanger. Так cd не влияет sudo команда.

sudo самостоятельно не сбрасывает рабочий каталог (-H только сбрасывает корневой каталог, не текущий рабочий каталог). Если Вы хотите сделать sudo cd к корневому каталогу целевого пользователя нет никаких параметров командной строки, которые могут непосредственно сделать задание. У Вас будет к обходному решению он:

sudo -H -u golanger /bin/sh -c 'cd; /bin/bash'

Отметьте это, с -i опция, sudo попытается cd к корневому каталогу целевого пользователя, но это также использует оболочку входа в систему пользователя, которая заставит его перестать работать в этом случае.

1
ответ дан 7 November 2019 в 00:54

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

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