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 |
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