LINUX


Créer un alias permanent

Liens_Web:
  1. Editer le fichier “.bashrc

    Il faut éditer le fichier “~/.bashrc” et ajouter cette commande à la suite de la ligne : “some more ls aliases

    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
    
  2. Créer ou éditer le fichier “~/.bash_aliases

    Ajouter le nouvel alias sous la forme

    alias nom_de_votre_alias='commande de votre alias'
    
    ex:
    alias python='/user/local/bin/python3.6'
    alias pip='/usr/local/bin/pip3.6'
    
  3. Relancer “.bashrc”
    source ~/.bashrc
    

Configuration Système

Date et heure

date
Liens_Web:
  1. Télécharger et installer les paquets
    sudo apt-get update
    sudo apt-get install ntp ntpdate
    
  2. Editer le fichier ntp.conf et ajouter les serveurs NTP.fr
    nano /etc/ntp.conf
    
    ## Ajouter les serveur NTP français
    server 0.fr.pool.ntp.org prefer # Le terme 'prefer' indique le serveur NTP
                                    # à utiliser de préférence
    server 1.fr.pool.ntp.org
    server 2.fr.pool.ntp.org
    server 3.fr.pool.ntp.org
    
  3. Synchroniser le deamon avec les serveurs NTP
    service ntp stop
    ntpdate pool.ntp.org
    service ntp start
    
  4. Vérifier le décalage avec tous les serveur NTP
    ntpq -p
    

Changer la disposition du clavier

sudo dpkg-reconfigure keyboard-configuration

Administration système

Arrêter / Démarrer les services (deamon)

  1. Arrêter / démarrer un service
    service [nom_du_service] [action]
    
    ex :
    service ntp stop
    
  2. Connaitre la liste est l’état de tous les services
    service --status-all
    

Créer une tâche planifié (cron)

Liens Web:
cron:

C’est le soft qui exécute les taches planifiées

crontab:

C’est le gestionnaire des taches planifiées. Il y en a un par utilisateur

  1. Option de crontab :

    crontab -l
        # Pour lister les tâches planifiées
    
    crontab -e
        # Pour Créer / éditer les tâches planifiées
    
    crontab -r
        # Pour supprimer le crontab
        # !!! Suppression immédiate, pas d'avertissement, pas de confirmation
    

Pour créer un script qui s’exécute au démarrage du système

Pour faire en sorte qu’un script s’exécute au démarrage, il faut 2 éléments distincts :
  • Un script shell placé dans /etc/init.d

    # N.B : le « d » dans « int.d » signifie : deamon. C’est le nom des services sous linux

    Exemple de script/etc/init.d/skeleton

    # Le fichier skeleton, dans linux, est donné a titre de modèle. Il est conseillé de se faire une copie du fichier dans ses documents et de travailler à partir de cette exemple

  • un script (notre code python) placé dans /usr/sbin

    # N.B : le « s » dans « sbin », signifie : system. Le bin représente les Binnaires, c’est à dire les exécutables. Le dossier sbin est donc le dossier qui contiens les exécutable du système, autrement dit les services.

  1. Ouvrir une copie du fichier « skeleton » et modifier les ligne suivante :
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:          skeleton                   <-- le titre
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Example initscript         <-- description courte
    # Description:       This file should be used   <-- description longue
    #                    to construct scripts to be
    #                    placed in /etc/init.d.
    ### END INIT INFO
    
    # Author: Foo Bar <foobar@baz.org>              <-- votre nom
    #
    # Please remove the "Author" lines above and replace them
    # with your own name if you copy and modify this script.
    
    # Do NOT "set -e"
    
    # PATH should only include /usr/* if it runs after the mountnfs.sh script
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    DESC="Description of the service"
    NAME=daemonexecutablename                       <-- le nom de votre deamon
    DAEMON=/usr/sbin/$NAME                          <-- le chemin de votre script si
                                                    ce dernier est différent du
                                                    chemin ci contre
    
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:          skeleton
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Example initscript
    # Description:       This file should be used to construct scripts to be
    #                    placed in /etc/init.d.
    ### END INIT INFO
    
    # Author: Foo Bar <foobar@baz.org>
    #
    # Please remove the "Author" lines above and replace them
    # with your own name if you copy and modify this script.
    
    # Do NOT "set -e"
    
    # PATH should only include /usr/* if it runs after the mountnfs.sh script
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    DESC="Description of the service"
    NAME=daemonexecutablename
    DAEMON=/usr/sbin/$NAME
    DAEMON_ARGS="--options args"
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    
  2. Après avoir effectuer les modification, enregistrer le fichier sous un autre nom (ex : blink_init) dans le dossier :

    /etc/init.d/
    
  3. Depuis le dossier /etc/init.d, ouvrir une fenêtre terminale et rendre le script exécutable avec la commande suivante :

    chmod a+x [nom_du_script]
    
    ex : chmod a+x blink_init
    
  1. Si se n’est pas déjà fait, éditer le script et ajouter la ligne suivante sur la première ligne de votre fichier

    #!/usr/bin/env python3
    
  2. Copier le fichier dans le dossier /usr/sbin/

  3. Rendre le script exécutable

    chmod a+x [nom_du_script.py]
    
    ex: chmod a+x blink.py
    

Connaître la version du système

  1. Installation de lsb-release
    apt-get install lsb-release
    
  2. Utilisation de lsb-release
    lsb_release -a
    

Connaître la version d’un paquet

  1. Installation de apt-show-versions
    apt-get install apt-show-versions
    
  2. Utilisation de apt-show-versions
    apt-show-versions *nom_du_paquet*
    

Emplacement des programmes

  1. Connaitre l’emplacement d’un programme
    whereis [Nom_du_programme]
    
    ex:
    whereis python
    
  2. Emplacement par défaut des programmes

    Les programmes sont généralement placés dans “usr/bin/”. Par convention, les programmes tiers que nous installons, doivent être installés dans : “/usr/local/”


Réseau

SSH

Liens_Web:
sudo aptitude install openssh-client openssh-server
  1. Ajouter l’utilisateur au fichiers sudoers

    • Ouvrir le fichier /etc/sudoers

    • Ajouter A LA FIN DU FICHIER l’utilisateur sous la forme :

      [nom_d'utilisateur] ALL=(ALL) NOPASSWD: ALL
      
      ex :
      polter ALL=(ALL) NOPASSWD: ALL
      
  2. Modifier le fichier /etc/ssh//sshd_config

    • Repérer et commenter la ligne :

      #PermitRootLogin prohibit-password
      
    • Ajouter juste après :

      PermitRootLogin yes
      

Pour pouvoir se connecter en RDP sur un poste Linux


Pour faire du XForwarding

Liens WEB:
  1. Activation coté serveur (linux distant)

    Dans le fichier /etc/ssh/sshd_config, s’assurer que les 2 paramètres suivant sont bon:

    X11Forwarding yes
    X11DisplayOffset 10
    
    N.B: Si le serveur distant n’a pas de serveur graphique, utiliser la méthode proposée

    sur le wiki ubuntu.

  2. Mise en place coté client (Windows)

    1. Installation du serveur X vidéo sur le client

      Télécharger et installer xming

  3. Activer le mode X11 forwarding dans Putty

    Connection
        \_SSH
            \_X11   --> Enable X11 forwarding
    
  4. Ouvrir une application graphique distante

    Ajouter une esperluette à la suite de la commande.

    ex:
    xterm&
    
    ou firefox&
    

VNCserver

Liens_Web:

Pour mettre une IP fixe sur une interfaces réseau

Liens Web:

Ouvrir le fichiers de configuration des interfaces :

sudo nano /etc/network/interfaces

Remplacer :

iface eth0 inet dhcp

par:

iface eth0 inet static
address 172.16.32.254
netmask 255.255.255.0
network 172.16.32.0 (optionel)
gateway 172.16.32.1 (optionel)

Redémarrer le réseau

/etc/init.d/networking restart

Pour active le WIFI

liens Web:

Ouvrir le fichiers de configuration des interfaces :

sudo nano/etc/network/interfaces

Remplacer :

iface wlan0 inet manual

par :

iface wlan0 inet dhcp

Redémarrer les interfaces réseau

ifdown -a && ifup -a

Se connecter a un réseau wifi en ligne de commande

liens Web:

Démarrer la carte wifi

sudo ifconfig wlan0 up

Rechercher les différents réseau a porter

iwlist ath0 scan

Créer un dossier partagé avec samba

Liens_Web:
  1. Installation de samba
    sudo apt-get update
    sudo apt-get install samba
    
  2. Création du mot de passe pour l’utilisateur

    Samba gère les mot de passe dans un espace de stockage différent du reste du système.

    sudo smbpasswd -a <user_name>
    
    ex:
    sudo smbpasswd -a pi
    
  3. Création du dossier à partager

    Par commodité, ce dossier est défini dans le dossier utilisateur (~) directement.

    sudo mkdir ~/share
    
  4. Attribution des droits sur le dossier pour l’utilisateur et pour le groupe de l’utilisateur
    sudo chown <user_name> /dossier/partagé
    sudo chown :<user_name> /dossier/partagé
    
    ex:
    sudo chown pi ~/share
    sudo chown :pi ~/share
    
  5. Modification du fichier “smb.conf”
    1. Création d’une copie du fichier (par sécurité)

      sudo cp /etc/samba/smb.conf ~
          # cette copie se trouve dans '/home/<user>/'
      
    2. Édition de smb.conf

      sudo vim /etc/samba/smb.conf
      
    3. Ajout, à la fin du fichier, des informations sur le dossier partagé
      [<Nom_du_dossier_partage>]
      path = /home/<user_name>/<folder_name>
      valid users = <user_name>
      read only = no
      
      # N.B : Pour autoriser un groupe à la place d'un utilisateur:
      valid users = @<group_name>
      
      ex:
      ...
      valid users = @volab
      
      /!\Attention/!\:
      • Le bloc commençant par [<folder_name>] doit être séparer du code existant par au moins une ligne vide (hors commentaire)a

      • Un espace doit entouré chaque signe “=”. ex: “ = “

  6. Redémarrage du service samba

    sudo service smbd restart
    
  7. Accès au dossier partagé

    1. Depuis Windows

      \\IP_Distante\share
      ou
      \\hostname\share
      
      ex:
      \\192.168.1.31\share
      \\pi_crachTest\share
      
Liens_Web:
https://doc.ubuntu-fr.org/tutoriel/monterpartagewindows

# exemple d’utilisation en manuel et en automatique

  1. Création du répertoire de montage

    N.B: c’est le répertoire qui va accueillir le répertoire distant.

    sudo mkdir /media/<nom_du_nouveau_repertoire>
    
    ex:
    sudo mkdir /media/volab
    
  2. Création d’un fichier « credentials »

    1. Créer le fichier dans le répertoire “root”

      sudo vim /root/.smbcreds
      
    2. Renseigner les identifiants de l’utilisateur distant

      username=<Nom_d'utilisateur>
      password=<mot_de_passe>
      domaine=>domaine>       # Facultatif
      
  1. Montage

    sudo mount -t cifs -o username=utilisateur_ubuntu,rw,iocharset=utf8,file_mode=0777,dir_mode=0777 //<adressIP_serveurFichier>/<repertoireSource> /media/<partage>
    

N.B: il est conseiller de tester le montage à la main avant de monter le lecteur automatiquement au démarrage.

  1. Démontage

    umount /media/<partage>
    
  1. Copier le fichier “fstab”

    sudo cp /etc/fstab /etc/fstab_sauvegarde
    
  2. Editer “fstab”

    Ajouter le nouveau partage à la fin du fichier

    //<adresse_distante>/<partage>   /media/<partage> cifs credentials=/root/.smbcreds,iocharset=utf8   0   0
    
  3. Redémarrage et vérification

    • Redémarrer le serveur et vérifier que les données du partage distant sont bien présente.

    • Faire un test de lecture / écriture pour s’assurer que les permissions son correctement accordés.


Télécharger un fichier en ligne de commande (wget)

Liens_Web:
ex :
wget https://github.com/docker-library/mongo/blob/2e3e1bdbb31389c8bc8d43f5a3cc439134b7956b/3.6/Dockerfile