Exécuter une commande en tant qu'utilisateur nologin


43

J'ai récemment configuré mon serveur afin que les utilisateurs 'virtuels' de suPHP ne puissent pas être connectés à l'aide de cet article

Mon problème est maintenant que avant quand je courais une rakecommande pour mon application Ruby on Rails en cours d' exécution sur le serveur, suj'entrer dans www-dataet exécutez la commande à partir de là - je ne peux évidemment pas faire plus en raison de la nologin.

En tant qu'utilisateur root, comment puis-je exécuter des commandes en tant qu'autre utilisateur, même si elles sont nologin?


Une solution consiste à lancer un shell pour cet utilisateur (en spécifiant explicitement le shell): sudo -u www-data bashexécutez votre commande et déconnectez-vous
cyberx86

@ cyberx86 Votre solution fonctionne à merveille, pourriez-vous me l'envoyer comme réponse?

Réponses:


50

Une solution 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 shell précédent)


39

En tant que root, vous pouvez utiliser su -s /bin/sh $user - l’ -soption remplace le shell configuré pour l’utilisateur.


1
Cela semble toujours être une erreur pour moi.

Fonctionne très bien pour moi, jamais eu de problème. Lors de l'exécution de scripts avec la syntaxe bash, il faut / bin / bash plutôt que / bin / sh
ekerner
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.