Exile on Keyboard St. - Blog sur Linux et Debian

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

vendredi 27 septembre 2019

Obtenir les droits root avec sudo sans entrer de mot de passe

On a vu dans un billet précédent comment ajouter un utilisateur dans la liste des 'sudoers' sous Debian.

Pour cela on a ajouté notre utilisateur au groupe sudo, et grâce à la configuration suivante du fichier /etc/sudoers:

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

on a acquis les droits sudo.

On aurait pû à la place simplement déclarer notre utilisateur my_user avec:

my_user ALL=(ALL:ALL) ALL

Si maintenant on souhaite que notre utilisateur puisse utiliser la commande sudo sans saisir son mot de passe, puisqu'il est déjà loggé, il faut modifier la ligne en:

%sudo   ALL=(ALL:ALL) NOPASSWD: ALL

ou

my_user ALL=(ALL:ALL) NOPASSWD: ALL

Maintenant, le mot de passe n'est plus demandé.

Attention, pour éditer le fichier /etc/sudoers, il est préférable de ne pas utiliser un éditeur de texte mais la commande visudo, qui validera la syntaxe du fichier, et vous évitera ainsi d'avoir une configuration incorrecte qui ne fonctionne pas.

Pour finir, rappelons que dans cette configuration, il est important de verouiller son poste systématiquement, car tout utilisateur utilisant un de vos terminaux ouverts pourra passer root !

samedi 18 mai 2019

Recevoir des notifications 'Desktop' depuis le Terminal

Quand on lance une commande qui prend du temps sous Linux, comme une compilation ou l'éxécution de tests unitaires, on est amené à aller voir périodiquement où c'en est, ce qui est un peu barbant et pas très efficace.

Il est pourtant possible d'envoyer des notifications à l'environnement graphique depuis la ligne de commande. On commnence par installer:

sudo apt-get install libnotify-bin

La commande à utiliser s'appele notify-send. Par exemple pour être notifié d'une erreur de compilation:

make || notify-send 'Compilation Failed' /home/user/sources/projects/my-project

Ce qui donne:

Notification Bureau

Le premier paramètre est le titre de la notification, ici 'Compilation Failed', le second correspond au texte qui s'affiche en dessous.

Comme il s'agit d'une erreur, on aurait dû utiliser:

make || notify-send -i error 'Compilation Failed' /home/user/sources/projects/my-project

Notification Erreur Bureau

Il est aussi possible d'afficher un message informatif, avec une ampoule comme icône, comme par exemple:

Notification Bureau (Info)

Ce qui correspond à la commande:

make || notify-send -i info 'Compilation Failed' /home/user/sources/projects/my-project

On peut également définir le temps d'affchage de la notification avec le flag -t:

make || notify-send -t 3000 -i error 'Compilation Failed' /home/user/sources/projects/my-project

Ainsi, la notification sera affichée 3 secondes à l'écran.

On voit donc qu'envoyer des notifications sur le bureau depuis la ligne de commande et vos scripts est très facile. La commande de notification pourra même être intégrée dans des alias Bash afin d'avoir une notification d'erreur chaque fois que la compilation ou les tests échouent.

dimanche 30 décembre 2018

Des vidéos de vos sessions de Terminal avec asciinema !

Quand on souhaite partager une technique ou une commande en faisant une vidéo, on a souvent recours à un logicel comme RecordMyDesktop ou Camtasia.

Ces logiciels demandent un peu de discipline comme par exemple sélectionner la fenêtre d'enregistrement, régler le volume du micro et ne pas se tromper dans le commentaire !

Mais quand il s'agit d'illustrer des commandes faites dans un terminal, il y a une méthode beaucoup plus légère et simple qui se nomme Asciinema, un projet initié par Marcin Kulik.

En effet, Asciinema permet d'enregistrer la session de votre terminal directement depuis celui-ci, tout en conservant les couleurs du terminal et les informations de "timing", et tout cela dans un fichier texte puisqu'une vidéo Asciinema est un fichier .json !

Une fois votre "vidéo" terminée, vous pourrez la rejouer, la partager mais aussi l'enregistrer et la publier sur le site d'Asciinema.

Installer Asciinema

Le plus simple pour disposer de la version la plus récente d'Asciinema est de l'installer avec Python:

sudo pip3 install asciinema
Downloading/unpacking asciinema
  Downloading asciinema-2.0.1.tar.gz
  Running setup.py (path:/tmp/pip-build-s4u_o9a3/asciinema/setup.py) egg_info for package asciinema
    
Installing collected packages: asciinema
  Running setup.py install for asciinema
    
    Installing asciinema script to /usr/local/bin
Successfully installed asciinema
Cleaning up...

On a alors:

which asciinema 
/usr/local/bin/asciinema

Et:

asciinema --version
asciinema 2.0.1

Enregistrer votre première vidéo avec Asciinema

Pour enregistrer notre première vidéo, on va entrer la commande suivante dans le terminal:

asciinema rec -t "My first asciinema video"

Cliquez sur le lien suivant pour une démo de l'utilisation d'Asciinema.

On peut voir que les commandes passées sont rejouées à la même vitesse et que les couleurs du terminal sont conservées.

Pendant que la vidéo se joue, vous pouvez sélectionner du texte avec la souris et ainsi utiliser le copier/coller !

Publier ou enregistrer la vidéo

Pour arrêter l'enregistrement, il faut utiliser <ctrl-d>, on a alors le choix entre publier la vidéo sur asciinema.org ou l'enregistrer en local:

pyfourmond@charlie-watts:/tmp/new_project (master)$ exit
asciinema: recording finished
asciinema: press <enter> to upload to asciinema.org, <ctrl-c> to save locally

View the recording at:

    https://asciinema.org/a/3CgRsy57JdioG0bCXHhDbLBnw

- page 1 de 12