Exécuter en tant qu'utilisateur différent

9

Sur un système RedHat, j'essaie de lancer un programme avec un utilisateur différent qui n'a pas de shell. Dans / etc / passwd, le shell est / sbin / nologin.

J'ai essayé:

  1. su myuser -c /home/myuser/script.sh Résultat: Ce compte n'est actuellement pas disponible.

  2. Avec chown et setuid: chown myuser: mygroup /home/myuser/script.sh chmod + s /home/myuser/script.sh /home/myuser/script.sh Résultat: script.sh est toujours exécuté en tant qu'utilisateur connecté ( racine).

Karl
la source
Exécutez-vous en sutant qu'utilisateur root ou utilisateur non privilégié?
James O'Gorman

Réponses:

17

essayer:

su myuser -s /bin/sh -c /home/myuser/script.sh
mrc
la source
0

cette erreur signifie que dans / etc / passwd vous avez défini shell / sbin / nologin ou / sbin / false pour l'utilisateur myuser.

Veuillez définir quelque chose d'utile comme / bin / bash


la source
C'est ce qui se passait déjà dans le PO; OP demande s'il existe un moyen d'exécuter le programme malgré le nom d'utilisateur n'ayant pas de shell.
Bart Silverstrim
Oui ... C'est la question en fait. Je voudrais savoir s'il est possible d'exécuter un script en tant qu'utilisateur différent, sans définir de shell dans / etc / passwd
Karl
1
Vous ne pouvez pas le faire en utilisant un script si l'utilisateur a un shell comme celui-ci.