Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

lundi 17 avril 2017

Un installeur d'archives pour Linux: liar

Quand on développe sous Linux, on est souvent amené à installer des logiciels sans être connecté en tant que root.

Ces logiciels livrés sous forme d'archive .zip ou .tar.gz la plupart du temps sont installés dans l'arborescence de l'utilisateur courant $HOME.

Cette façon d'installer un logiciel manuellement comprend les étapes suivantes:

  • Le téléchargement de l'archive
  • La création du répertoire d'installation
  • Le changement de répertoire
  • La décompression de l'archive

Toutes ces opérations manuelles, outre le fait qu'elles sont rébarbatives et conduisent trop souvent à des erreurs notamment sur les flags à utiliser pour décompresser l'archive.

De plus, il nous faut ensuite créer des liens symboliques vers les exécutables du logiciel, par exemple dans $HOME/bin, pour en faciliter son utilisation.

Le projet Linux Installer for ARchives ou liar comble ce vide en fournissant une ligne de commande permettant de réaliser toutes ces opérations en une seule fois.

liar permet donc d'installer, de lister et de supprimer tout logiciel livré sous forme d'archive dans le répertoire de votre choix, avec optionnellement la création des liens symboliques.

L'installation de liar est très simple puisqu'il suffit de copier un seul script Shell dans votre arbrorescence. La complétion bash peut également être utilisée à condition d'ajouter le fichier de complétion dans /etc/bash_completion.d/.

La documentation de Linux Installer for ARchives se trouve sur Framagit comme le reste du projet.

Cette documentation liste l'ensemble des fonctionnalités de liar et illustre de nombreux exemples d'utilisation. Elle n'est pour l'instant disponible qu'en Anglais.

liar est un logiciel libre, distribué selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation, version 3 de la Licence (ou toute version ultérieure).

Pour en savoir plus sur le projet, vous pouvez consulter la vidéo d'introduction à liar:

jeudi 15 octobre 2015

Ajouter un utilisateur dans la liste des 'sudoers' sous Debian

Sur un système Debian fraîchement installé, et je dis bien Debian et non Ubuntu, Mint ..., l’utilisateur créé ne peut pas par exemple lancer la commande suivante avec succès:

myuser@mymachine:~$ sudo apt-get update
[sudo] password for myuser: 
myuser is not in the sudoers file.  This incident will be reported.

En effet, par défaut l'utilisateur myuser n'a pas les droits sudo.

Pour qu'il obtienne les droits d'utiliser la commande sudo, il suffit qu'il appartienne au groupe Unix sudo, comme le montre la fin du fichier de configuration de sudo, /etc/sudoers:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Ajouter le groupe sudo à la liste des groupes de notre utilisateur se fait comme suit:

root@mymachine:/home/myuser# adduser myuser sudo
Ajout de l'utilisateur « myuser » au groupe « sudo »...
Ajout de l'utilisateur myuser au groupe sudo
Fait.

Maintenant, j'ai les droits sudo:

myuser@mymachine:~$ id
uid=1000(myuser) gid=1000(myuser) groupes=1000(myuser),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),112(netdev)

Et je peux par exemple mettre mon système à jour:

myuser@mymachine:~$ sudo apt-get update
[sudo] password for myuser: 
Atteint http://ftp.fr.debian.org wheezy Release.gpg
Atteint http://security.debian.org wheezy/updates Release.gpg          
Atteint http://dl.google.com stable Release.gpg                        
Réception de : 1 http://ftp.fr.debian.org wheezy-updates Release.gpg [1 554 B]
Atteint http://security.debian.org wheezy/updates Release                      
Atteint http://ftp.fr.debian.org wheezy Release                                
Atteint http://dl.google.com stable Release     

Petite précision tout de même, pour que l'ajout de groupe soit effectif, il faut au moins ouvrir un nouveau terminal pour l'utilisateur en question voire se déconnecter complètement.

samedi 8 août 2015

Attention aux built-in et aux variables spécifiques à bash

On lit ça et là que pour vérifier si l'utilisateur courant est root il faut utiliser la variable UID ou EUID en procédant comme suit:

if [ $EUID -ne 0 ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

malheureusement en omettant de préciser que ces variables sont spécifiques à bash et donc utilisable à condition d'avoir bash sur la machine et d'avoir explicitement demandé à l'utiliser.

En effet, depuis que la plupart des environnements Linux ont bash comme Shell par défaut, les développeurs semblent vouloir écrire chaque script forcément en bash. Cette intention est louable pour profiter de la puissance de ce Shell, mais rendra le script inutilisable dans un environnement dépourvu de bash et/ou si le Shebang n'est pas positionné correctement.

Par conséquent, si l'on souhaite écrire des scripts Shells portables, il faut bien prêter attention aux built-in et variables de bash qui seraient absentes sur sh.

jeudi 15 mai 2014

Session X verrouillée sous Linux: Attention quand même aux consoles

Sous Linux, on a tous l'habitude de bien verrouiller notre session X lorsqu'on s'absente de notre poste.

En ayant eu besoin récemment du mode console accessible par les raccourcis Ctrl Alt F1, Ctrl Alt F2 ..., j'ai pu constater que le verrouillage X ne bloque nullement l'accès à une session ouverte en mode console.

D'une certaine façon c'est logique, mais pensez-vous bien à chaque fois à vous déconnecter de vos consoles avant de retourner au mode graphique (Ctrl Alt F7) ?

Cela peut être particulièrement piégeux puisqu'on utilise souvent le mode console avec le compte super utilisateur root ...