63 votes

Exécuter un Shell Shell sous un autre utilisateur.

Quel est le bon moyen d'exécuter un Shell Shell en tant qu'utilisateur différent. J'utilise Debian etch, et je sais quel utilisateur je veux usurper l'identité.

Si je le faisais manuellement, je le ferais :

su postgres
./backup_db.sh /tmp/test
exit

Comme je veux automatiser le processus, j'ai besoin d'un moyen d'exécuter backup_db.sh en tant que postgres (en héritant de l'environnement, etc.).

Merci !

2voto

Geoff Fritz Points 1707

La méthode "su -c ... "publiée par d'autres est une bonne méthode. Pour l'automatisation, vous pourriez ajouter le script à la crontab de l'utilisateur sous lequel vous avez besoin qu'il s'exécute.

2voto

smishra Points 111

Si l'utilisateur a déjà une entrée dans sudo et que vous ne connaissez pas le mot de passe du superutilisateur, vous pouvez essayer ce qui suit : Celui-ci redémarre le postgres initialisé à /data/my-db/pgsql/9.6/data

sudo su - postgres -c "/usr/pgsql-9.6/bin/pg_ctl -D /data/my-db/pgsql/9.6/data -l /var/log/pgsql.log restart"

1voto

Vladimir Sorokin Points 842

Vous pouvez également utiliser :

sudo -u postgres script_run_as_postgres.sh

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X