2017-05-26 6 views
1

J'ai un script shell moveInvoice.sh avec l'autorisation chmod 777 en tant qu'utilisateur test1 et tous les autres scripts sont en cours test2.comment exécuter un script shell en tant qu'utilisateur différent sans passer le mot de passe

Maintenant je dois appeler moveInvoice.sh de test2 J'ai essayé suivant

sudo -c 
sudo -u 

Mais donnez l'autorisation refusée. Y a-t-il un autre moyen de le faire fonctionner avec l'utilisateur de test2?

manuellement une fois que je suis en mesure d'exécuter alors je dois mettre cela dans crontab

+0

Essayez avec linux acl – Rups

+0

Je ne peux pas utiliser acl bcos il a besoin d'utilitaires pour être installé. Puisque c'est un réseau de bureau, nous n'avons aucun accès root pour l'installer. Donc, toutes les commandes de ligne de commande seront utiles. – Sanvi

+0

Ecrivez un binaire pour le script qui peut 'setuid()' [Here's] (https://stackoverflow.com/a/24919588/4162356) un exemple. –

Répondre

1

Vous pouvez configurer un utilisateur sur Linux pour être en mesure d'exécuter sans un mot de passe sudo en ajoutant une option NOPASSWD dans visudo.

exécutez sudo visudo en tant que root, puis ajoutez votre utilisateur sous la spécification de privilège SOMEUSER ALL=(ALL) NOPASSWD: ALL.

maintenant, SOMEUSER sera capable d'exécuter des commandes sudo sans mot de passe.