Sudo без пароля для контейнера разработчика Fedora (ошибка PAM) [закрыто]Linux

Ответить
Anonymous
 Sudo без пароля для контейнера разработчика Fedora (ошибка PAM) [закрыто]

Сообщение Anonymous »

Я пытаюсь создать контейнер разработчика Fedora для редактора zed.
Контейнеры разработки для zed все еще находятся в стадии разработки, поэтому вы пока не можете легко пересобирать контейнеры. По этой причине я хочу предоставить своему пользователю привилегии sudo, чтобы я мог обновлять и/или добавлять пакеты, не дожидаясь долгого ожидания создания совершенно нового образа контейнера. Однако при этом у меня возникают проблемы с привилегиями:
Мой текущий файл докеров:

Код: Выделить всё

FROM fedora:latest

# Update and install gcc (required by rust)
RUN dnf -y update && dnf -y install gcc \
sudo \
gcc-c++ \
libX11-devel \
systemd-devel \
wayland-devel \
libxkbcommon-devel \
alsa-lib-devel \
mesa-dri-drivers \
mesa-vulkan-drivers \
mesa-libGL \
mesa-libGLU \
mesa-libGLU-devel \
mesa-libEGL \
mesa-libEGL-devel \
vulkan-loader \
vulkan-loader-devel \
vulkan-tools \
python3-pip

# Set non-root user and group
ARG user=appuser
ARG group=appuser
ARG uid=1000
ARG gid=1000
RUN groupadd -g ${gid} ${group} -f
RUN useradd -u ${uid} -g ${group} -m ${user}

RUN usermod -aG wheel ${user}

RUN echo "${user} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/${user} && \
chmod 0440 /etc/sudoers.d/${user}

USER ${uid}:${gid}

# install default rust toolchain
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | RUSTUP_INIT_SKIP_PATH_CHECK=1 sh -s -- -y --default-toolchain stable

# Ensure cargo is in PATH
ENV PATH="/home/${user}/.cargo/bin:${PATH}"

CMD [ "bash" ]
с файлом devcontainer.json:

Код: Выделить всё

{
"name": "DSO container",
"build": {
"dockerfile": "dockerfile",
"context": "."
},

"args": {
"uid": "${id -u}",
"gid": "${id -g}"
},

"containerEnv": {
"XDG_RUNTIME_DIR": "${localEnv:XDG_RUNTIME_DIR}",
"WAYLAND_DISPLAY": "${localEnv:WAYLAND_DISPLAY}"
},

"mounts": [
{
"source": "${localEnv:XDG_RUNTIME_DIR}/${localEnv:WAYLAND_DISPLAY}",
"target": "/tmp/${localEnv:WAYLAND_DISPLAY}",
"type": "bind"
}
],

"runArgs": [
"--device",
"/dev/dri",
"--device",
"/dev/snd",
"--env",
"XDG_RUNTIME_DIR=/tmp",
"--env",
"WAYLAND_DISPLAY=${localEnv:WAYLAND_DISPLAY}",
],
}
Контейнер собирается и работает успешно, но когда я пытаюсь использовать sudo, я получаю сообщение об ошибке:

Код: Выделить всё

sudo: PAM account management error: Authentication service cannot retrieve authentication info
sudo: a password is required
Судя по тому, что мне удалось найти при поиске, это как-то связано с тем, что PAM ищет пароль и не находит его. Однако, поскольку (насколько мне известно) я установил для контейнера пароль sudo, я не понимаю, почему это проблема.
Что вызывает эту ошибку и как ее исправить? Спасибо

Подробнее здесь: https://stackoverflow.com/questions/798 ... -pam-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»