Linux : obtenir la valeur numérique du chmod photo

Linux : obtenir la valeur numérique du chmod

Je vous ai déjà parlé du chmod et du chown de manière extensive, mais aujourd’hui on va un tout petit peu plus loin.

Lorsque l’on affiche les permissions d’un fichier avec ls -l, on obtient une notation symbolique du type :

-rw-r-----

C’est lisible quand on a l’habitude, mais cela demande toujours une petite gymnastique mentale pour retrouver la valeur numérique du chmod.

Par exemple, -rw-r----- correspond à :

640

Heureusement, il existe une commande toute simple pour afficher directement la valeur numérique des permissions : stat.

Obtenir la valeur numérique du chmod avec stat

Sous Linux, avec la version GNU de stat, utilisez :

stat -c '%a %U:%G %n' *Code language: JavaScript (javascript)

Exemple de résultat :

644 matt:www-data index.php
640 matt:www-data wp-config.php
755 matt:www-data wp-contentCode language: CSS (css)

Les options utilisées sont les suivantes :

  • -c permet de formater la sortie avec le modèle fourni ;
  • %a affiche les permissions en octal, donc la valeur numérique du chmod ;
  • %U affiche le nom du propriétaire ;
  • %G affiche le groupe propriétaire ;
  • %n affiche le nom du fichier.

La documentation GNU Coreutils liste justement ces séquences de format pour stat, dont %a pour les bits de permission en octal, %U pour le propriétaire, %G pour le groupe et %n pour le nom du fichier.

Lire la suite

Un cercle vert lumineux avec le logo blanc de Linux Mint est centré sur un arrière-plan en dégradé de sombre à clair, mettant en évidence l'édition Debian. Derrière le cercle, un logo plus grand et semi-transparent s'estompe dans l'arrière-plan avec un éclairage vert vibrant.

Linux Mint : changer la cible des dossiers par défaut

Par défaut, Linux Mint crée plusieurs dossiers utilisateur dans le répertoire personnel : Bureau, Téléchargements, Documents, Images, Musique, Vidéos, etc.

Ces dossiers sont pratiques, car l’environnement de bureau et beaucoup d’applications savent les retrouver automatiquement. Par exemple, un navigateur peut proposer Téléchargements par défaut, un gestionnaire de fichiers peut afficher Images dans la barre latérale, et certaines applications peuvent enregistrer dans Documents.

Mais il arrive que l’on veuille changer la cible de ces dossiers pour les faire pointer vers une autre partition, un second SSD, un disque externe, un dossier synchronisé ou un partage réseau.

Sous Linux Mint, comme sur beaucoup d’environnements de bureau Linux, ces chemins sont gérés par xdg-user-dirs.

Le fichier user-dirs.dirs

La configuration utilisateur se trouve ici :

$HOME/.config/user-dirs.dirsCode language: PHP (php)

Pour l’éditer :

nano "$HOME/.config/user-dirs.dirs"Code language: JavaScript (javascript)

Voici un exemple de fichier en français :

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.

XDG_DESKTOP_DIR="$HOME/Bureau"
XDG_DOWNLOAD_DIR="$HOME/Téléchargements"
XDG_TEMPLATES_DIR="$HOME/Modèles"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Musique"
XDG_PICTURES_DIR="$HOME/Images"
XDG_VIDEOS_DIR="$HOME/Vidéos"Code language: PHP (php)

Le commentaire du fichier est important : deux formats sont supportés.

  • un chemin relatif à $HOME, comme $HOME/Documents ;
  • un chemin absolu, comme /mnt/data/Documents.

N’utilisez pas de formats exotiques dans ce fichier. Pas de ~, pas de variables maison, pas de commande shell. Gardez des chemins simples. Le fichier n’est pas un terrain de freestyle, même s’il ressemble vaguement à du shell.

Lire la suite

Serveur dédié : installation de MariaDB 10.3 photo

MariaDB : réparer les tables système après une mise à jour

Sur l’un des serveurs de mes clients Codeable, j’ai mis à jour MariaDB de la version 10.1 à la version 10.3. Après la mise à jour, MariaDB fonctionnait encore et le site s’affichait correctement, mais certaines procédures SQL retournaient cette erreur :

ERROR 1558 (HY000): Column count of mysql.proc is wrong. Expected 21, found 20.
Created with MariaDB 100212, now running 100303.
Please use mysql_upgrade to fix this errorCode language: JavaScript (javascript)

Cette erreur peut apparaître après une mise à jour majeure de MariaDB lorsque les tables système internes n’ont pas encore été mises à niveau.

En clair : le serveur MariaDB a été mis à jour, mais la base système mysql contient encore des tables dans l’ancien format.

Comprendre l’erreur “Column count of mysql.proc is wrong”

Le message indique que la table système mysql.proc n’a pas la structure attendue par la version actuelle de MariaDB.

Dans l’exemple :

Expected 21, found 20

MariaDB attend une table avec 21 colonnes, mais la table existante n’en possède que 20. Elle a été créée avec une ancienne version, puis le serveur a été lancé avec une version plus récente.

MariaDB documente l’erreur 1558 comme un signe probable qu’une mise à jour n’a pas été effectuée correctement, car l’une des tables système ne correspond pas à la taille attendue par la version en cours. La documentation indique que mariadb-upgrade règle généralement ce problème. MariaDB : Error 1558

Cette erreur apparaît souvent lors de l’utilisation de :

  • procédures stockées ;
  • fonctions stockées ;
  • triggers ;
  • events ;
  • outils d’export ;
  • interfaces d’administration comme phpMyAdmin, Plesk ou scripts maison.

Le site peut donc continuer à fonctionner en apparence, tout en ayant une base système incomplètement migrée. C’est le genre d’erreur discrète qui attend poliment le bon moment pour casser un export. Très courtois, très SQL.

Lire la suite