• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

pam/H09-Aug-2017-4739

COPYINGH A D09-Aug-201717.6 KiB340281

ChangeLogH A D09-Aug-201716.9 KiB879638

ChangeLog-2.xH A D09-Aug-201719.9 KiB597372

Makefile.inH A D09-Aug-20172.2 KiB8861

README-fr.mdH A D09-Aug-20179.1 KiB181111

README.mdH A D09-Aug-20178.2 KiB182112

acconfig.hH A D09-Aug-20171.8 KiB8225

auth.cH A D09-Aug-20179.4 KiB352176

auth_pam.cH A D09-Aug-20174.9 KiB155100

calife.1.inH A D09-Aug-20172.8 KiB126125

calife.auth-distH A D09-Aug-2017138 1211

calife.auth.5.inH A D09-Aug-20172.3 KiB102101

calife.cH A D09-Aug-201731.8 KiB898514

compiler.hH A D09-Aug-20174.1 KiB11323

conf.hH A D09-Aug-20175.5 KiB236171

config.guessH A D09-Aug-201741.9 KiB1,4221,230

config.h.inH A D09-Aug-20174.2 KiB173115

config.subH A D09-Aug-201735.1 KiB1,8061,668

configureH A D09-Aug-2017177.5 KiB6,3915,315

configure.inH A D09-Aug-201711 KiB472436

db.cH A D09-Aug-20179.2 KiB342198

install-shH A D09-Aug-20174.7 KiB239152

util.cH A D09-Aug-20172.7 KiB13066

README-fr.md

1# Introduction
2
3Calife est un programme permettant à certains utilisateurs, dont les noms sont présents dans une liste, de passer sous un quelconque ID utilisateur (par exemple, mais pas uniquement, `root`) en rentrant leur propre mot de passe.
4
5Ce système permet de ne pas divulguer le mot de passe de `root` (par exemple pour le mode *single-user* de certains Unix) tout en conférant les droits de `root` à certains utilisateurs bien identifiés.
6
7L'introduction obligatoire du mot de passe lors du changement d'ID permet de ne pas compromettre l'accès `root` si l'utilisateur reste logé sur une machine puis s'en éloigne.
8
9La barrière de sécurité finale réside dans le mot de passe de ces utilisateurs, qui, nous l'espérons, connaissent les règles élémentaires.
10
11Des listes d'utilisateurs vers lesquels quelqu'un a le droit d'utiliser `calife` permettent d'affiner la gestion des personnes autorisées.
12
13# Distribution
14
15Calife est distribué sous la GNU General Public Licence qui vous permet de diffuser, utiliser et modifier ce programme tant que vous en diffusez les sources et me communiquez toutes les modifications effectuées. Cela me permet de l'améliorer et de le maintenir dans de bonnes conditions.
16
17Vous trouverez la licence GNU dans le fichier `COPYING` fourni avec l'archive.
18
19Le fichier `compiler.h` est sous une forme modifée de la licence BSD à 3 clauses & (c) Bertrand Petit.
20
21Ceci dit, si vous l'utilisez et le trouvez utile, je ne refuserais pas une Guinness :-)
22
23Le site primaire pour Calife est [ici](http://www.keltia.net/programs/calife/) et en [FTP](ftp://mutt.frmug.org/pub/calife/). Un miroir existe [ici](ftp://postfix.EU.org/pub/calife/).
24
25Calife utilise maintenant [Bitbucket](http://bitbucket.org/) comme frontal de gestion des tickets, flux RSS, release, forums, etc. Le site est accessible [ici](https://bitbucket.org/keltia/calife/). Il y a aussi un [dépôt Git](https://github.com/keltia/calife/)
26
27# Installation
28
29## Autoconf
30
31Calife utilise dorénavant le programme GNU `autoconf` pour la configuration. GNU cc n'est pas obligatoire pour compiler Calife mais ne sont testés régulièrement que les compilateurs suivants :
32
33- GNU cc 4.x et suivantes
34- Clang 3.x et suivantes
35- SUN cc sur plateforme Sparc
36
37Tapez la commande :
38
39    ./configure
40
41Le script va analyser votre système et créer les fichiers suivants :
42
43- `Makefile`
44- `config.h`
45- `calife.1`
46- `calife.auth.5`
47
48Le binaire et les pages de  manuels seront par défaut installés, lors du `make install`, sous `/usr/local`.
49
50Utiliser l'argument de configure `--prefix=/le/prefixe` pour indiquer le nom du répertoire adéquat.
51
52Quelques options spéciales sont disponibles  :
53
54    --with-etcdir=PATH        Directory containing calife.auth (default /etc)
55    --disable-shadow=yes|no   Disable getspnam(3) usage for some Linuxes
56    --enable-debug=yes|no     Set the debugging mode (default is no)
57    --enable-shellhack=yes|no (default is no)
58    --enable-dynamic          Build the program dynamically (default static)
59    --enable-global-rc        Add /etc/calife.out support.
60
61`--with-etcdir=CHEMIN`
62
63Permet de  placer les fichiers  calife.auth et  calife.out ailleurs que dans /etc.
64
65`--enable-debug`
66
67Exige l'affichage des messages de "debugging". Inutile en usage normal.
68
69`--enable-shellhack`
70
71Si vous avez le message "Permission denied" après avoir tapé votre mot de passe, essayez de relancer  `configure` avec cette option.
72
73`--enable-dynamic`
74
75Si vous désirez avoir le binaire lié dynamiquement et non pas statiquement. L'utilisation du binaire statique permet non seulement d'améliorer le partage des pages entre de multiples instances de calife mais aussi de ne pas être dépendant de la version de la bibliothèque standard.
76
77Parmi les systèmes devant utiliser `--enable-dynamic`, on compte Solaris 2.x, HP-UX, Linux et MacOS X/Darwin.
78
79## Cas de Linux :
80
81Ce système utilise plusieurs systèmes de *shadow passwords*. Il est possible que `configure` ne parvienne pas à déterminer le type d'outil de *shadow passwords* employé. Je n'ai pas de Linux, il m'est donc difficile de tester... Toute suggestion et modification de `configure.in` appréciées.
82
83L'option suivante permet à calife de ne pas utiliser `getspnam(3)` dans le cas où la fonction existe mais les shadows passwords ne sont pas utilisés.
84
85`--disable-shadow`
86
87Le défaut est d'utiliser getspnam(3) si elle est définie.
88
89Si vous devez créer une nouvelle section dans `conf.h` ou une nouvelle entrée dans `Makefile.in` ou `configure.in` , merci de me communiquer les modifications pour incorporation dans les versions suivantes.
90
91Le programme s'installe sous forme d'un binaire nommé `calife` pour des raisons de facilité mais le nom historique est `...`.
92
93Il installe aussi un fichier de configuration d'exemple, appelé `calife.auth-dist` et par défaut placé dans `/etc`.
94
95Consulter les pages de manuel fournies (`calife` et `calife.auth`) pour en apprendre davantage.
96
97Le programme essaie de lancer le fichier `calife.out` (par défaut dans `/usr/local/etc` sur FreeBSD et `/etc` ailleurs) à la sortie de `calife`. Ceci permet par exemple d'envoyer un mail à chaque utilisation de calife. Cette possibilité est optionnelle et dépend de l'option `--enable-global-rc`.
98
99## Compatibilité
100
101Calife a été testé et développé sur les systèmes UNIX suivants (les versions testées peuvent être anciennes et devraient être retestées mais je n'ai plus accès à pas mal de ces machines...) :
102
103- FreeBSD 1 - 12.x   (mach. de développement de l'auteur)
104- MacOS X 10.2 - 10.12.
105- Linux 0.99+ et 1.* (1.2.* et 1.3.*), 2.*
106- Solaris 2.x (et la plupart des SVR4)
107- HP-UX 8.*, 9.*, 10.* et 11.*
108
109Bien que Calife n'ait pas été testé par l'auteur sur NetBSD et OpenBSD, il est fort probable du fait de la base commune de code, il n'y ait que peu de souci à utiliser Calife sur ces systèmes, à part sans doute quelques différences dans le sous-système PAM.
110
111NOTE: la version 3.0 sera une version orienté PAM de manière à simplifier le code, sa maintenance et la compatibilité avec les UNIX le supportant, le code non PAM restant a priori utilisable.
112
113Systèmes pour lesquels la compatibilité n'est pas/plus testée directement par l'auteur, ceux-ci étant donc non supportés.
114
115- SunOS 4.1.*
116- SunOS 3.2
117- NeXTStep 3
118- SCO 3.2
119- HP-UX 8.* et 9.*
120- SVR4 NeWSOS 5.02
121- Encore Gould NP1
122- AIX 3.x & 4.x
123- IRIX 5.x (probablement 6.x aussi)
124- GNU Hurd (nouveau)
125
126Pour calife 3.0/PAM, voir les exemple de fichier de configuration de PAM dans le répertoire `pam/` de l'archive. Placer ce fichier dans `/etc/pam.d` (ou l'endroit demandé par votre implémentation de PAM) sous le nom `calife`.
127
128Il existe à l'heure actuelle deux fichiers :
129
130- `macosx`    pour les systèmes MacOS 10.3/Panther à 10.5/Leopard ;
131- `macosx10`  pour Mac OS X Snow Leopard 10.6 ;
132- `freebsd5`  pour les systèmes FreeBSD 5.x à 8.x
133- `freebsd9`  pour les systèmes FreeBSD 9.x et supérieurs
134- `solaris`   pour Solaris 8, 9 et 10 (à insérer dans pam.conf)
135- `linux`
136
137Pour utiliser LDAP/NIS et autres systèmes d'authentification, il faudra modifier le fichier PAM correspondant.
138
139La fonctionnalité syslog(3) est maintenant obligatoire pour compiler calife. Ca simplifie le code manière significative.
140
141Des packages FreeBSD et Debian existent dorénavant grâce à Thomas Quinot. Alain Thivillon a généré des packages Red-hat (RPM) pour 2.8.4b.
142
143## Pages de manuel
144
145Les pages de manuel sont très succinctes et utilisent le système de macros mis au point à Berkeley appelé `mandoc` donc si vous n'avez pas ces macros, le résultat n'est pas très lisible. Je conseille vivement d'utiliser ce système qui est plus complet que le `man` habituel.
146
147Si vous disposez de GNU groff, alors la commande pour les pages de manuel est `nroff -mandoc` ou `groff -mandoc`.
148
149# Historique
150
151Ce programme est né en 1991 d'une idée commune à François Berjon et moi, qui utilisions un système très simple, appelé ``...'', capable de lancer un shell root après vérification de l'uid du requérant, sans demander de mot de passe.
152
153Il a évolué lors de mon travail à Antenne 2 et surtout lors de mon stage à l'Université de Marne-la-Vallée, où il a gagné la majorité de ses possibilités actuelles.
154
155Il est utilisé quotidiennement par plusieurs sites et donne des résultats satisfaisants.
156
157Tout commentaire, critique [constructive] et patches bienvenus à l'une des adresses suivantes :
158
159[adresse privée maison](mailto:roberto@keltia.net)<br/>
160[Main site](http://bitbucket.org/keltia/calife/)
161
162# Remerciements
163
164René Cougnenc<br/>
165François Berjon         <fcb@gwynedd.frmug.org><br/>
166Laurent Chemla          <laurent@brainstorm.fr><br/>
167Pierre Beyssac          <pb@fasterix.frmug.org><br/>
168Nathanaël Makarévitch   <nat@nataa.frmug.org><br/>
169Thomas Quinot           <thomas@cuivre.fr.eu.org><br/>
170Christian Perrier       <bubulle@kheops.frmug.org><br/>
171Philippe Regnault       <regnauld@starbsd.org><br/>
172Thierry Besancon        <Thierry.Besancon@csi.uvsq.fr><br/>
173Laurent Wacrenier       <lwa@teaser.fr><br/>
174Erwan David             <erwan@rail.eu.org><br/>
175Bertrand Petit          <elrond@phoe.frmug.org><br/>
176Denis Ducamp            <Denis.Ducamp@hsc.fr><br/>
177
178et à tous ceux qui ont participé pour la mise au point et les tests.
179
180# $Id$
181

README.md

1
2# Introduction
3
4Calife is a small utility which enable some selected users (present in a configuration file) to become another user, traditionally but not limited to "root" by entering their own password.
5
6The primary goal is to avoid sharing a common password (à la su(1)) while enabling these users to use the power of the superuser.
7
8Entering a password is mandatory as to avoid the security risk associated with leaving an unattended terminal (like sudo(1) has because it uses a timeout-based time window).
9
10It pushes the security boundary down to the users' passwords but we assumes they have been trained for the various administrative tasks they are allowed to achieve and the security risks associated with this mechanism.
11
12Going through the "root" superuser priviledges can be avoided by using the "list" feature as selected users will be able to become another one directly.
13
14Finally, the "group" feature allows users to be put in a specific group in order to avoid listing all of them in the configuration file.
15
16# Distribution
17
18For historical reasons, Calife is under the GNU General Public License which lists right to distribute, copy, modify and use. Modifications to Calife should be send back to me for integration. This way, every modification can be traced back to needs and consistency is maintained.
19
20See the `COPYING` file in the distribution.
21
22The file `compiler.h` is under a modified 3-clause BSD license & (c) Bertrand Petit.
23
24There is no other conditions but if you use it, please tell me about it and I would never refuse a Guinness if we meet one day :-)
25
26Primary web/distribution site for Calife is [here](https://www.keltia.net/programs/calife/).
27
28FTP access is also provided by the following sites:
29
30[main FTP](ftp://mutt.frmug.org/pub/calife/)
31[mirror](ftp://postfix.EU.org/pub/calife/)
32
33Calife is also available both as [Mercurial](http://selenic.com/mercurial/) and [Git](http://git-scm.org/) repositories to make following the development an easy task.
34
35[Bitbucket repository](https://bitbucket.org/keltia/calife/)
36[Github repository](https://github.com/keltia/calife/)
37
38# Installation
39
40## Autoconf
41
42Calife uses the well-known GNU `autoconf` system for configuration. GNU cc is not mandatory for compiling but Calife has only been tested with the following compilers:
43
44- GNU cc 4.x and later
45- Clang 3.x and later
46- SUN cc on Sparc systems
47
48Use the following command to analyse your system and tailor the build process.
49
50    ./configure
51
52Several files will be created
53
54- `Makefile`
55- `config.h`
56- `calife.1`
57- `calife.auth.5`
58
59The main calife binary and the manpages will be installed by default by using `make install`. The default prefix is the usual `/usr/local`.  Use `--prefix` to change the base location.
60
61You can also specify some special options to configure in order to get specific behaviours.
62
63    --with-etcdir=PATH        Directory containing calife.auth (default /etc)
64    --disable-shadow=yes|no   Disable getspnam(3) usage for some Linuxes
65    --enable-debug=yes|no     Set the debugging mode (default is no)
66    --enable-shellhack=yes|no (default is no)
67    --enable-dynamic          Build the program dynamically (default static)
68    --enable-global-rc        Add /etc/calife.out support.
69
70`--with-etcdir=DIR`
71
72Specify the directory where calife will look for `calife.auth` and `calife.out`. Default is `/etc`.
73
74`--enable-debug`
75
76Enable more debug messages.
77
78`--enable-shellhack`
79
80Some shells do not like being called by a setuid program.  If you get a "Permission denied" message, try this option.
81
82`--enable-dynamic`
83
84On most systems, calife is statically built to avoid dependencies.  If you plan to use PAM, you should use this option.  On several  systems, this option is the default (Solaris 2.x, HP-UX, Linux and MacOS X/Darwin).
85
86`--enable-global-rc`
87
88Add `/etc/calife.out` support.  This script will be run upon exit.  It could be used to perform certain tasks like sending a mail, checking changes and so forth.
89
90## Linux special case:
91
92Over the years, Linux has been using several different password management schemes. It is possible that configure will not be able to find out which variant is used on your system. In that case, patches are very welcome.
93
94The following option forces calife not to use the `getspnam(3)` function even though the function itself is present in a library.
95
96`--disable-shadow`
97
98Disable `getspnam(3)` usage.
99
100If you need to make any modification to the code or configure in order to make calife working, please contact me by email or file a issue on my website with any information needed. Patches are always welcomed.
101
102The installed binary will be named `calife` by default although historically it was called `...`. A sample configuration file named `calife.auth-dist` will be copied by default in `/etc`.
103
104Please consult the supplied manpages for more information.
105
106## Compatibility
107
108Calife has been developped and tested on the following UNIX systems (actual versions may differ but I can not guarantee full support all time as I may not have access to all of them).
109
110- FreeBSD 1 - 12.x   (main development platform)
111- MacOS X 10.2-10.12. (main development platform)
112- Linux 0.99+  1.* (1.2.* et 1.3.*), 2.*
113- Solaris 2.x (incl. most SVR4 systems)
114- HP-UX 8.*, 9.*, 10.* et 11.*
115
116Although I never tested calife on NetBSD and OpenBSD, I do not expect them to be different enough to matter except maybe for PAM matters. Patches are more than welcome. I have not checked whether calife has been put in their respective ports system. Again I would welcome any patches or news about it.
117
118NOTE that version 3 is very much PAM oriented although it should work without it.
119
120The following systems are not officially supported any more but may work (they used to)
121
122- SunOS 4.1.*
123- SunOS 3.2
124- NeXTStep 3
125- SCO 3.2
126- HP-UX 8.* et 9.*
127- SVR4 NeWSOS 5.02
128- Encore Gould NP1
129- AIX 3.x & 4.x
130- IRIX 5.x (probably 6.x too)
131- GNU Hurd
132
133In the pam/ subdirectory, you can find some sample files for PAM configuration.  Choose the one suited to your system and pace it either inside `pam.conf` (Solaris up to 9) or within the `pam.d` directory under the `calife` name.
134
135- `macosx`    For MacOS X 10.3/Panther and up to 10.5/Leopard
136- `macosx10`  For MacOS X 10.6/Snow Leopard
137- `freebsd5`  For FreeBSD 5.x up to 8.x.
138- `freebsd9`  For FreeBSD 9.x and up.
139- `solaris`   For Solaris 8, 9 et 10 (to be cut/pasted in pam.conf)
140- `linux`
141
142If you want to use LDAP/NIS or any other authentication system based on PAM, you will need to add to or modify the host PAM configuration. Any input on these matter would be appreciated.
143
144The `syslog(3)` functions family is mandatory.
145
146FreeBSD and Debian packages are available thanks to Christian Perrier and Thomas Quinot. Alain Thivillon also did some RPMs for previous versions.  Fedora/Red-Hat/SUSE help is welcome.
147
148## Manpages
149
150Manpages use the mandoc BSD macro package which is now more or less the default on many systems.
151
152# History
153
154Calife was created in 1991 from a common idea between François Berjon and I when we were system administrators. At that time, we wrote a simple wrapper that was checking uid and running a root shell, without asking for a password.
155
156It evolved later when I was working at Antenne 2 (French TV channel) and during my term as an intern in the University of Marne-la-Vallée, where it gained most of its features. NIS support was added later for Laurent Chemla and Brainstorm.
157
158If you want to send any comment, critics or patches, please contact me with the following addres or connect to the following website:
159
160[adresse privée maison](mailto:roberto@keltia.net)<br/>
161[Main site](http://www.keltia.net/programs/calife/)
162
163# THANKS
164
165René Cougnenc<br/>
166François Berjon         <fcb@gwynedd.frmug.org><br/>
167Laurent Chemla          <laurent@brainstorm.fr><br/>
168Pierre Beyssac          <pb@fasterix.frmug.org><br/>
169Nathanaël Makarévitch   <nat@nataa.frmug.org><br/>
170Thomas Quinot           <thomas@cuivre.fr.eu.org><br/>
171Christian Perrier       <bubulle@kheops.frmug.org><br/>
172Philippe Regnault       <regnauld@starbsd.org><br/>
173Thierry Besancon        <Thierry.Besancon@csi.uvsq.fr><br/>
174Laurent Wacrenier       <lwa@teaser.fr><br/>
175Erwan David             <erwan@rail.eu.org><br/>
176Bertrand Petit          <elrond@phoe.frmug.org><br/>
177Denis Ducamp            <Denis.Ducamp@hsc.fr><br/>
178
179and all the unnamed ones that have participated to testing.
180
181# $Id$
182