mardi 5 septembre 2017

Installer Python 3 sous Windows


Sur le site officiel de Python ( https://www.python.org/ )
"Downloads" / "Windows" : https://www.python.org/downloads/windows/

Choisir la dernière version : "Latest Python 3 Release - Python 3.x.x"

Pour un Windows 64 bits sélectionner "Windows x86-64 executable installer"
pour lancer le téléchargement

Lancer l'exécutable qui a été téléchargé ( par exemple "python-3.6.2-amd64.exe" )

Sélectionner "Add Python 3.x to PATH"

Conserver toutes les options cochées,
notamment "pip" pour disposer de l'outil standard d'installation des packages Python.

Après l'installation :

Vérifier que les commandes "python" et "pip" sont utilisables à partir de la ligne de commande :

> path 
exemple de résultat :
PATH=C:\Program Files\Python36\Scripts\;C:\Program Files\Python36\;

> where python  
exemple de résultat : "C:\Program Files\Python36\python.exe"

> where pip
exemple de résultat : "C:\Program Files\Python36\Scripts\pip.exe"

Tester le lancement de l'interpréteur Python :
> python

Tester le lancement de 'pip' :
> pip

Tester le bon fonctionnement de 'pip'
Exemples d'installation de packages :
> pip install bottle( installation de "bottle" dans "(PYTHON-DIR)\Lib\site-packages" )

> pip install sqlalchemy
( installation de "sqlalchemy" dans "(PYTHON-DIR)\Lib\site-packages" )

Dans un répertoire quelconque, créer un fichier "hello.py" contenant :
  print("Hello, World!")  
Exécuter avec la commande
python hello.py 

Modifier le fichier "hello.py" pour tester l'import du package "bottle"
  import bottle   
  print("Hello, World!")  
Exécuter avec la commande
python hello.py 

S'il n'y a pas d'erreur tout est OK,
les commandes et les packages sont utilisables quel que soit le répertoire.






mercredi 17 mai 2017

Utilisation de git-shell

Un utilisateur qui va travailler avec un repository Git via SSH n'est pas censé disposer de toutes les possibilités offertes à utilisateur "normal".

Pour limiter les actions d'un utilisateur Git propose un "shell restreint" appelé "git-shell".
Il permet d'exécuter uniquement des actions Git sur le serveur.

Seules les commandes suivantes peuvent être exécutées via git-shell :
  - git receive-pack <argument>
  - git upload-pack <argument>
  - git upload-archive <argument>
ce qui permet au client Git de réaliser les opérations suivantes :
  - git push
  - git fetch
  - git archive


Vérification de "git-shell"

L'objectif est de remplacer le shell standard de certains utilisateurs ("bash", "sh", etc) par "git-shell".
"git-shell" doit donc être installé sur le serveur (ce qui doit être le cas, il est fourni avec git)
et faire partie de la liste des "shells" utilisables.

Vérifier que git-shell est bien installé sur le serveur :
$ which git-shell
/usr/bin/git-shell
ou
$ command -v git-shell
/usr/bin/git-shell

Lorsqu'on exécute "git-shell" il affiche le message suivant :
  fatal: Interactive git shell is not enabled.
Ce qui est normal puisque "git-shell" n'est pas un "shell interactif"

Vérifier que "git-shell" fait partie de la liste des shells utilisables
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

Pour l'ajouter :
$ su
$ vi /etc/shells
Ajouter le path complet ( par exemple "/usr/bin/git-shell" )


Mise en place de "git-shell" pour un utilisateur 

Il suffit de changer le shell de l'utilisateur courant :
$ chsh -s /usr/bin/git-shell
Password:

A partir de maintenant l'utilisateur n'a plus de "shell interactif",
toute tentative de "login" sera refusée.
Lorsqu'il tentera de se connecter via SSH le serveur affichera le message suivant :
  fatal: Interactive git shell is not enabled.
  hint: ~/git-shell-commands should exist and have read and execute acc

Un "su user-name" n'est donc plus possible non plus.