/usr/share/doc/HOWTO/fr-html/NIS-HOWTO.html is in doc-linux-fr-html 2013.01-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Le Linux NIS(YP)/NYS/NIS+ HOWTO</title>
</head>
<body>
<h1>Le Linux NIS(YP)/NYS/NIS+ HOWTO</h1>
<h2>Thorsten Kukuk</h2>
Version 0.12, 12 Juin 1998
<hr>
<em>Ce document décrit la façon de configurer Linux
en client de NIS(YP) ou de NIS+, et la façon d'installer un
serveur NIS.</em>
<hr>
<h2><a name="s1">1. Version française</a></h2>
<p>Ce document constitue la version française du NIS-HOWTO,
adaptation réalisée par Frédéric
Veynachter (frederic.veynachter@hol.fr), le 26 juillet 1998,
fortement inspirée de la traduction
précédemment réalisée par Éric
Dumas (dumas@Linux.EU.Org), le 19 Novembre 1997.</p>
<p>Vous pouvez consulter ce document sur les sites suivants :</p>
<ul>
<li><a href=
"http://www.freenix.fr/linux/HOWTO/">http://www.freenix.fr/linux/HOWTO</a></li>
<li><a href=
"ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/">ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO</a></li>
</ul>
ainsi que leurs nombreux miroirs.
<p>Pour plus de renseignements concernant la traduction en langue
française des documents du LDP (<em>Linux Documentation
Project</em>), consultez le document "Liste-des-HOWTO" que l'on
trouve aux mêmex endroits.</p>
<p>Les différents sites conseillés dans ce document
possèdent sûrement des miroirs plus proches de chez
vous, comme par exemple ftp.lip6.fr, ftp.loria.fr ... utilisez-les
!</p>
<h2><a name="s2">2. Introduction</a></h2>
<p>Les machines sous Linux sont de plus en plus souvent
installées et connectées dans des réseaux
informatiques.Pour simplifier l'administration système, la
plupart des réseaux (surtout ceux qui sont fondés sur
du matériel Sun) fonctionnent avec le <em>Network
Information Service</em>. Les machines Linux peuvent tirer de
nombreux avantages des services NIS existant, ou fournir
elles-mêmes ces services. Elles peuvent également se
comporter comme des clients NIS+, mais il s'agit encore d'une
version béta.</p>
<p>Ce document tente de répondre aux questions concernant la
mise en place et la configuration de NIS(YP) et de NIS+ sur votre
machine Linux. N'oubliez pas de lire la section concernant <a href=
"#portmapper">le Portmapper RPC</a>.</p>
<p>Le NIS-Howto est rédigé et maintenu par:</p>
<blockquote>Thorsten Kukuk,
<code>kukuk@vt.uni-paderborn.de</code></blockquote>
<p>La version initiale de ce document a été
réalisée par:</p>
<blockquote>
<pre>
<code>Andrea Dell'Amico <adellam@ZIA.ms.it>
Mitchum DSouza <Mitch.DSouza@NetComm.IE>
Erwin Embsen <erwin@nioz.nl>
Peter Eriksson <peter@ifm.liu.se>
</code>
</pre></blockquote>
<p>que nous tenons à remercier.</p>
<h2><a name="ss2.1">2.1 Nouvelles versions de ce document</a></h2>
<p>Vous pourrez toujours trouver la dernière version de ce
document sur le web via l'URL <a href=
"http://sunsite.unc.edu/mdw/HOWTO/NIS-HOWTO.html">http://sunsite.unc.edu/mdw/HOWTO/NIS-HOWTO.html</a>.</p>
<p>Les nouvelles versions de ce document seront également
présentes sur différents sites ftp et web
consacrés à Linux, y compris sur la page principale
du LDP (Linux Documentation Project).</p>
<p>Des liens vers les traductions de ce document peuvent être
trouvés à l'adresse <a href=
"http://www-vt.uni-paderborn.de/~kukuk/linux/nis-howto.html">http://www-vt.uni-paderborn.de/~kukuk/linux/nis-howto.html</a>.</p>
<h2><a name="ss2.2">2.2 Avertissement</a></h2>
<p>Même si ce document rassemble le maximum de données
selon notre connaissance, il peut contenir, et contient sans doute,
certaines erreurs. Nous vous demandons de lire attentivement tous
les fichiers README qui sont livrés avec les outils
décrits dans ce document, pour avoir plus de détails
et une information plus précise. Nous essayerons, dans la
mesure du possible, d'éviter que des erreurs se glissent ans
ce document.</p>
<h2><a name="ss2.3">2.3 Retour d'information et
corrections</a></h2>
<p>Si vous avez des questions ou des commentaires à propos
de ce document, n'hésitez pas à envoyer un courrier
électronique à <a href=
"mailto:kukuk@vt.uni-paderborn.de">kukuk@vt.uni-paderborn.de</a>.
J'accepte volontiers toutes les suggestions ou critiques. Si vous
trouvez une anomalie ou une erreur dans ce document, merci de me le
faire savoir, pour que je puisse la corriger dans la prochaine
version.</p>
<p>Merci de ne pas m'envoyer de questions concernant des
problèmes spécifiques à une distribution de
Linux. Je ne les connais pas toutes. J'essayerai néanmoins
d'intégrer toute solution qui me sera envoyée.</p>
<h2><a name="ss2.4">2.4 Remerciements</a></h2>
<p>Nous voudrions remercier toutes les personnes qui ont
contribué (directement ou indirectement) à ce
document. Par ordre alphabétique :</p>
<blockquote>
<pre>
<code>Byron A Jeff <byron@cc.gatech.edu>
Miquel van Smoorenburg <miquels@cistron.nl>
</code>
</pre></blockquote>
<p>Theo de Raadt <deraadt@theos.com> est à l'origine
du code yp-clients. Swen Thuemmler <swen@uni-paderborn.de> a
porté ce code pour Linux et il a également
porté le code yp-routines pour la libc (toujours
fondé sur le travail de Theo). Thorsten Kukuk a totalement
ré-écrit toutes les routines NIS(YP) et NIS+ pour la
GNU libc 2.x.</p>
<h2><a name="s3">3. Glossaire et informations
générales</a></h2>
<h2><a name="ss3.1">3.1 Glossaire des termes
employés</a></h2>
<p>Dans ce document, bon nombre d'acronymes sont employés.
Voici la liste des plus utilisés, avec une brève
explication.</p>
<dl>
<dt><b>DBM</b></dt>
<dd>
<p>DataBase Management (Gestion de la base de données):
bibliothèque de fonctions pour maintenir les clefs et le
contenu de la base de données.</p>
</dd>
<dt><b>DLL</b></dt>
<dd>
<p>Dynamically Linked Library (Bibliothèque liée
dynamiquement): bibliothèque de fonctions chargées
dynamiquement à l'exécution.</p>
</dd>
<dt><b>domainname</b></dt>
<dd>
<p>Nom du domaine : nom "clef" utilisé par les clients NIS
pour qu'ils puissent trouver un serveur NIS convenable qui
gère la clef du domaine. Notez que cela n'a rien à
voir avec le "domaine" DNS (nom de la machine) des machines.</p>
</dd>
<dt><b>FTP</b></dt>
<dd>
<p>File Transfer Protocol (Protocole de transfert de fichiers) :
protocole utilisé pour transférer des fichiers entre
deux ordinateurs.</p>
</dd>
<dt><b>libnsl</b></dt>
<dd>
<p>Name services library : bibliothèque d'appels
systèmes (tels que <code>getpwnam, getservbyname,
...</code>) sur les systèmes Unix SVR4. La GNU libc utilise
cette bibliothèque pour les fonctions NIS (YP) et NIS+.</p>
</dd>
<dt><b>libsocket</b></dt>
<dd>
<p>Bibliothèque de fonctions de manipulation de sockets
<code>socket, bind, listen, ...</code> sur les systèmes
SVR4.</p>
</dd>
<dt><b>NIS</b></dt>
<dd>
<p>Network Information Service (Service d'information du
réseau): service qui permet à certaines informations
d'être connues par toutes les machines disponibles sur le
réseau. Ce service est géré dans la
bibliothèque standard de la libc Linux. Il est
considéré par la suite comme étant le "NIS
traditionnel".</p>
</dd>
<dt><b>NIS+</b></dt>
<dd>
<p>Network Information Service (Plus...) : en gros, version de NIS
améliorée. NIS+ a été conçu par
Sun Microsystems Inc. pour remplacer NIS, avec un niveau de
sécurité supérieur et une meilleure gestion
pour les grosses installations.</p>
</dd>
<dt><b>NYS</b></dt>
<dd>
<p>Il s'agit du nom d'un projet de développement et de
standardisation pour NIS+, YP et Switch. Il est dirigé par
Peter Eriksson (<peter@ifm.liu.se>). Il contient entre autres
choses une réimplémentation complète du code
de NIS (c'est-à-dire YP) qui utilise les
fonctionnalités <em>Name Services Switch</em> de la
bibliothèque NYS.</p>
</dd>
<dt><b>NSS</b></dt>
<dd>
<p>Name Service Switch (littéralement, commutation des noms
de service): le fichier /etc/nsswitch.conf détermine l'ordre
de recherche d'informations en fonction des services
demandés.</p>
</dd>
<dt><b>RPC</b></dt>
<dd>
<p>Remote Procedure Call (Appel de procédure distante): les
routines RPC permettent aux programmes C d'appeler d'autres
machines à travers le réseau. Lorsque des personnes
parlent de RPC, elles parlent souvent en fait de la version Sun
RPC.</p>
</dd>
<dt><b>YP</b></dt>
<dd>
<p>Yellow Pages(tm) : marque déposée par British
Telecom. (les pages jaunes... comme les nôtres !).</p>
</dd>
<dt><b>TCP-IP</b></dt>
<dd>
<p>Transmission Control Protocol/Internet Protocol : protocole de
communication le plus fréquemment utilisé sur les
machines Unix.</p>
</dd>
</dl>
<h2><a name="ss3.2">3.2 Quelques informations
générales</a></h2>
<p>Les quatre lignes ci-dessous sont une citation du manuel
d'administration réseau de Sun(TM) System.</p>
<blockquote>
<pre>
<code> "NIS was formerly known as Sun Yellow Pages (YP) but
the name Yellow Pages(tm) is a registered trademark
in the United Kingdom of British Telecom plc and may
not be used without permission."
"NIS etait formellement connu sous le nom de
Yellow Pages (YP) (Pages Jaunes) mais le nom
Yellow Pages(tm) est une marque enregistree au
Royaume Uni par British Telecom et ne peut etre
utilisee sans autorisation."
</code>
</pre></blockquote>
<p>NIS est l'abréviation pour <em>Network Information
Service</em> (Service d'Information Réseau). Son but est de
fournir des informations, qui doivent être connues sur
l'ensemble du réseau, à toutes les machines
connectées. Les informations susceptibles d'être
distribuées par NIS sont:</p>
<ul>
<li>noms de login, mots de passe, répertoires d'ouverture
(/etc/passwd)</li>
<li>renseignements sur les groupes d'utilisateurs (/etc/group)</li>
</ul>
<p>Par exemple, si votre mot de passe et les informations s'y
rattachant sont enregistrés dans la base de données
NIS, vous pourrez vous loguer sur toutes les machines du
réseau sur lesquelles un client NIS est lancé.</p>
<p>Sun est une marque déposée de Sun Microsystems
Inc, brevetée par SunSoft, Inc.</p>
<h2><a name="s4">4. NIS ou NIS+ ?</a></h2>
<p>Le choix entre NIS et NIS+ est facile à faire : utilisez
NIS tant que vous n'avez pas besoin d'utiliser NIS+ ou si vous avez
des besoins de sécurité importants. NIS+ est bien
plus problématique à administrer (c'est plutôt
facile à manipuler du côté du client, mais en
ce qui concerne le côté serveur, c'est une horreur).
Un autre problème est que le support de NIS+ pour Linux est
encore en cours de développement : vous devrez avoir la
toute dernière version de glibc ou attendre la sortie de
glibc 2.1. Il existe un portage du NIS+ glibc pour libc5, qui
consiste à installer une libc de remplacement.</p>
<h2><a name="ss4.1">4.1 libc 4/5 avec "NIS traditionnel" ou NYS
?</a></h2>
<p>Le choix entre "NIS traditionnel" ou le code NIS dans la
bibliothèque NYS est un choix entre paresse et
maturité d'un côté, flexibilité et amour
de l'aventure de l'autre.</p>
<p>Le code "NIS traditionnel" se trouve dans la bibliothèque
C standard, existe depuis fort longtemps, et souffre parfois de son
age et de son léger manque de souplesse.</p>
<p>Le code NIS de la bibliothèque NYS vous oblige à
recompiler la bibliothèque libc pour y inclure le code NYS
(à moins que vous ne trouviez une version de libc
précompilée chez quelqu'un qui l'a déjà
fait).</p>
<p>Une autre différence est que le code "NIS traditionnel"
gère en partie les groupes de réseaux NIS
(<em>Netgroups</em>), alors que le code NYS ne le fait pas. D'un
autre côté, le code NYS vous permet d'utiliser les
mots de passe Shadow d'une manière transparente. Le code
"NIS traditionnel" ne permet pas d'utiliser les mots de passe
Shadow sur NIS.</p>
<p>Vous pouvez cependant oublier tout ça si vous utilisez la
nouvelle bibliothèque GNU C 2.x (alias libc6). Elle comporte
un vrai support de NSS (<em>Name Switch Service</em>), ce qui la
rend vraiment souple, et elle est capable de gérer les
"maps" NIS/NIS+ suivantes : aliases, ethers, group, hosts,
netgroups, networks, protocols, publickey, passwd, rpc, services et
shadow. La bibliothèque GNU C ne pose aucun problème
avec les mots de passe Shadow sur NIS.</p>
<h2><a name="s5">5. Comment ça marche ?</a></h2>
<h2><a name="ss5.1">5.1 Comment fonctionne NIS(YP) ?</a></h2>
<p>A l'intérieur d'un réseau, il doit y avoir au
moins une machine faisant office de serveur NIS. Vous pouvez avoir
plusieurs serveurs NIS, chacun gérant plusieurs "domaines"
NIS, ou bien vous pouvez avoir des serveurs NIS coopératifs.
Dans ce cas, l'un d'entre eux est dit serveur NIS
<em>maître</em>, les autres étant serveurs NIS
esclaves. Vous pouvez également mélanger les deux
possibilités.</p>
<p>Les serveurs esclaves n'ont qu'une copie de la base de
données et la reçoivent du serveur NIS maître
lorsque des changement sont effectués dans la base de
données. En fonction du nombre de machine et de la
fiabilité de votre réseau, vous pouvez décider
d'installer un ou plusieurs serveurs esclaves. Lorsqu'un serveur
NIS tombe en panne ou bien s'il est trop long pour répondre
aux requêtes, un client NIS connecté à ce
serveur va alors essayer d'en trouver un en état de
marche.</p>
<p>Les bases de données NIS sont au format DBM, un
dérivé des bases de données ASCII. Par
exemple, les fichiers <code>/etc/passwd</code> et
<code>/etc/group</code> peuvent être directement convertis
dans le format DBM en utilisant un programme de conversion
<em>ASCII-to-DBM</em> (<code>makedbm</code> est inclus dans les
programmes du serveur). Le serveur NIS maître devrait avoir
les deux types : la base ASCII et la base DBM.</p>
<p>Les serveurs esclaves seront avertis de tout changement dans les
tables NIS (grâce au programme <code>yppush</code>), et
effectueront automatiquement les changements nécessaires
pour synchroniser leurs bases de données. Les clients NIS
n'ont pas besoin d'effectuer cette opération puisqu'ils
communiquent tout le temps avec le serveur NIS pour lire les
informations rangées dans les bases de données
DBM.</p>
<p>L'auteur des clients YP pour Linux nous a informé que la
nouvelle version de <code>ypbind</code> (située dans
l'archive <code>ypbind-3.3.tar.gz</code>) permet d'indiquer le
serveur NIS à contacter dans un fichier de configuration, ce
qui évite d'effectuer un <em>broadcast</em> (ce qui n'est
pas sécurisé car n'importe qui peut installer un
serveur NIS et peut donc répondre aux
requêtes...).</p>
<h2><a name="ss5.2">5.2 Comment fonctionne NIS+ ?</a></h2>
<p>NIS+ est une nouvelle version du service d'information
réseau de Sun. La différence la plus notable entre
NIS et NIS+ est que NIS+ est capable de gérer des
données chiffrées ainsi que l'authentification
<em>via</em> les RPC sécurisés.</p>
<p>Le modèle de nommage de NIS+ est basé sur une
structure arborescente. Chaque noeud de l'arbre correspond à
un objet NIS+, à partir duquel nous avons six types :
directory, entry, group, link, table et private (répertoire,
entrée, groupe, lien, table et privé).</p>
<p>Le répertoire NIS+ qui constitue la racine de l'espace de
nommage NIS+ est appelé le répertoire racine. Il
existe deux répertoires spéciaux NIS+ : org_dir et
groups_dir. Le premier regroupe toutes les tables d'administration,
telles que passwd, hosts, et mail_aliases. Le second
répertoire contient les objets groupe NIS+ qui sont
utilisés pour contrôler les accès. L'ensemble
des répertoires org_dir, groups_dir et leurs parents sont
considérés comme étant un domaine NIS+.</p>
<h2><a name="portmapper"></a> <a name="s6">6. Le RPC
Portmapper</a></h2>
<p>Pour lancer n'importe lequel des programmes mentionnés
ci-dessous, vous aurez besoin de lancer le programme
<code>/usr/sbin/rpc.portmap</code>. Certaines distributions de
<b>Linux</b> ont déjà dans le code du script
<code>/etc/rc.d/rc.inet2</code> ce qui est nécessaire pour
lancer ce démon. Tout ce que vous avez à faire, c'est
de décommenter ce qui est nécessaire puis à
rebooter votre machine pour l'activer. Lisez la documentation de
votre distribution pour plus de détails.</p>
<p>Le RPC portmapper (portmap(8)) est un serveur qui convertit les
numéros des programmes RPC en numéros de ports pour
le protocole TCP/IP (ou UDP/IP). Il doit être lancé
dans un certain ordre pour réaliser les appels RPC (ce que
fait le programme client NIS/NIS+) vers les serveurs (comme par
exemple un serveur NIS/NIS+) sur cette machine. Lorsque le serveur
RPC est lancé, il va indiquer au démon
<code>portmap</code> quel numéro de port il scrute, et quels
sont les numéros de programmes RPC avec lesquels il est
prêt à travailler. Lorsque le client souhaite
réaliser un appel RPC à certain numéro de
programme, il contacte dans un premier temps <code>portmap</code>
sur le serveur de la machine pour déterminer le
numéro de port où il doit alors envoyer les paquets
RPC.</p>
<p>En principe, les serveurs RPC standards sont lancés par
<code>inetd</code> (manuel inetd(8)), donc <code>portmap</code>
doit être lancé avant qu'<code>inetd</code> ne le
soit.</p>
<p>Pour les RPC sécurisés, le portmapper a besoin des
services d'horloge. Assurez-vous qu'ils sont activés dans le
fichier <code>/etc/inetd.conf</code> sur toutes les machines :</p>
<blockquote>
<pre>
<code>#
# Time service is used for clock syncronization.
#
time stream tcp nowait root internal
time dgram udp wait root internal
</code>
</pre></blockquote>
<p>IMPORTANT : n'oubliez pas de relancer inetd après toute
modification de ce fichier !</p>
<h2><a name="s7">7. De quoi avez-vous besoin pour configurer NIS
?</a></h2>
<h2><a name="ss7.1">7.1 Déterminez si vous êtes un
serveur, un esclave ou un client</a></h2>
<p>Pour répondre à cette question, nous pouvons
considérer deux cas :</p>
<ol>
<li>votre machine va être insérée dans un
réseau avec des serveurs NIS déjà
existants ;</li>
<li>vous n'avez pas encore de serveur NIS dans votre
réseau.</li>
</ol>
<p>Dans le premier cas, vous n'aurez besoin que des programmes
clients (<code>ypbind, ypwhich, ypcat, yppoll, ypmatch</code>). Le
programme le plus important est <code>ypbind</code>. Ce
démon doit toujours être lancé,
c'est-à-dire qu'il doit toujours apparaître dans la
liste des processus. Comme c'est un démon, il doit
être lancé au démarrage de votre machine dans
le fichier de démarrage (<code>/etc/rc.local,
/etc/init.d/nis, /etc/rc.d/init.d/ypbind</code>). Dès que
<code>ypbind</code> fonctionne, votre système devient un
client NIS.</p>
<p>Dans le second cas, vous n'avez pas de serveur NIS, donc vous
aurez également besoin d'un programme serveur NIS
(généralement <code>ypserv</code>). La section 10 (
<em>10 Configurer un serveur NIS</em> ) décrit comment
configurer un serveur NIS sur votre machine Linux en utilisant la
version <code>ypserv</code> implémentée par Peter
Eriksson et Thorsten Kukuk. On peut remarquer qu'à partir de
la version 0.14 de cette implémentation, le concept de
maître-esclave dont nous avons parlé dans la section
5.1 est géré.</p>
<p>Il existe également un autre serveur NIS en libre
distribution, appelé <code>yps</code>, écrit par
Tobias Reber en Allemagne, et qui gére le concept de
maître-esclave mais qui a d'autres limitations et qui n'est
plus maintenu.</p>
<h2><a name="ss7.2">7.2 Les programmes</a></h2>
<p>La bibliothèque <code>/usr/lib/libc.a</code> (version
4.4.2 et supérieure) ou la bibliothèque dynamique
partagée <code>/lib/libc.so.x</code> contient tous les
appels systèmes correspondants pour compiler sans
problème les programmes clients et serveurs NIS. Pour la
glibc 2.x, vous aurez également besoin de
<code>/lib/libnsl.so.1</code>.</p>
<p>Certaines personnes ont signalé que NIS ne fonctionne
qu'avec <code>/usr/lib/libc.a</code> version 4.5.21 et
supérieure, donc, pour plus de sûreté,
évitez d'utiliser des bibliothèques plus anciennes.
Les clients NIS peuvent être récupérés
sur les sites suivants :</p>
<blockquote>
<pre>
<code> Site Repertoire Nom du fichier
ftp.kernel.org /pub/linux/utils/net/NIS yp-tools-2.0.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS ypbind-mt-1.2.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS ypbind-3.3.tar.gz
sunsite.unc.edu /pub/Linux/system/Network/admin yp-clients-2.2.tar.gz
ftp.uni-paderborn.de /linux/local/yp yp-clients-2.2.tar.gz
ftp.uni-paderborn.de /linux/local/yp ypbind-3.3.tar.gz
</code>
</pre></blockquote>
<p>Une fois que vous aurez récupéré ces
programmes, suivez les instructions qui sont livrées avec.
<code>yp-clients 2.2</code> doit être utilisé avec les
bibliothèques <code>libc4</code> et <code>libc5</code>
jusqu'à la version 5.4.20. Les <code>libc 5.4.21</code> et
<code>glibc 2.x</code> nécessitent <code>yp-tools
1.4.1</code>. La nouvelle version <code>yp-tools 2.0</code>
fonctionnera avec toutes les libc Linux. Vous ne devriez pas
utiliser les <code>libc 5.4.21 - 5.4.35</code> car elles
présentent de nombreux défauts. Utilisez la
<code>libc 5.4.36</code> ou une version supérieure, sinon,
la plupart des programmes de YP ne fonctionneront pas. <code>ypbind
3.3</code> fonctionnera également avec toutes les
bibliothèques. Vous ne devriez jamais utiliser la version
<code>ypbind</code> qui est fournie dans <code>yp-clients
2.2</code>.</p>
<h2><a name="ss7.3">7.3 Le démon ypbind</a></h2>
<p>Nous supposons que vous avez compilé correctement les
programmes et que vous êtes prêt à les
installer. L'endroit où installer le démon
<code>ypbind</code> est le répertoire
<code>/usr/sbin</code>. Certains peuvent vous dire que vous n'avez
pas besoin de <code>ypbind</code> sur un système qui utilise
NYS. C'est faux : <code>ypwhich</code> et <code>ypcat</code> en ont
besoin.</p>
<p>Vous devez réaliser cette opération en tant que
super-utilisateur (i.e. "root"), bien sûr. Les autres
binaires (<code>ypwhich, ypcat, yppoll, ypmatch</code>) doivent
être placés dans un répertoire accessible
à tous les utilisateurs, normalement c'est le
répertoire <code>/usr/bin</code> qui est utilisé.</p>
<p>Le programme ypbind a besoin d'un fichier de configuration
<code>/etc/yp.conf</code>. Vous pouvez y indiquer, en dur, le nom
du serveur NIS. Pour plus d'informations, consultez la page de
manuel de <code>ypbind(8)</code>. Vous aurez également
besoin de ce ficher pour NYS. Un court exemple :</p>
<blockquote>
<pre>
<code> ypserver voyager
ypserver ds9
</code>
</pre></blockquote>
<p>Si le système est capable de résoudre les noms de
machine sans NIS, vous pouvez utiliser le nom de la machine. Dans
le cas contraire, utilisez l'adresse IP.</p>
<p>Il est souhaitable de tester ypbind avant de l'inclure dans les
fichiers de <code>/etc/rc.d/</code>. Pour tester
<code>ypbind</code> faites ceci :</p>
<ul>
<li>Vérifiez que votre nom de domaine est défini. Si
ce n'est pas le cas, faites
<blockquote>
<pre>
<code> /bin/domainname-yp nis.domain
</code>
</pre></blockquote>
où <code>nis.domain</code> doit être une chaîne,
qui n'a normalement RIEN A VOIR avec le nom de votre machine ! La
raison est que cela rend plus difficile le travail des pirates pour
trouver les mots de passe de la base de données du serveurs
NIS. Si vous ne connaissez pas le nom du domaine de votre
réseau, contactez votre administrateur système.</li>
<li>Lancez <code>/usr/sbin/rpc.portmap</code> s'il ne tourne pas
déjà.</li>
<li>Créez le répertoire <code>/var/yp</code> s'il
n'existe pas.</li>
<li>Lancez <code>/usr/sbin/ypbind</code></li>
<li>Utilisez la commande <code>rpcinfo -p localhost</code> pour
vérifier qu'<code>ypbind</code> est capable d'enregistrer
ses services dans portmapper. La commande <code>rpcinfo</code>
devrait produire un message de ce style :
<blockquote>
<pre>
<code> program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100007 2 udp 637 ypbind
100007 2 tcp 639 ypbind
300019 1 udp 660
</code>
</pre></blockquote>
</li>
<li>Vous pouvez également lancer <code>rpcinfo -u localhost
ypbind</code>. Cette commande devrait alors produire :
<blockquote>
<pre>
<code> program 100007 version 2 ready and waiting
</code>
</pre></blockquote>
</li>
</ul>
<p>Vous devriez alors être capable d'utiliser les programmes
clients tels que <code>ypcat</code>, etc. Par exemple, <code>ypcat
passwd</code> vous donne la liste des mots de passe
(chiffrés !) de la base de données NIS.</p>
<p>IMPORTANT : si vous avez évité la procédure
de test, vérifiez que vous avez positionné le nom de
votre domaine, et créé le répertoire :</p>
<blockquote>
<pre>
<code> /var/yp
</code>
</pre></blockquote>
<p>Ce répertoire DOIT exister pour qu'<code>ypbind</code>
soit correctement lancé.</p>
<p>Pour vérifier que le nom de domaine est correctement
configurer, utilisez le programme <code>/bin/ypdomainname</code>,
fourni avec yp-tools 2.0. Il utilise la fonction
<em>yp_get_default_domain</em>, qui est plus restrictive. Elle
n'autorise pas, par exemple, le nom de domaine "(none)", qui est
celui par défaut avec Linux et qui crée de nombreux
problèmes.</p>
<p>Si le test a fonctionné, vous pouvez alors modifier les
fichiers <code>/etc/rc.d</code> sur votre système pour
qu'<code>ypbind</code> soit lancé lors de l'amorçage
de la machine et pour que votre machine se comporte comme un client
NIS. Assurez-vous que le nom de domaine soit configuré lors
de l'amorçage.</p>
<p>Normalement, tout est prêt. Relancez votre machine et
observez les messages pour voir si ypbind est lancé.</p>
<h2><a name="ss7.4">7.4 Configurer un client NIS en utilisant le
NIS traditionnel</a></h2>
<p>Pour la recherche de noms de machines, vous devez ajouter "nis"
dans la ligne "host" du fichier <code>/etc/host.conf</code>. Lisez
la page de manuel "resolv+.8" pour plus de détails.</p>
<p>Ajoutez ensuite la ligne suivante dans le fichier
<code>/etc/passwd</code> de vos machines clientes :</p>
<blockquote>
<pre>
<code>+::::::
</code>
</pre></blockquote>
<p>Vous pouvez également utiliser les caractères + et
- pour inclure/exclure ou modifier certains utilisateurs. Si vous
souhaitez exclure l'utilisateur guest, ajoutez <code>-guest</code>
à votre fichier <code>/etc/passwd</code>. Si vous souhaitez
utiliser un interpréteur de commandes différent (par
exemple ksh) pour l'utilisateur "linux", ajoutez la ligne
<code>+linux::::::/bin/ksh</code>. Les champs que vous ne souhaitez
pas modifier doivent rester vides. Vous pouvez également
utiliser les Netgroups pour gérer les utilisateurs.</p>
<p>Par exemple, pour n'utiliser que les login miquels, dth et ed,
ainsi que tous les membres du netgroup sysadmin, tout en ayant
quand même accès aux comptes des autres utilisateurs
:</p>
<blockquote>
<pre>
<code> +miquels:::::::
+ed:::::::
+dth:::::::
+@sysadmins:::::::
-ftp
+:*::::::/etc/NoShell
</code>
</pre></blockquote>
<p>Remarquez qu'avec Linux, vous pouvez également surcharger
le champ mot de passe, comme nous l'avons fait dans cet exemple.
Nous avons également supprimé le login "ftp" : cet
utilisateur n'est plus connu sur la machine et le ftp anonyme ne
fonctionnera pas.</p>
<p>Le netgroup peut être défini de la sorte :</p>
<blockquote>
<pre>
<code>sysadmins (-,software,) (-,kukuk,)
</code>
</pre></blockquote>
<p>IMPORTANT : la fonctionnalité de netgroup n'est
implémentée qu'à partir de la libc version
4.5.26. Mais si vous possédez une libc plus ancienne que la
4.5.26, tout utilisateur dans la base de donnée des mots de
passe peut accéder à la machine linux si vous lancez
ypbind.</p>
<h2><a name="ss7.5">7.5 Configurer un client NIS en utilisant
NYS</a></h2>
<p>Il vous suffit d'avoir le fichier de configuration NIS
(<code>/etc/yp.conf</code>) qui pointe sur le (ou les) serveur(s)
adéquat(s), ainsi qu'un fichier
<code>/etc/nsswitch.conf</code> correctement configuré.</p>
<p>Vous devriez également installer ypbind. Il n'est pas
nécessaire pour la libc, mais les outils NIS(YP) en ont
besoin.</p>
<p>Si vous souhaitez utiliser les fonctionnalités
d'inclusion/exclusion d'utilisateurs (+/-guest/+@admins), vous
devez utiliser "passwd: compat" et "group: compat". Notez qu'il
n'existe pas de "shadow: compat" ! Vous devez utiliser "shadow:
files nis" dans ce dernier cas.</p>
<p>Les sources de NYS sont fournies avec les sources de libc5.
Lorsque vous lancez la configuration pour la première fois,
répondez "NO" à la question "Values correct" (NDT: en
français, "Est-ce que les valeurs sont correctes ?"), puis
répondez "YES" à la question "Build a NYS libc from
nys" (NDT: en français, "Construire une libc NYS à
partir de nys ?").</p>
<h2><a name="ss7.6">7.6 Configurer un client NIS en utilisant la
glibc 2.x</a></h2>
<p>La glibc utilise la version "NIS traditionnelle", donc vous
devrez lancer ypbind. Le fichier <code>/etc/nsswitch.conf</code>
doit également être correctement configuré. Si
vous utilisez le mode compat pour les tables passwd, shadow ou
group, vous devez ajouter le caractère "+" à la fin
de ces fichiers, et vous pourrez alors utiliser les
fonctionnalités d'inclusion/d'exclusion d'utilisateurs. La
configuration est exactement la même que sous Solaris
2.x.</p>
<h2><a name="ss7.7">7.7 Le fichier nsswitch.conf</a></h2>
<p>Le fichier de configuration <code>/etc/nsswitch.conf</code>
détermine l'ordre dans lequel sont effectuées les
recherches de certaines informations, en fonction des
données et des services, de la même manière que
le fichier <code>/etc/host.conf</code> détermine la
façon dont les recherches de noms de machines se font. Par
exemple, la ligne</p>
<blockquote>
<pre>
<code> hosts: files nis dns
</code>
</pre></blockquote>
<p>indique que la recherche d'un nom de machine sera d'abord
effectuée dans le fichier local <code>/etc/hosts</code>,
puis dans la table NIS et enfin en utilisant le DNS
(<code>/etc/resolv.conf</code> et <code>named</code>). Si aucune
machine ne correspond, alors une erreur est renvoyée. Ce
fichier doit être accessible en lecture pour tous les
utilisateurs !</p>
<p>Voici un bon exemple de fichier /etc/nsswitch.conf pour NIS:</p>
<blockquote>
<pre>
<code>#
# /etc/nsswitch.conf
#
# Un exemple de configuration de NSS (Name Service Switch). Ce fichier doit
# etre trie en mettant en tete les services les plus utilises.
#
# L'entree '[NOTFOUND=return]' signifie que la recherche d'une entree
# doit s'arreter si la recherche dans l'entree precedente n'a rien donne
# Notez que si la recherche echoue pour tout autre raison
# (par exemple, le serveur NIS ne repond pas), alors la recherche continue
# avec l'entree suivante.
#
# Les entrees connues sont :
#
# nisplus NIS+ (NIS version 3)
# nis NIS (NIS version 2), connu comme YP
# dns DNS (Domain Name Service)
# files Fichiers locaux
# db Bases de donnees /var/db
# [NOTFOUND=return] Arret de la recherche si l'on n'a rien trouve
#
passwd: compat
group: compat
shadow: compat
passwd_compat: nis
group_compat: nis
shadow_compat: nis
hosts: nis files dns
services: nis [NOTFOUND=return] files
networks: nis [NOTFOUND=return] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
ethers: nis [NOTFOUND=return] files
netmasks: nis [NOTFOUND=return] files
netgroup: nis
bootparams: nis [NOTFOUND=return] files
publickey: nis [NOTFOUND=return] files
automount: files
aliases: nis [NOTFOUND=return] files
</code>
</pre></blockquote>
<p>Les entrées passwd_compat, group_compat et shadow_compat
ne sont gérées qu'avec la glibc 2.x. S'il n'y a pas
d'entrée shadow dans <code>/etc/nsswitch.conf</code>, la
glibc utilisera l'entrée passwd pour effectuer ses
recherches. Il existe certaines entrées
supplémentaires avec la glibc comme <code>hesoid</code>.
Pour plus d'informations, consultez la documentation de la
glibc.</p>
<h2><a name="s8">8. Mots de passe Shadow avec NIS et PAM</a></h2>
<p>L'utilisation des mots de passe Shadow avec NIS est toujours une
mauvaise idée. Vous perdez toute la sécurité
apportée par le système Shadow. Une bonne
façon d'éviter les mots de passe Shadow avec NIS est
de ne mettre dans le fichier <code>/etc/shadow</code> que les
utilisateurs du système local. Enlevez de la base de
données Shadow toutes les entrées correspondant aux
utilisateurs NIS, et remettez les mots de passe dans
<code>/etc/passwd</code>. Vous pourrez ainsi utiliser le
système Shadow pour le super-utilisateur (i.e. "root"), et
les mots de passe classiques pour les utilisateurs NIS. Cette
solution a l'avantage de pouvoir fonctionner avec tous les clients
NIS.</p>
<p>Si cette option n'est pas possible pour vous, il faudra utiliser
la bibliothèque GNU C 2.x. C'est la seule
bibliothèque libc pour Linux qui gère l'utilisation
des mots de passe Shadow avec NIS. Sous Linux, la libc5 ne le
permet pas. La libc5 compilée avec le support de NYS
contient une partie de code permettant le mélange Shadow -
NIS, mais ce code présente de sérieuses erreurs dans
certains cas et ne fonctionne pas correctement avec toutes les
entrées Shadow.</p>
<p>Le problème suivant est PAM. La bibliothèque GNU C
gère l'utilisation des mots de passe Shadow avec NIS, mais
PAM ne le fait pas, essentiellement <code>pam_pwdb/libpwdb</code>.
C'est un gros problème pour les utilisateurs de RedHat 5.x.
Si vous avez glibc et PAM, vous devez changer les entrées
dans <code>/etc/pam.d/*</code>. Changez toutes les entrées
de pam_pwdb par l'intermédiaire des modules pam_auth_unix_*.
Cette méthode devrait fonctionner.</p>
<h2><a name="s9">9. Que faut-il pour configurer NIS+ ?</a></h2>
<h2><a name="ss9.1">9.1 Les programmes</a></h2>
<p>Le code de NIS+ pour Linux a été
développé pour la bibliothèque GNU C 2. Il
existe également une version pour la libc5 de Linux, puisque
toutes les applications commerciales sont compilées en
édition de lien avec cette bibliothèque, et que vous
ne pouvez pas les recompiler en utilisant la glibc. Il y a des
problèmes avec la libc5 et NIS+: Vous ne pourrez pas
réaliser d'édition de lien statique de vos
programmes, et les programmes compilés avec cette
bibliothèque ne fonctionneront pas avec les autres versions
de la libc5.</p>
<p>Vous devez récupérer et recompiler la
dernière version de la glibc2, et une distribution
basée sur cette bibliothèque comme la Redhat Mustang
ou l'instable Debian. Mais attention : il s'agit toujours d'une
version bêta. Lisez la documentation concernant la glibc et
celle fournie par la distribution. La glibc2.0.x ne gère pas
pleinement NIS+, et ne l'intégrera jamais. La
première version avec la gestion NIS+ sera la 2.1.</p>
<p>Les programmes clients NIS+ peuvent être
récupérés sur les sites :</p>
<blockquote>
<pre>
<code> Site Repertoire Nom du fichier
ftp.kernel.org /pub/software/libs/glibc libc-*, glibc-crypt-*,
glibc-linuxthreads-*
ftp.kernel.org /pub/linux/utils/net/NIS+ nis-tools-1.4.2.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS+ pam_keylogin-1.2.tar.gz
</code>
</pre></blockquote>
<p>Les distributions basées sur la glibc peuvent être
récupérées sur les sites :</p>
<blockquote>
<pre>
<code> Site Repertoire
ftp.redhat.com /pub/redhat/redhat-5.1
ftp.debian.org /pub/debian/dists/hamm
</code>
</pre></blockquote>
<p>Pour compiler la glibc, suivez les instructions livrées
avec les sources. Vous pouvez trouver à l'adresse suivante
la version patchée de la libc5, basée sur NYS et sur
les sources de la glibc, qui peut être utilisée pour
remplacer la libc5.</p>
<blockquote>
<pre>
<code> Site Repertoire Nom du fichier
ftp.kernel.org /pub/linux/utils/net/NIS+ libc-5.4.44-nsl-0.4.10.tar.gz
</code>
</pre></blockquote>
<p>Vous pouvez également consulter le site <a href=
"http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html">http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html</a>
pour plus d'informations ainsi que pour avoir les dernières
sources.</p>
<h2><a name="ss9.2">9.2 Configurer un client NIS+</a></h2>
<p>IMPORTANT : pour configurer un client NIS+, lisez la
documentation NIS+ Solaris pour voir ce qu'il convient de faire du
côté serveur. Ce document ne décrit que le
côté client !</p>
<p>Après avoir installé la nouvelle libc ainsi que
nis-tools, créez les références pour le
nouveau client sur le serveur NIS+. Assurez vous que
<code>portmap</code> est lancé. Ensuite, vérifiez que
votre PC Linux est à la même heure que le serveur
NIS+. Pour réaliser des RPC sécurisés, vous
disposez d'une courte période de 3 minutes, durant
lesquelles les références sont valides. Lancer
<code>xntpd</code> sur toutes les machines peut être une
bonne idée. Après tout ça, exécutez les
commandes suivantes :</p>
<blockquote>
<pre>
<code>domainname nisplus.domain.
nisinit -c -H <serveur NIS+>
</code>
</pre></blockquote>
<p>pour initialiser le système de lancement. Lisez la page
de manuel de nisinit pour connaître les différentes
options existantes. Assurez-vous que le nom de domaine est toujours
bien positionné lors d'un réamorçage. Si vous
ne connaissez pas votre nom de domaine NIS+ sur votre
réseau, demandez-le à votre administrateur
système.</p>
<p>Pensez également à modifier votre ficher
<code>/etc/nsswitch.conf</code>. Assurez-vous que le seul service
situé avec publickey est <code>nisplus</code> ("publickey:
nisplus"), et rien d'autre !</p>
<p>Ensuite, lancez <code>keyserv</code> et assurez-vous qu'il sera
toujours lancé lors de l'amorçage de la machine.
Lancez</p>
<blockquote>
<pre>
<code>keylogin -r
</code>
</pre></blockquote>
pour conserver la clef privée sur votre système
(j'espère que vous avez ajouté la clef publique de la
nouvelle machine sur le serveur NIS+ !).
<p>"niscat passwd.org_dir" doit désormais vous donner toutes
les entrées contenues dans la base de données
passwd.</p>
<h2><a name="ss9.3">9.3 NIS+, keylogin, login et PAM</a></h2>
<p>Lorsque l'utilisateur se connecte, il a besoin de fixer sa clef
secrète sur le serveur de clef. Cela est effectué en
appelant <code>keylogin</code>. Le login à partir du
paquetage shadow fera cela à la place de l'utilisateur. Pour
un login de type PAM, vous devez installer
<code>pam_keylogin-1.1.tar.gz</code> et modifier le fichier
<code>/etc/pam.d/login</code> pour utiliser
<code>pam_unix_auth</code>, et non <code>pwdb</code> qui ne
gère pas NIS+. Voici un exemple :</p>
<blockquote>
<pre>
<code>#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_keylogin.so
auth required /lib/security/pam_unix_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_unix_passwd.so
session required /lib/security/pam_unix_session.so
</code>
</pre></blockquote>
<h2><a name="ss9.4">9.4 Le fichier nsswitch.conf</a></h2>
<p>Le fichier de configuration <code>/etc/nsswitch.conf</code>
détermine l'ordre dans lequel sont effectuées les
recherches de certaines informations, en fonction des
données et des services, de la même manière que
le fichier <code>/etc/host.conf</code> détermine la
façon dont les recherches de noms de machines se font. Par
exemple, la ligne</p>
<blockquote>
<pre>
<code> hosts: files nisplus dns
</code>
</pre></blockquote>
<p>indique que la fonction de recherche doit dans un premier temps
chercher dans le fichier local <code>/etc/hosts</code>, suivi par
une recherche NIS+ et enfin <em>via</em> le service de recherche de
noms (<code>/etc/resolv.conf</code> et <code>named</code>).
À ce moment là, si aucune machine n'est
trouvée, alors une erreur est renvoyée.</p>
<p>Voici un exemple de bon fichier
<code>/etc/nsswitch.conf</code></p>
<blockquote>
<pre>
<code># Un exemple de configuration de NSS. Ce fichier doit etre trie en
# mettant en tete les services les plus utilises.
#
# L'entree '[NOTFOUND=return]' signifie que la recherche d'une entree
# doit s'arreter si la recherche dans l'entree precedente n'a rien donne
# Notez que si la recherche echoue pour tout autre raison
# (par exemple, le serveur NIS ne repond pas), alors la recherche continue
# avec l'entree suivante.
#
# Les entrees connues sont :
#
# nisplus NIS+ (NIS version 3)
# nis NIS (NIS version 2), connu comme YP
# dns DNS (Domain Name Service)
# files Fichiers locaux
# db Bases de donnees /var/db
# [NOTFOUND=return] Arret de la recherche si l'on a rien trouve
#
passwd: compat
# pour libc5: passwd: files nisplus
group: compat
# pour libc5: group: files nisplus
shadow: compat
# pour libc5: shadow: files nisplus
passwd_compat: nisplus
group_compat: nisplus
shadow_compat: nisplus
hosts: nisplus files dns
services: nisplus [NOTFOUND=return] files
networks: nisplus [NOTFOUND=return] files
protocols: nisplus [NOTFOUND=return] files
rpc: nisplus [NOTFOUND=return] files
ethers: nisplus [NOTFOUND=return] files
netmasks: nisplus [NOTFOUND=return] files
netgroup: nisplus
bootparams: nisplus [NOTFOUND=return] files
publickey: nisplus
automount: files
aliases: nisplus [NOTFOUND=return] files
</code>
</pre></blockquote>
<h2><a name="s10">10. Configurer un serveur NIS</a></h2>
<h2><a name="ss10.1">10.1 Le programme serveur ypserv</a></h2>
<p>Ce document ne décrit que la manière de configurer
le serveur NIS "ypserv".</p>
<p>Les programmes serveur NIS peuvent être trouvés sur
:</p>
<blockquote>
<pre>
<code> Site Repertoire Nom de fichier
ftp.kernel.org /pub/linux/utils/net/NIS ypserv-1.3.2.tar.gz
wauug.erols.com /pub/net/nis ypserv-1.3.2.tar.gz
</code>
</pre></blockquote>
<p>Vous pouvez également regarder le document <a href=
"http://www-vt.uni-paderborn.de/~kukuk/linux/nis.html">http://www-vt.uni-paderborn.de/~kukuk/linux/nis.html</a>
pour obtenir de plus amples informations ainsi que les sources.</p>
<p>La configuration du serveur est la même que cela soit le
NIS traditionnel ou NYS.</p>
<p>Compilez les sources pour générer les programmes
"ypserv" et "makedbm". Si votre serveur est considéré
comme maître, déterminez quels fichiers vous souhaitez
rendre disponibles via NIS et ajoutez ou supprimez les
entrées appropriées dans
<code>/var/yp/Makefile</code>.</p>
<p>Il y a une seule grande différence entre <code>ypserv
1.1</code> et <code>ypserv 1.2</code>. Depuis la version 1.2,
<code>ypserv</code> utilise une mémoire cache pour les
manipulations de fichiers. Cela signifie que vous devez toujours
appeler <code>makedbm</code> avec l'option <code>-c</code> si
créez de nouvelles maps. Assurez-vous que vous utilisez le
nouveau <code>/var/yp/Makefile</code> fourni avec <code>ypserv
1.2</code> ou une version supérieure, ou ajoutez l'option
<code>-c</code> à <code>makedbm</code> dans le Makefile. Si
vous ne le faites pas, <code>ypserv</code> continuera à
utiliser les anciennes maps, et non les nouvelles.</p>
<p>Éditez ensuite <code>/var/yp/securenets</code> et
<code>/etc/ypserv.conf</code>. Pour plus d'information, lisez les
pages de manuel <code>ypserv(8)</code> et
<code>ypserv.conf(5)</code>.</p>
<p>Assurez-vous que le portmapper (<code>portmap(8)</code>)
fonctionne et lancez le serveur <code>ypserv</code>. La
commande</p>
<blockquote>
<pre>
<code> % rpcinfo -u localhost ypserv
</code>
</pre></blockquote>
<p>doit vous répondre un message du genre</p>
<blockquote>
<pre>
<code> program 100004 version 2 ready and waiting
</code>
</pre></blockquote>
<p>Maintenant, générez la base de donnée NIS
(YP). Sur le serveur maître, lancez :</p>
<blockquote>
<pre>
<code> % /usr/lib/yp/ypinit -m
</code>
</pre></blockquote>
<p>sur un esclave, assurez-vous que ypwhich -m fonctionne. C'est
à dire que votre esclave doit être configuré en
tant que client NIS, puis lancez:</p>
<blockquote>
<pre>
<code> % /usr/lib/yp/ypinit -s masterhost
</code>
</pre></blockquote>
pour que la machine soit un esclave NIS.
<p>Ça y est, votre serveur fonctionne.</p>
<p>Si vous avez de plus gros problèmes, vous pouvez lancer
<code>ypserv</code> et <code>ypbind</code> en mode debug sur des
xterms différents. La sortie écran du mode
débug devrait vous montrer ce qui ne va pas.</p>
<p>Il est possible que vous souhaitiez ajouter les lignes suivantes
sur le serveur esclave dans la <code>crontab</code> root :</p>
<blockquote>
<pre>
<code> 20 * * * * /usr/lib/yp/ypxfr_1perhour
40 6 * * * /usr/lib/yp/ypxfr_1perday
55 6,18 * * * /usr/lib/yp/ypxfr_2perday
</code>
</pre></blockquote>
<p>De cette manière, vous êtes sûr que les maps
NIS sont synchronisées et sont à jour, même
s'il peut arriver qu'une mise à jour soit ratée parce
que l'esclave était arrêté lors de la mise
à jour du maître.</p>
<p>Vous pouvez ajouter un esclave n'importe quand, ensuite. Tout
d'abord, assurez-vous que le nouveau <code>ypserv</code> a les
droits pour contacter le serveur maître. Ensuite, lancez</p>
<blockquote>
<pre>
<code> % /usr/lib/yp/ypinit -s masterhost
</code>
</pre></blockquote>
sur l'esclave, et ajoutez le nom du serveur au fichier
<code>/var/yp/ypservers</code>. Après cela, lancez la
commande "make" dans le répertoire <code>/var/yp</code> pour
mettre les maps à jour.
<p>Si vous souhaitez restreindre l'accès au serveur NIS,
vous devez configurer le serveur NIS comme s'il était
également un client en lançant <code>ypbind</code> et
en ajoutant les entrées "+" dans le fichier
<code>/etc/passwd</code>. La bibliothèque de fonctions va
alors ignorer les entrées normales après la
première entrée NIS et va récupérer le
reste des informations en utilisant NIS. C'est de cette
manière que sont maintenues les règles d'accès
NIS. Par exemple :</p>
<blockquote>
<pre>
<code> root:x:0:0:root:/root:/bin/bash
daemon:*:1:1:daemon:/usr/sbin:
bin:*:2:2:bin:/bin:
sys:*:3:3:sys:/dev:
sync:*:4:100:sync:/bin:/bin/sync
games:*:5:100:games:/usr/games:
man:*:6:100:man:/var/catman:
lp:*:7:7:lp:/var/spool/lpd:
mail:*:8:8:mail:/var/spool/mail:
news:*:9:9:news:/var/spool/news:
uucp:*:10:50:uucp:/var/spool/uucp:
nobody:*:65534:65534:noone at all,,,,:/dev/null:
+miquels::::::
+:*:::::/etc/NoShell
[ Tous les utilisateurs normaux APRES cette ligne !]
tester:*:299:10:Just a test account:/tmp:
miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh
</code>
</pre></blockquote>
<p>L'utilisateur <em>tester</em> existera toujours mais il aura
l'interpréteur de commandes <code>/etc/NoShell</code>.
L'utilisateur <em>miquels</em> aura un accès normal.</p>
<p>Sinon, vous pouvez également éditer le fichier
<code>/var/yp/Makefile</code> et configurer NIS pour qu'il utilise
un autre fichier passwd. Sur de gros systèmes, les fichiers
passwd et group sont généralement conservés
dans le répertoire <code>/var/yp/ypfiles/</code>. Si vous
utilisez les outils standards pour administrer le fichier mot de
passe ("passwd", "chfn", "adduser"), cela ne fonctionnera plus et
devrez alors créer vos propres outils.</p>
<p>Toutefois, <code>yppasswd</code>, <code>ypchsh</code> et
<code>ypchfn</code> fonctionneront bien sur.</p>
<h2><a name="ss10.2">10.2 Le programme serveur yps</a></h2>
<p>Pour mettre en place le serveur NIS <code>yps</code>, consultez
les paragraphes précédents. Sa configuration est
assez similaire sans être exactement la même, donc
faites attention si vous essayez d'appliquer les instructions de
<code>ypserv</code> à <code>yps</code>! Cependant,
<code>yps</code> n'est plus maintenu par son auteur, et contient un
certain nombre de failles de sécurité. Vous devriez
éviter de vous en servir.</p>
<p>Ce serveur NIS peut être trouvé sur :</p>
<blockquote>
<pre>
<code> Site Repertoire Nom du Fichier
ftp.lysator.liu.se /pub/NYS/servers yps-0.21.tar.gz
</code>
</pre></blockquote>
<h2><a name="ss10.3">10.3 Le programme rpc.yppasswdd</a></h2>
<p>À chaque fois qu'un utilisateur change son mot de passe,
le mot de passe de la base de données NIS, ainsi que celui
des autres bases de données NIS, doit être mis
à jour. Le programme <code>rpc.yppasswd</code> est un
serveur qui gére les modifications de mot de passe et qui
s'assure que les informations NIS seront correctement mises
à jour. <code>rpc.yppasswdd</code> est désormais
intégré dans <code>ypserv</code>. Vous n'avez plus
besoin des vieilles versions séparées
<code>yppasswd-0.9.tar.gz</code> ou
<code>yppasswd-0.10.tar.gz</code>, et vous ne devriez plus les
utiliser. La version de <code>rpc.yppasswdd</code> qui est comprise
dans <code>ypserv 1.3.2</code> gère totalement les Shadow.
<code>yppasswd</code> fait maintenant parti de
yp-tools-1.2.tar.gz.</p>
<p>Le lancement de <code>rpc.yppasswdd</code> n'est
nécessaire que sur le serveur maître. Par
défaut, les utilisateurs ne sont pas autorisés
à changer leur Nom complet (NDT: Prénom + Nom), ni
leur shell. Vous pouvez cependant les y autoriser en utilisant
l'option <code>-e</code> de <code>chfn</code> ou l'option
<code>-e</code> de <code>-e</code> de <code>chsh</code>.</p>
<h2><a name="s11">11. Vérifier l'installation de NIS ou de
NYS</a></h2>
<p>Si tout fonctionne correctement (comme cela devrait être),
vous devriez être capable de vérifier votre
installation avec quelques commandes simples. Supposons que le
fichier de mots de passe soit géré par NIS, la
commande</p>
<blockquote>
<pre>
<code> % ypcat passwd
</code>
</pre></blockquote>
<p>devrait alors vous donner le contenu du fichier des mots de
passe. La commande</p>
<blockquote>
<pre>
<code> % ypmatch id_utilisateur passwd
</code>
</pre></blockquote>
<p>(où <em>id_utilisateur</em> est le nom de login d'un
utilisateur) devrait vous donner l'entrée de l'utilisateur
dans le fichier des mots de passe NIS. Les commandes
<code>ypcat</code> et <code>ypmatch</code> doivent être
incluses dans la distribution du NIS (ou NYS) traditionnel.</p>
<p>Si un utilisateur ne peut pas se connecter, lancez le programme
suivant sur la machine cliente :</p>
<blockquote>
<pre>
<code>#include <stdio.h>
#include <pwd.h>
#include <sys/types.h>
int
main(int argc, char *argv[])
{
struct passwd *pwd;
if(argc != 2)
{
fprintf(stderr,"Usage: getwpnam username\n");
exit(1);
}
pwd=getpwnam(argv[1]);
if(pwd != NULL)
{
printf("name.....: [%s]\n",pwd->pw_name);
printf("password.: [%s]\n",pwd->pw_passwd);
printf("user id..: [%d]\n", pwd->pw_uid);
printf("group id.: [%d]\n",pwd->pw_gid);
printf("gecos....: [%s]\n",pwd->pw_gecos);
printf("directory: [%s]\n",pwd->pw_dir);
printf("shell....: [%s]\n",pwd->pw_shell);
}
else
fprintf(stderr,"User \"%s\" not found!\n",argv[1]);
exit(0);
}
</code>
</pre></blockquote>
<p>Faites tourner ce programme avec le nom de l'utilisateur en
paramètre. Il va afficher toutes les informations
renvoyées par la fonction <code>getpwnam</code> concernant
l'utilisateur. Cela peut vous permettre de savoir si
l'entrée est correcte. Un problème assez
fréquemment rencontré est une redéfinition du
champ de mot de passe par un "*".</p>
<h2><a name="s12">12. Problèmes et erreurs de fonctionnement
de NIS</a></h2>
<p>Voici certains problèmes rencontrés par
différents utilisateurs :</p>
<ol>
<li>Les bibliothèques 4.5.19 sont défectueuses. NIS
ne fonctionnera pas avec.</li>
<li>Si vous faites une mise à jour de 4.5.19 à 4.5.24
alors la commande <code>su</code> plante. Vous devez
récupérer la commande <code>su</code> à partir
de la distribution de la <em>slackware</em> 1.2.0 ou
supérieure. Éventuellement, vous pouvez
également y récupérer les bibliothèques
mises à jour.</li>
<li>Vous pouvez avoir quelques problèmes avec NIS et DNS sur
la même machine si vous utilisez une vieille distribution en
<em>a.out</em>. Le serveur DNS ne supporte pas toujours NIS.</li>
<li>Lorsqu'un serveur NIS tombe et est relancé,
<code>ypbind</code> démarre avec des messages du genre :
<pre>
yp_match: clnt_call:
RPC: Unable to receive; errno = Connection refused
</pre>
et les logins sont refusés pour les utilisateurs
référencés dans la base de donnée NIS.
Loguez vous en tant que root si vous le pouvez, tuez
<code>ypbind</code> puis relancez-le.</li>
<li>Après avoir mis à jour la <code>libc</code>
version supérieure à 5.4.20, les outils YP ne
fonctionneront plus. Vous devez utiliser les <code>yp-tools version
1.2</code> ou supérieure pour la <code>libc >=
5.4.21</code> et <code>glibc 2.x</code>, et la version
<code>yp-clients 2.2</code> pour les versions
précédentes. <code>yp-tools 2.0</code> devrait
fonctionner avec toutes les bibliothèques.</li>
<li>Dans les <code>libc 5.4.21 - 5.4.35</code>,
<code>yp_maplist</code> est défectueux. Vous devrez prendre
une version 5.4.36 ou supérieure, sinon, certains programmes
pour YP comme <code>ypwhich</code> généreront une
erreur <em>seg.fault</em>.</li>
<li>La <code>libc5</code> avec le NIS traditionnel ne gère
pas l'utilisation des mots de passe Shadow avec NIS. Vous devez
donc utiliser la <code>libc5</code> avec NYS ou la <code>glibc
2.x</code>.</li>
<li><code>ypcat shadow</code> ne montre pas la map Shadow. C'est
là quelque chose de correct, puisque le nom de la map Shadow
est "shadow.byname", et non "shadow".</li>
</ol>
<h2><a name="s13">13. FAQ : Les questions les plus
fréquemment posées</a></h2>
<p>Bon nombre de questions doivent être résolues
désormais. Si vous avez des questions sans réponse,
vous pouvez poster un message dans les forums de discussion :</p>
<blockquote>
<pre>
<code> comp.os.linux.help
</code>
</pre></blockquote>
<p>ou</p>
<blockquote>
<pre>
<code> comp.os.linux.networking
</code>
</pre></blockquote>
<p>ou contacter l'un des auteurs de ce HOWTO.</p>
</body>
</html>
|