Podman - Directory error et variable XDG_RUNTIME_DIR

La variable XDG_RUNTIME_DIR spécifie où sont stockés les fichiers temporaires pour les applications utilisateur (comme les sockets de communication).

Si elle est mal configurée ou pointe vers un répertoire appartenant à root, podman rencontre des problèmes d’autorisation.

Erreur XDG_RUNTIME_DIR directory

Si en exécutant des commandes Podman en rootless vous rencontrez cette erreur :

ERRO[0000] XDG_RUNTIME_DIR directory "/run/user/0" is not owned by the current user

Le problème vient de la variable d’environnement XDG_RUNTIME_DIR définie sur /run/user/0 (le répertoire créé pour le compte root avec UID=0) alors que podman est exécuté sous un autre utilisateur standard).

Correction de l’erreur

Vérifier la valeur actuelle de XDG_RUNTIME_DIR

Pour confirmer la variable :

# echo $XDG_RUNTIME_DIR

Si elle renvoie /run/user/0, c’est qu’elle est définie pour root, causant le problème.

Redéfinir XDG_RUNTIME_DIR pour l’utilisateur actuel

Pour exécuter podman en tant qu’utilisateur standard, il faut redéfinir XDG_RUNTIME_DIR pour utiliser l’UID courrant avec :

# export XDG_RUNTIME_DIR=/run/user/$(id -u)

Vérification - ou création si nécéssaire - que le répertoire est bien créé et qu’il appartient à l`utilisateur :

# mkdir -p $XDG_RUNTIME_DIR
# chown $(id -u):$(id -g) $XDG_RUNTIME_DIR

Automatiser la configuration

Pour éviter d’avoir à redéfinir XDG_RUNTIME_DIR à chaque session, il est possible d’ajouter au fichier fichier ~/.bashrc ou ~/.profile :

export XDG_RUNTIME_DIR=/run/user/$(id -u)

Reload du fichier de configuration :

# source ~/.bashrc

Les commandes podman en rootless ne devraient plus poser de problème :

# podman ps

Documentation

Internet

> Partager <