Comment contourner l'erreur "This account is currently not available" sous linux

Soumis par Q__nt_n le 08/05/2020
Thèmes :

Suite à une installation tout fraîche de mon serveur, j'ai du déployer un site drupal. 

Je ne voulais pas déployer les sources avec mon utilisateur actuel mais plutôt utiliser celui de Nginx (www-data), cela m'évitait de lancer une commande ```chown``` par la suite. 

J'ai donc lancé ma commande et malheureusement l'erreur suivante est apparue :

$ su www-data -c composer install
This account is currently not available.

L'erreur est générée car l'utilisateur www-data, par défaut, n'a pas de shell. On peut le vérifier avec cette commande :

$ cat /etc/passwd | grep www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

La solution est donc d'ajouter un shell à cet utilisateur et pour cela, deux possibilités s'offrent à nous : 

    1 - Forcer l'usage d'un shell de manière temporaire (juste pour l'exécution de la commande) :

su -l www-data -s /bin/bash -c composer install

    2 - Ajouter un shell de manière permanente (solution non recommandée) : 

chsh -s /bin/bash www-data