web-dev-qa-db-fra.com

Exécution d'une commande en tant qu'utilisateur nologin

J'ai récemment configuré mon serveur afin que mes utilisateurs "virtuels" suPHP ne puissent pas être connectés en utilisant cet article =

Mon problème est qu'avant, lorsque j'exécutais une commande rake pour mon Ruby on Rails fonctionnant sur le serveur, j'utilisais su pour entrer dans www-data et exécuter la commande à partir de là - évidemment je ne peux plus faire ça à cause de la nologin.

En tant qu'utilisateur root, comment puis-je exécuter des commandes en tant qu'autre utilisateur, même s'il s'agit de nologin?

43
user82250

Une façon consiste à lancer un shell pour cet utilisateur (en spécifiant explicitement le shell):

Sudo -u www-data bash 

Cela lancera un shell (bash) en tant qu'utilisateur spécifié. Vous pouvez ensuite exécuter vos commandes et vous déconnecter (pour revenir à votre ancien shell)

53
cyberx86

En tant que root, vous pouvez utiliser su -s /bin/sh $user - l'option -s Remplace le Shell configuré pour l'utilisateur.

40
Sergey Vlasov