Monthly Shaarli
March, 2021
Check SMART available and enabled:
# smartctl --health --info /dev/sda
...
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Test duration:
# smartctl --capabilities /dev/sda
...
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 313) minutes.
Short test:
# smartctl --test short /dev/sda
*sleep 2 minutes*
# smartctl --log selftest /dev/sda
Exemple results:
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 3224 -
Long test:
# smartctl --test long /dev/sda
*sleep 313 minutes*
# smartctl --log selftest /dev/sda
Pour Windows:
CHKDSK F: /f /r
/f fixes any structural issues with the file system and directory, correcting inconsistencies between the two
/r searches for and fixes corrupted parts of the hard drive (while also running chkdsk /f). Sometimes it can’t fix the unusable or damaged sectors that it finds.
FSCK
fsck -fvn /dev/sdX # dry run
fsck -fvy /dev/sdX # applyEncore un exemple qui montre qu'on ne peut pas faire n'importe quoi sans un minimum de connaissances.
Héberger le moindre service web, c'est une responsabilité. Il ne suffit pas de chercher "comment héberger wordpress" sur internet.
L'hébergement, c'est un métier, c'est pour cela que des professionnels vendent ce genre de prestations.
PS: je ne critique pas le fait d'héberger soi même son site, mais il faut se renseigner un minimum avant, ce n'est pas si simple !
# 'ctrl + z' bind to 'fg' command (invisible mode)
stty susp undef
bind -x '"\C-z":"fg >/dev/null 2>&1"'
Effectivement, faire CTRL-Z pour quitter VIM (le temps de compiler ou autre) et refaire CTRL-Z pour revenir, c'est plus pratique que de faire fg (oui, c'était que 2 lettres, mais là, on a pas à se poser de question, c'est aussi naturel qu'un CTRL-C).
Bon, pour les printfs en C:
#include <inttypes.h>
#define PRIu8 "hu"
#define PRId8 "hd"
#define PRIx8 "hx"
#define PRIu16 "hu"
#define PRId16 "hd"
#define PRIx16 "hx"
#define PRIu32 "u"
#define PRId32 "d"
#define PRIx32 "x" // x -> number in hexadecimal
#define PRIu64 "llu" // or possibly "lu"
#define PRId64 "lld" // or possibly "ld"
#define PRIx64 "llx" // or possibly "lx"
| Syntax | Description |
|---|---|
| %zu | size_t |
| %d / %i | int |
| %u | unsigned int |
| %ld | long |
| %lu | unsigned long |
| %lld | long long |
| %llu | unsigned long long |
| %c | character |
| %s | a string of characters |
| %e | exponential floating-point number |
| %f | floating-point number |
| %0.2f | floating-point number (like 0.58) |
| %o | octal number (base 8) |
| %% | print a percent sign |
| \% | print a percent sign |
| - | - |
| %hhn | unsigned char * |
Finalement, pourquoi on ne mets pas toujours PRIxxx, ça serait plus explicite ...
The specific ones (or the new ones to me)
-
Ctrl+P: Open the command palette (open file or activate feature) -
Ctrl+X: Cut the entire current line if nothing is selected -
Alt+↑/↓: Move a line (or selection) up or down -
Shift+Alt+↑/↓: Duplicate a line (or selection) up or down -
Ctrl+D: Add selection to next Find match -
Ctrl+K Z: Zen mode -
Alt+Scrolling: Fast scrolling (5X) -
Alt+F12: Peek on selection -
F12(orCtrl-clic): Go to definition -
Shift+F12: Go to references (Shift+Alt+F12: Find all references view) -
F2: Refactor -
Ctrl+:: Toggle line comment -
Ctrl+Alt+↑/↓: Multiline editing -
Ctrl+B: Toggle the left pannel -
Ctrl+J: Toggle the bottom pannel
The more classic ones
Alt+←/→: Go back or forwardCtrl+G: Go to lineCtrl+Space: Trigger suggestion
Le paquet command-not-found n'est pas parfait sous Debian.
Il est très pratique, quand vous tapez une commande inconnue, il vous donne directement la commande pour installer l'outil fournissant cette commande.
Il faut donc l'installer comme ça:
sudo apt update
sudo apt install command-not-found
A la fin de l'installation, il est indiqué: You need to run 'update-command-not-found' as root to update the cache.
Il faut donc faire:
sudo update-command-not-found
sudo apt update # nécessaire sinon on choppe une erreur ...
source ~/.bashrc # ou equivalent selon votre situation (ou lancez un nouveau terminal)
Quand on lance une commande inconnue, on obtient alors: (exemple pertinent car le nom de la commande n'est pas le nom du paquet !)
$ docker
Command 'docker' not found, but can be installed with:
sudo apt install docker.io
Autrement, il existe le site command-not-found.com qui vous donne la commande et le TLDR pour la plupart des distributions.
C'est vrai qu'il y a pas mal de temps, je faisais partie de ceux qui avaient un à-priori sur SQLite.
Après, pour une instance de home-assistant, SQLite ne tient pas la route là où MariaDB tient les performances sans soucis (sur Raspberry Pi 3 il y a environ 6-9 mois).
Mais MariaDB est un serveur là ou SQLite est un fichier (ou un ensemble de fichier si on active certaines options).
Un article vraiment bien rédigé pour ceux qui veulent savoir ce que sont les NFT (Non-Fungible-Token).
Linux est souvent considéré comme une alternative plus sûre aux OS traditionnels et commerciaux (que sont Windows et macOS)
Ben non justement, c'est une alternative moins utilisée par les gens "lambda", ce qui fait que c'est moins intéressant pour les pirates, pas que c'est plus sécurisé.
N'avez-vous vraiment jamais lancé une commande du genre:
sh -c "$(curl -fsSL https://domain.tld/script.sh)"
On aura beau avoir l'OS le plus sécurisé du monde, si les gens font n'importe quoi, l'OS n'a pas grand chose à voir là dedans.
Debian, par exemple, est souvent vantée pour sa stabilité et sécurité
Vantée pour sa stabilité, tout à fait, mais vantée pour sa sécurité, il ne me semble pas non ...
Personnellement, j'utilise Debian pour sa stabilité (jamais le moindre problème), mais il faut que je sois vigilant à faire régulièrement les mises à jours (du fait qu'elles mettent plus de temps à arriver pour la stabilité, il faut compenser).
Le titre est un peu putaclic mais l'article explique très bien le principe des injections de code et les failles XSS.
Quand gdb n'est pas disponible sur votre cible mais que gdbserver est là :)
- Sur la cible
$ gdbserver IP:2000 my_prg
- Sur votre machine
$ gdb my_prg(The executable file and the libraries in the host, must exactly match the executable file and libraries on the target)(gdb) target remote IP:2000