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.