Je souhaite pouvoir basculer les utilisateurs au milieu d'un script. Voici une tentative:Exécution de commandes dans un script en tant qu'utilisateur utilisant un autre document
su - User << EOF
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" </dev/null
EOF
Mon but est d'exécuter le code entre les délimiteurs EOF comme si je fait connecté en tant qu'utilisateur.
La ligne médiane est censée installer Homebrew. Si je me connecte en tant qu'utilisateur et exécute la ligne médiane de son propre chef, il s'installe correctement. Mais l'exécution du script complet me donne au-dessus des problèmes:
-e:5: unknown regexp options - lcal
-e:6: unknown regexp options - lcal
-e:8: unknown regexp options - Cach
-e:9: syntax error, unexpected tLABEL
BREW_REPO = https://github.com/Homebrew/brew.freeze
^
-e:9: unknown regexp options - gthb
-e:10: syntax error, unexpected tLABEL
CORE_TAP_REPO = https://github.com/Homebrew/homebrew-core.freeze
^
-e:10: unknown regexp options - gthb
-e:32: syntax error, unexpected end-of-input, expecting keyword_end
-bash: line 34: end: command not found
-bash: line 36: def: command not found
-bash: line 37: escape: command not found
-bash: line 38: end: command not found
-bash: line 40: syntax error near unexpected token `('
-bash: line 40: ` def escape(n)'
J'ai essayé pouvait différentes commandes au lieu de simplement l'installer Homebrew mais ont des problèmes la plupart du temps. Quelle est la différence entre passer une commande à 'su' comme j'essaye de faire et exécuter réellement la commande en tant que cet utilisateur?
Ne pouvez-vous pas utiliser "sudo -u" pour cela? –