Exile on Keyboard St. - Blog sur Linux et Debian

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

Tag - administration

Fil des billets - Fil des commentaires

samedi 4 mars 2017

Trouver facilement votre adresse ip sans parser la sortie de la commande ifconfig

Combien de fois avez-vous eu besoin de connaître l'adresse IP de telle ou telle interface réseau sur une machine physique ou virtuelle ?

Quand on pose cette question la réponse ne se fait pas attendre:

Baahhh, tu n'as qu'à parser la sortie d'ifconfig !

En effet, la sortie de la commande ifconfig ressemblant à ceci:

debian@debian-jessie:~$ /sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:ae:00:9f  
          inet adr:10.0.2.15  Bcast:10.0.2.255  Masque:255.255.255.0
          adr inet6: fe80::a00:27ff:feae:9f/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:155 errors:0 dropped:0 overruns:0 frame:0
          TX packets:136 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:43715 (42.6 KiB)  TX bytes:22029 (21.5 KiB)

Il est possible de parser cette sortie par exemple de la façon suivante:

    /sbin/ifconfig eth0 2> /dev/null | grep 'inet adr:' | cut -d : -f2 | awk '{ print $1}'

Déjà, c'est un peu lourdingue. Ensuite, on ne teste aucune erreur possible, par exemple si la sortie affiche "inet addr" avec deux "d" au lieu d'un, ce qui est le cas sur certaines distributions Linux, on voit ben qu'il faudra modifier la commande grep.

En fait, vous n'êtes pas obligés de parser la sortie d'ifconfig, et on peut obtenir cette adresse ip beaucoup plus simplement avec la commande ifdata.

Pour l'installer:

sudo apt-get install moreutils

Et pour afficher l'adresse:

debian@debian-jessie:/home/debian# ifdata -pa eth0
10.0.2.15

Comme vous le voyez la commande ifdata est très simple à utiliser et elle nous permet également de connaitre toutes les caractéristiques de ce réseau comme l'adresse de broadcast, le masque de sous-réseau, ...

Par exemple pour l'adresse de broadcast:

debian@debian-jessie:/home/debian# ifdata -pb eth0
10.0.2.255

Et pour voir l'ensemble des flags possibles de la commande:

debian@debian-jessie:/home/debian# ifdata 
Usage: ifdata [options] iface
     -e   Reports interface existence via return code
     -p   Print out the whole config of iface
    -pe   Print out yes or no according to existence
    -pa   Print out the address
    -pn   Print netmask
    -pN   Print network address
    -pb   Print broadcast
    -pm   Print mtu
    -ph   Print out the hardware address
    -pf   Print flags
    -si   Print all statistics on input
   -sip   Print # of in packets
   -sib   Print # of in bytes
   -sie   Print # of in errors
   -sid   Print # of in drops
   -sif   Print # of in fifo overruns
   -sic   Print # of in compress
   -sim   Print # of in multicast
    -so   Print all statistics on output
   -sop   Print # of out packets
   -sob   Print # of out bytes
   -soe   Print # of out errors
   -sod   Print # of out drops
   -sof   Print # of out fifo overruns
   -sox   Print # of out collisions
   -soc   Print # of out carrier loss
   -som   Print # of out multicast
  -bips   Print # of incoming bytes per second
  -bops   Print # of outgoing bytes per second

lundi 11 avril 2016

Utiliser le crontab utilisateur sous Linux

Pour ajouter des tâches à exécuter par le scheduler cron sous Linux, on peut utiliser le crontab système (system-wide crontab) défini par le fichier /etc/crontab mais il est plus prudent d'utiliser ce qu'on appelle le crontab utilisateur.

En effet chaque utilisateur sous Linux peut définir ses propres entrées dans un crontab qui lui est propre.

Cela se fait par le biais de la commande crontab. Cette commande permet de :

  • lister les entrées existantes
  • éditer les entrées existantes
  • supprimer toutes les entrées

Lister les entrées dans le crontab

crontab -l

La commande affiche sur la sortie standard les entrées définies pour cet utilisateur.

Editer les entrées du crontab

crontab -e

L'édieur défini par la variable EDITOR s'ouvre permettant l'édition du crontab.

Supprimer toutes les entrées

La commande:

crontab -r

supprime tout ce qui a été défini précédemment pour cet utilisateur.

Attention cela se fait sans demande de confirmation !

Remplacer toutes les entrées du crontab

On peut aussi remplacer toutes les entrées en une seule fois avec:

crontab crontab_file

ou crontab_file est un fichier contenant des entrées de crontab.

dimanche 13 mars 2016

Installer un serveur FTP rapidement sur Debian

Lorsqu'on a besoin de partager rapidement de gros fichiers comme l'export d'une machine virtuelle VirtualBox, un serveur FTP est la solution la plus rapide.

Sur Debian, on pourra installer ftpd comme suit:

sudo apt-get install ftpd

Et c'est tout, le serveur FTP est actif !

Attention tout de même, par défaut les utilisateurs présents dans /etc/ftpusers ne peuvent pas se connecter:

cat /etc/ftpusers
# /etc/ftpusers: list all users disallowed ftp access. See ftpusers(5).

root
ftp
anonymous

Pour arrêter le serveur:

sudo service inetd stop

Comme vous le voyez, ftpd est géré par le démon inetd, il sera donc démarré automatiquement avec le système.

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.

- page 2 de 3 -