Differences

This shows you the differences between two versions of the page.

documentation:afslinuxinstall [2010/01/27 09:42]
François-Régis Robert
documentation:afslinuxinstall [2010/01/27 09:43] (current)
François-Régis Robert
Line 1: Line 1:
 +====== Setup AFS for Linux ======
 +Just a quick copy'n paste of an email sent to the IMARA mailing list for now...
 +===== Filesystem access =====
 +<file>
 +Installer les logiciels et modules OpenAFS, sous Debian, il s'agit
 +principalement du paquet openafs-client.
 +
 +Il faut rajouter dans le fichier /etc/openafs/CellServDB, les entrées
 +concernant les serveurs AFS de l'INRIA:
 +
 +>inria.fr               #Institut National de Recherche en Informatique et Automatique
 +128.93.1.5                      #oglala.inria.fr
 +128.93.18.51                    #menomini.inria.fr
 +128.93.9.47                     #ute.inria.fr
 +195.83.212.13                   #sayula.futurs.inria.fr
 +
 +Spécifier dans le fichier /etc/openafs/ThisCell le domaine:
 +
 +inria.fr
 +
 +Créer à la racine du filesystem un répertoire /afs dans lequel sera,
 +plus tard, monté le filesystem.
 +
 +Spécifier les paramètres de cache local pour le point /afs dans le
 +fichier /etc/openafs/cacheinfo:
 +
 +/afs:/etc/openafs/cachedir:30000
 +
 +Créer le répertoire /etc/openafs/cachedir avec les droits 0700.
 +
 +
 +Une fois ceci fait, il devrait _théoriquement_ être possible de lancer
 +les démons AFS (sous Debian, via la commande /etc/init.d/openafs-client
 +start) et, après un temps d'attente (normal) pouvoir accéder aux
 +fichiers dans
 +
 +/afs/inria.fr/
 +
 +Et plus précisément pour les fichiers d'IMARA,
 +
 +/afs/inria.fr/rocq/home/imara/
 +
 +
 +Afin d'obtenir les droits permettant d'accéder aux fichiers, il est
 +souvent nécessaire de demander un jeton au serveur d'authentification.
 +Ceci se fait grâce à la commande klog:
 +
 +$ klog
 +Password:
 +$
 +
 +Les jetons obtenus peuvent ensuite être listés avec la commande tokens:
 +
 +$ tokens
 +
 +Tokens held by the Cache Manager:
 +
 +User's (AFS ID 14037) tokens for afs@inria.fr [Expires Aug 31 17:35]
 +   --End of list--
 +$
 +
 +
 +Les droits sur les fichiers, comme sur une machine AFS normale, avec
 +l'outils fs:
 +
 +$ fs la .
 +Access list for . is
 +Normal rights:
 +  imara rl
 +  system:administrators rlidwka
 +  system:authuser rl
 +  system:anyuser l
 +  netwker rl
 +$
 +
 +Plus de détails sur la commande fs sont disponibles dans la manpage et sur
 +les pages de Miriad [0].
 +
 +[0] http://www-rocq.inria.fr/intranet/miriad/themes/systeme/unix/afs/afs-quick-ref-fr.html
 +
 +</file>
 +
 +The ''klog'' tool used here is ''klog.afs'' (no Kerberos). It may be necessary to use ''update-alternatives'' or some similar tool to make sure the right ''klog'' is called. The other may complain:
 +  klog: unknown RPC error (-1765328160) Can't parse principal <mehani>
 +
 +===== User logins =====
 +
 +
 +
 +
 +
 +
 +==== User existence ====
 +First, the system has to know which users exist.
 +
 +Their is no other option, in our setup, than to add these to the local password database, which we populate from the available information on the AFS share. A little script will help us, ''make_passwd.sh'', availables in [[:wiki:old:users:oliviermehani]]'s [[https://gforge.inria.fr/plugins/scmsvn/viewcvs.php/*checkout*/misc/bin/make_passwd.sh?content-type=text%2Fplain&root=mehani|GForge repository]]. Its usage is simple:
 +  ./make_passwd.sh >> /etc/passwd
 +
 +Better, it can be used -- but this is higly risky and not to be done without backups -- to update the ''passwd'' file in place:
 +  ./make_passwd.sh -i PASSWORDFILE
 +
 +This way, all users from Imara will be known by the underlying system, and their shell will be ''/bin/sh'' instead of the default ''tcsh''.
 +
 +
 +
 +
 +
 +==== PAM authentication ====
 +
 +Note: Debian users, see next section.
 +
 +We'll set up PAM so that user can login using their AFS pass and get a token.
 +
 +This is done by adding the line
 +<file>
 +auth    [default=1 success=ignore]      pam_succeed_if.so uid >= 1010 quiet
 +auth              sufficient      /usr/lib/pam_afs.krb.so.1 try_first_pass ignore_root
 +</file>
 +in each file (where it seems appropriate) in ''/etc/pam.d'' corresponding to a service you want to enable AFS login with. These are, notably:
 +  * ''login'' ;
 +  * ''sshd'' ;
 +  * ''gdm'' ;
 +  * ''xscreensaver''.
 +
 +The first line enables the second line only if the UID is larger than 1010 (as we have a few local users). Users with IDs smaller than 1000 are usually local to the system and their password reside in the local ''passwd'' base. This prevents an error trying to identify them against the AFS base (and having to enter the password twice).
 +
 +It may also be wise to do the same in the ''other'' file.
 +
 +
 +
 +===== Debian setup =====
 +To setup AFS support under Debian, one needs to install the client binaries and build the kernel module using ''module-assistant'':
 +<code>
 +$ sudo apt-get install openafs-client libpam-openafs-session libpam-openafs-kaserver module-assistant
 +$ sudo module-assistant # download, build and install the kernel module using the UI
 +</code>
 +
 +And add the lines mentionned in the previous section to the ''/etc/pam.d/common-auth'' file. Note that the PAM module is ''pam_afs.krb.so''.
 +
 +NOTE : edit line "UsePrivilegeSeparation" and set it to "no" in /etc/ssh/sshd_config.
 +{{tag>documentation}}
 
documentation/afslinuxinstall.txt · Last modified: 2010/01/27 09:43 by François-Régis Robert
Recent changes · Show pagesource · Login