Je souhaite télécharger un script depuis: http://dl.dropbox.com/u/11210438/flockonus-stack.sh et l'exécuter. Ma conjecture est, pour utiliser wget le renommer, le modifier et l'exécuter.
Quelles sont les commandes pour le faire sur Ubuntu?
Je souhaite télécharger un script depuis: http://dl.dropbox.com/u/11210438/flockonus-stack.sh et l'exécuter. Ma conjecture est, pour utiliser wget le renommer, le modifier et l'exécuter.
Quelles sont les commandes pour le faire sur Ubuntu?
Prudent
Avant d'exécuter le script, faites-vous confiance à la personne qui l'a écrit?
Par exemple, vous attendiez-vous à ce que le script contienne cela?
echo "brain1" > /etc/hostname
Cela va essayer de changer votre nom d'hôte.
Pour référence future, si, après avoir vérifié que le script est correct et non malveillant, vous pouvez l'exécuter sur une seule ligne comme ceci:
wget -O - http://dl.dropbox.com/u/11210438/flockonus-stack.sh | bash
Mais téléchargez-le séparément et lisez-le avant de l'exécuter la première fois.
Notez également que les invites interactives dans le script téléchargé peuvent ne pas fonctionner correctement à l'aide de cette méthode.
echo "brain1" > /etc/hostname
pourrait tout aussi bien l'êtrerm -rf /
.apt-get install
lignes? Siapt-get
installerait des dépendances supplémentaires, il vous le demandera, et s'il ne le peut pas, il quittera simplement pour être sûr. Soit ajoutez tous les packages dépendants aux arguments de la ligne de commande, soit envisagez d'ajouter-y
, par exempleapt-get -y install...
Scripts non interactifs
Notez que lorsque vous utilisez cette méthode, les scripts interactifs ne fonctionneront pas.
Scripts interactifs
Pour que les scripts interactifs fonctionnent, vous pouvez utiliser ceci:
Scripts interactifs qui doivent être exécutés en tant que root
Notez que vous ne pouvez pas utiliser simplement
sudo bash
car l'utilisation<(...)
créera un fichier virtuel et son descripteur de fichier ne sera pas accessible à partir de l'instance bash de root. Il doit être exécuté sur le même utilisateur qui doit lire le fichier virtuel, il doit donc être envoyé comme sa propre commande dans le shell des utilisateurs root.la source
Lorsque dpkg s'exécute, appelé par apt-get, il vide stdin. Si vous utilisez une commande comme
curl blah | bash
, alors vous envoyez essentiellement le contenu de la page à bash via STDIN. Si l'une de vos commandes est apt-get, puis s'exécute, tout le reste sera vidé.L'astuce consiste à utiliser une commande comme celle-ci
apt-get install --yes denyhosts </dev/null
. Cela donne à apt-get une entrée différente, et il vide simplement / dev / null au lieu du reste de votre script.Si vous voulez voir un exemple complet d'installation de quelque chose via un script distant, vous pouvez regarder ce script pour configurer les denyhosts
Pour mémoire, je préfère le curl plutôt que le wget pour cela, mais le wget devrait également convenir.
la source
la source
Tous ces exemples manquent un point assez important. Si vous utilisez l'URL
http://dl.dropbox.com/u/11210438/flockonus-stack.sh
, vous devez auditer le script chaque fois que vous le téléchargez, car il peut être modifié par n'importe qui sur le chemin réseau entre vous et dropbox. Si vous passez à http s : //dl.dropbox.com/u/11210438/flockonus-stack.sh , vous n'aurez pas cette source d'insécurité.(Dropbox essaie de rediriger l'URL http vers https, mais dans le cas d'une attaque réseau, wget ne pourra jamais parler à la vraie dropbox et ne verra jamais la redirection)
la source
Essayez simplement de le télécharger comme vous l'avez spécifié avec wget, puis de l'exécuter directement. Vous pouvez avoir de la fantaisie et utiliser des variables pour le script que vous souhaitez télécharger, etc., mais cela fera l'affaire
Par exemple:
la source