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


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

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


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