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 !

dimanche 18 novembre 2018

Installer et configurer cheat

Il y a quelques temps déjà, j'avais présenté le projet Cheat de Chris Allen Lane, qui permet de retrouver rapidement des exemples d'utilisation pour les commandes Unix.

On va voir aujourd'hui comment l'installer, le configurer et créer nos propres "cheat sheets".

Installer cheat

cheat est écrit en Python et s'installe donc par un:

sudo pip install cheat

On vérifie la version:

cheat -v
cheat 2.3.1

Configurer cheat

On va ajouter dans notre .bashrc:

export CHEATCOLORS=true

comme cela nos antisèches seront plus jolies !

Puis on va installer le script d'autocomplétion pour Bash:

sudo curl -L https://raw.githubusercontent.com/chrisallenlane/cheat/master/cheat/autocompletion/cheat.bash -o /etc/bash_completion.d/cheat

Maintenant, cheat propose les commandes disponibles quand on appuie sur TAB. Ne pas hésiter à entrer une lettre avant TAB, sinon il nous propose 191 commandes ...

L'autocomplétion n'est pas implémentée sur les options de la commande, c'est dommage.

Ajouter une nouvelle cheatsheet

Pour ajouter une nouvelle sheet sur la commande mycmd:

cheat -e mycmd

Et vous aller alors éditer le fichier ~/.cheat/mycmd.

Si vous souhaitez changer le répertoire des "user cheat", il faut procéder comme ceci:

export CHEATPATH='/path/to/my/cheats'

Les antisèches installées par défaut sont placées dans /usr/local/lib/python3.4/dist-packages/cheat/cheatsheets.

Mettre à jour cheat

Pour mettre à jour cheat:

sudo pip install --upgrade cheat

Voilà. Happy cheating :-)

samedi 2 juin 2018

Chercher dans des fichiers de log avec lnav

Quand on développe, on passe beaucoup de temps à consulter et à chercher des informations dans les fichiers de logs des produits ou du système.

J'ai longtemps utilisé glogg et maintenant il me parait lourd et peu efficace.

lnav que je vais vous présenter maintenant est plus léger et s'avère très performant grâce à de nombreux raccourcis clavier.

Au lancement, on obtient le résultat suivant:

lnav.png

Vous constatez qu'on est au début du fichier. Pour naviguer dans le fichier, on peut utiliser:

  • g pour aller au début
  • G pour aller à la fin
  • Page up ou Backspace/ Page down ou Espace pour naviguer de page en page

Mais ce qu'il y a de commode, c'est que lnav permet d'aller à la prochaine erreur, en tappant 'e' ou au prochain warning en tappant 'w'.

De la même façon, 'E' vous positionne sur l'erreur précédente et 'W' sur le warning précédent.

On peut également naviguer dans le temps, c'est à dire que la touche 'o' vous fait avancer de 24h dans le fichier et 'O' le fait dans le sens inverse. Si l'intervalle recherché est de 24h, il faut utiliser respectivement 'd' ou 'D'.

lnav vous autorise aussi à rechercher un motif en tappant /<regexp>, les regular expressions acceptées étant les PCRE (Perl-Compatible Regular Expressions).

Autre fonctionnalité intéressante, on peut marquer une ligne pour la retrouver plus tard avec la touche 'm'. Ensuite l'appui sur les touches 'u' et 'U' permet de naviguer d'une ligne marquée à l'autre. C'est très utile pour débugger.

Bref, lnav devient rapidement un outil indispensable du quotidien du développeur, et le fait qu'il soit utilisable directement dans un terminal est un atout non négligeable.

Je n'ai évidemment pas décrit ici tout ce qu'on faire avec, pour découvrir d'autres fonctionnalités, vous pouvez utiliser la touche '?' au démarrage de lnav.

- page 1 de 3