Je souhaite écrire du texte de stdin dans un fichier appartenant à root. Je le fais par programme à travers une connexion SSH - essentiellement à partir d'un script - donc l'utilisation d'un éditeur de texte est hors de question. Il n'y a pas de terminal. Le processus est entièrement automatisé.Comment utiliser la redirection de sortie avec sudo?
Étant donné que [a] l'élévation de la racine peut être obtenue par sudo
, et [b] Les fichiers peuvent être écrites à l'aide cat
avec redirection, je supposais les éléments suivants travaillerais:
ssh [email protected] sudo cat >the-file
Malheureusement, la redirection est appliqué à sudo
, et non à cat
. Comment puis-je appliquer la redirection à cat
dans cet exemple?
En fait, vous pouvez utiliser un éditeur de texte même sur une connexion SSH, les éditeurs comme vim ou nano devrait fonctionner correctement. Essayez d'expliquer mieux votre cas avec la connexion SSH. Vous êtes déjà connecté lorsque vous essayez de rediriger? – paulequilibrio
Votre commande sudo ne semble pas correcte. Il devrait être 'sudo -u utilisateur -h host cat> le-fichier'. Cela fonctionne sur mon système. "Je le fais à travers une connexion SSH, donc utiliser un éditeur de texte est hors de question". Cette conclusion n'est pas aussi évidente que vous le faites. Les éditeurs tels que 'vim',' nano' et même 'emacs -nw' fonctionnent très bien dans un terminal. – kaylum
@ John1024 oui, je pourrais utiliser tee, mais je préfère résoudre le problème de redirection directement. –