Outils pour utilisateurs

Outils du site


logiciel:linux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
logiciel:linux [2011-01-12 17:19] – version 8 dervallogiciel:linux [2011-05-16 20:08] – [Mercurial] lokbani
Ligne 249: Ligne 249:
   - enfin, pour lancer l'interpréteur SQL, taper la commande : <code>sqlplus</code> et taper son mot de passe Oracle.   - enfin, pour lancer l'interpréteur SQL, taper la commande : <code>sqlplus</code> et taper son mot de passe Oracle.
   - La commande <code>oradoc</code> démarre Firefox pour consulter la documentation du logiciel.   - La commande <code>oradoc</code> démarre Firefox pour consulter la documentation du logiciel.
 +
 +===== Systèmes de gestion de versions =====
 +
 +==== Subversion ====
 +
 +Le logiciel [[http://subversion.apache.org/|Subversion]] est le remplaçant de CVS. Sa gestion est centralisée.
 +
 +
 +=== Préparation ===
 +
 +== Clé ssh pour l'administration ==
 +
 +Faire parvenir votre clé ssh publique pour vous donner l'accès aux fichiers de gestions des dépôts de votre laboratoire. Si vous n'en avez pas déjà une, dans un terminal, utliser la commande
 +
 +<code>ssh-keygen -b 1024 -t dsa</code>
 +
 +et faite retour de chariot aussi souvent que nécessaire pour accepter toute les réponses par défaut. Ensuite, envoyez le fichier .ssh/id_dsa.pub au DIRO.
 +
 +== Récupération du répertoire des fichiers de configurations ==
 +
 +Dans un terminal, utilisez la commande
 +
 +<code>svn co svn+ssh://svnadmin@subversion/configs</code>
 +
 +Pour importer une copie de travail du répertoire des fichiers de gestion. Ce répertoire contient 3 fichiers:
 +
 +  * dav_svn.authz : contient les règles d'accès
 +  * dav_svn.passwd : contient les paires usager:motdepasse
 +  * repolist : contient les noms des dépôts, un par ligne, et rien d'autre 
 +
 +=== Gestion ===
 +
 +== Ajout d'un utilisateur ==
 +
 +Demander à l'utilisateur de créer une paire nomusager:motdepasse avec la commande
 +
 +<code>htpasswd -n -d nomusager</code>
 +
 +et de vous en envoyer le résultat, par exemple
 +
 +<code>comptetest:DxXlx6xXa83w6</code>
 +
 +Ajouter au fichier dav_svn.passwd et matérialiser ce changement en faisant un commit, i.e.
 +
 +<code>svn commit -m "Ajout usager ..."</code>
 +
 +== Création d'un dépôt ==
 +
 +Éditer le fichier repolist et y ajouter, sur une ligne, le nom désiré du dépôt. Ensuite, faire un commit pour matérialiser la création
 +
 +<code>svn commit -m "Ajout du depot ..."</code>
 +
 +Attention: Ce fichier ne doit pas contenir de commentaire ou de ligne blanche. Uniquement une liste des nom des dépôts, un par ligne.
 +
 +== Gestion des règles d'accès aux dépôts ==
 +
 +Dans le fichier dav_svn.authz, créer ou modifer les groupes dans la rubrique [groups], i.e.
 +
 +<code>
 +[groups]
 +  nomdegroupe1 = usager1,usager2,usager3
 +  nomdegroupe2 = usager2,usager4
 +</code>
 +
 +Ensuite, ajouter ou modifier une rubrique [nomdedepot:/], par exemple:
 +
 +<code>
 +[nomdedepot:/]
 +  @nomdegroupe2 = rw
 +  @nomdegroupe1 = r
 +  * = 
 +</code>
 +
 +Note: pour donner uniquement l'accès en lecture à tous les usagers du dav_svn.passwd, utiliser la règle
 +
 +<code>
 +[nomdedepot:/]
 +  * = r
 +</code>
 +
 +Ensuite, matéraliser les règles par un commit
 +
 +<code>svn commit -m "Modification regles acces ..."</code>
 +
 +=== Utilisation ===
 +
 +== Clonage d'un dépôt ==
 +
 +À partir d'un terminal, dans le répertoire où on veut mettre la copie de travail du dépôt
 +
 +<code>svn checkout https://subversion.iro.umontreal.ca/nomdulab/nomdudepot</code>
 +
 +
 +==== Mercurial ====
 +
 +Le logiciel [[http://mercurial.selenic.com/|Mercurial (hg)]] utilise une gestion décentralisée.
 +
 +Dans la description qui suit, la variable **$lab** doit être substitué par le nom du laboratoire et la variable **$hgadm** par le nom de l'usager administrateur créé par le DIRO au moment de la création de la zone de dépôts pour le laboratoire (habituellement hg suivi du nom du lab). 
 +
 +=== Préparation ===
 +
 +== Clé ssh pour l'administration ==
 +
 +Faire parvenir votre clé ssh publique pour vous donner l'accès aux fichiers de gestions des dépôts de votre laboratoire. Si vous n'en avez pas déjà une, dans un terminal, utliser la commande 
 +
 +<code>ssh-keygen -b 1024 -t dsa</code>
 +
 +et faite retour de chariot aussi souvent que nécessaire pour accepter toute les réponses par défaut. Ensuite, envoyez le fichier .ssh/id_dsa.pub au DIRO. 
 +
 +== Récupération du répertoire des fichiers de configurations ==
 +
 +Dans un terminal, utilisez la commande 
 +
 +<code>hg clone $hgadm@version.iro.umontreal.ca:hgadmin</code>
 +
 +Pour importer une copie de travail du dépôt des fichiers de gestion hgadmin. Le répertoire a cette structure: 
 +
 +  * access.conf: contient les règles d'accès.
 +  * keys/: répertoire contenant les clés ssh publiques des utilisateurs, organisées en sous-répertoires tenant lieu de groupes. 
 +
 +=== Gestion ===
 +
 +== Ajouter un utilisateur ==
 +
 +Demander à l'usager de vous envoyer [[:logiciel:linux:Mercurial#Préparation|une clé publique ssh]]. Ajouter le fichier de la clé dans un sous-répertoire du répertoire keys sous le nom $usager. Dire à hg qu'il y a un nouveau fichier, commettre les changements et les pousser sur le serveur. 
 +
 +<code>hg add
 +hg commit -m "ajout usager $usager"
 +hg push</code>
 +
 += Création de groupes =
 +
 +Utiliser la commande mkdir pour créer un sous-répertoire keys/$groupe et y mettre les clés publiques ssh de ceux qui doivent en faire partie. On peut même créer un arborescence plus profonde (i.e. groupe, sous-groupe, sous-sous-groupe, etc.), si cela est nécessaire. 
 +
 += Groupes prédéfinis =
 +
 +Deux sous-répertoires de keys/ ont des accès prédéfinis sur tous les dépôts (avec une exception pour hgadmin). Il se peut que ces sous-répertoires n'existent pas encore lors du premier clonage de hgadmin, il suffit alors de les créer avec un mkdir si on veut les utiliser. 
 +
 +  * keys/root/: tous les accès possibles sur tous les dépôts 
 +  * keys/users/: accès en lecture et écriture sur tous les dépôts excepté hgadmin 
 +
 +== Le fichier access.conf ==
 +
 +Une description des différentes options du fichier access.conf se trouve [[http://dev.lshift.net/paul/mercurial-server/docbook.html#id3886283|ici]].
 +
 +Attention: Lorsque le fichier access.conf est modifié, il doit être commit et repoussé sur le serveur. 
 +
 +<code>hg commit -m "Modifications configurations..."
 +hg push</code>
 +
 += Gestion des règles d'accès =
 +
 +Le fichier access.conf contient les règles qui définissent les accès pour les différents dépôts. Chaque règle a la forme 
 +
 +<code>accès repo=glob user=glob</code>
 +
 +où 
 +
 +  * accès est un des types suivants: 
 +    * init: donne les droits de lire, écrire et créer de nouveaux dépôts 
 +    * write: donne les droits de lire et écrire 
 +    * read: donne les droits de lire 
 +    * deny: refuse tous droits 
 +  * repo=glob: chemin relatif menant à un ou plusieurs dépôts 
 +  * user=glob: chemin (à partir de keys) menant à une ou plusieurs clés 
 +
 +Les expressions glob pour les chemins utilisent * pour représenter un ou plusieurs caractères excluant le /, et %%**%% pour représenter un ou plusieurs caractères incluant le /. Donc, par exemple, repo=labs/* attrape les dépôts labs/aaaa et labs/bbbb mais pas labs/cccc/dddd, alors que repo=labs/%%**%% les attrape tous. 
 +
 +Par exemple, les trois règles pour les groupes prédéfinis sont 
 +
 +<code>init user=root/**
 +deny repo=hgadmin
 +write user=users/**</code>
 +
 +Comme il n'y a aucune condition repo=... dans les règles 1 et 3, elles s'appliquent à tous les dépôts, et de même l'absence de condition user=... dans la 2 fait qu'elle s'applique à tous les utilisateurs. 
 +
 +== Création de dépôts ==
 +
 +Si un utilisateur est dans le groupe root ou s'il possède le droit init sur un répertoire de dépôt, alors il peut pousser un nouveau dépôt (vide ou non). Si le dépôt n'existe pas encore 
 +
 +<code>hg init $nom_repo</code>
 +
 +Puis le pousser (à la racine des dépôts, par exemple) 
 +
 +<code>hg clone $nom_repo $hgadm@version.iro.umontreal.ca/$nom_repo</code>
 +
 +=== Utilisation ===
 +
 +== Clonage d'un dépôt ==
 +
 +<code>hg clone $hgadm@version.iro.umontreal.ca:$nom_repo</code>
 +
 +
 +==== Git ====
 +
 +Le logiciel [[http://git-scm.com/|Git]] utilise une gestion décentralisée.
 +
 +Au cours de ce document, **$lab** doit être substitué par le nom du laboratoire et **$gitadmin** par le nom de l'usager administrateur créé par le DIRO au moment de la création de la zone de dépôts pour le laboratoire (habituellement git suivi du nom du lab). 
 +
 +=== Préparation ===
 +
 +== Clé ssh pour l'administration ==
 +
 +Faire parvenir votre clé ssh publique pour vous donner l'accès aux fichiers de gestions des dépôts de votre laboratoire. Si vous n'en avez pas déjà une, dans un terminal, utliser la commande 
 +
 +<code>ssh-keygen -b 1024 -t dsa</code>
 +
 +et faite retour de chariot aussi souvent que nécessaire pour accepter toute les réponses par défaut. Ensuite, envoyez le fichier .ssh/id_dsa.pub au DIRO. 
 +
 +== Récupération du répertoire des fichiers de configurations ==
 +
 +Dans un terminal, utilisez la commande 
 +
 +<code>git clone $gitadmin@version.iro.umontreal.ca:gitolite-admin.git</code>
 +
 +pour importer une copie de travail du répertoire des fichiers de gestion. Le répertoire a cette structure: 
 +
 +
 +   * conf/gitolite.conf: contient les groupes d'utilisateurs et les règles d'accès. 
 +   * keydir/: répertoire contenant les clés ssh publiques des utilisateurs. 
 +
 +
 +
 +=== Gestion ===
 +
 +== Ajouter un utilisateur ==
 +
 +Demander à l'usager de vous envoyer une clé publique ssh (voir plus haut pour la création). Ajouter le fichier de la clé dans le répertoire keydir sous le nom $usager.pub. Dire à git qu'il y a un nouveau fichier, commettre les changements et les pousser sur le serveur. 
 +
 +<code>
 +git add keydir
 +git commit -m "ajout usager $usager"
 +git push origin master
 +</code>
 +
 +== Le fichier conf/gitolite.conf ==
 +
 +La description complète du fichier conf/gitolite.conf se trouve [[http://sitaramc.github.com/gitolite/doc/gitolite.conf.html|ici]].
 +
 +**Attention:** Lorsque le fichier conf/gitolite.conf est modifié, il doit être commit et repoussé sur le serveur. 
 +
 +<code>
 +git add conf/gitolite.conf
 +git commit -m "Modifications configurations..."
 +git push origin master
 +</code>
 +
 +== Gestion des groupes d'utilisateurs ==
 +
 +Ajouter, dand le fichier conf/gitolite.conf, des lignes comme celle-ci: 
 +
 +<code>
 +@groupe1 = $usager1 $usager2 ...
 +</code>
 +
 +== Gestion des règles d'accès et création de dépôts ==
 +
 +Pour chaque dépôt, il doit exister dans le conf/gitolite.conf un bloc 
 +
 +<code>
 +repo $nom_repo
 +      RW+= @admin
 +      RW   = @contrib $usager5 ...
 +      R    = @all
 +</code>
 +
 +où les permissions sont R (read), W (write) et + (rewind, i.e. non-fast forward push). Le groupe @all est un groupe spécial qui inclut automatiquement tous les usagers dont la clé est valide. On peut donner des permissions spécifiques à une branches en la nommant, i.e. RW branch$ = @groupe.. 
 +
 +Lors du push, tous les dépôts nommés dans le fichier seront créés s'ils n'existent pas encore. 
 +
 +=== Utilisation ===
 +
 +== Clonage d'un dépôt ==
 +
 +<code>git clone $gitadmin@version.iro.umontreal.ca:$reponame.git</code>
 +
  
  
Ligne 290: Ligne 566:
 | **Virus Scan** | Logiciel antivirus (''man uvscan'') | | **Virus Scan** | Logiciel antivirus (''man uvscan'') |
 | **[[http://www.xfig.org/|xfig]]** | Logiciel de dessin vectoriel sous X11 | | **[[http://www.xfig.org/|xfig]]** | Logiciel de dessin vectoriel sous X11 |
 +
  
 ===== Logithèque ===== ===== Logithèque =====
  
 La [[:logiciel:logitheque|Logithèque]] de l'université offre aussi quelques rares logiciels pour Linux. La [[:logiciel:logitheque|Logithèque]] de l'université offre aussi quelques rares logiciels pour Linux.
logiciel/linux.txt · Dernière modification : 2020-01-08 21:42 de royjuli