Trucs & Astuces avec Linux
Changer l'éditeur par défaut (pour éditer les cron)
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
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
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
Ajouter le Terminal à un dock Docky
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
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
- /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
Arrêter et redémarrer sans sudo
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
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 ?
echo $XDG_SESSION_TYPE
Désactiver la mise en veille de l'écran
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
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 :
077:777 - 077 = 700, donc les droits utilisés serontrwx------;022:777 - 022 = 744, donc les droits utilisés serontrwxr-xr-x.
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).