Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[NetBSD 4.0] Binding a linux NIS server...

26 réponses
Avatar
JKB
Bonjour à tous,

Je relance mon thread de la semaine dernière (mais entre temps, mon
FAI a réinitialisé [enfin] son serveur de news, donc je ne peux
répondre à mon post précédent...).

Considérons un serveur NIS tournant sous Linux/Sparc64 appelé
rayleigh et un client tournant sous NetBSD 4.0/sparc32 se prénomant
riemann.

fermat:[~] > ssh -l root riemann
Password:
Last login: Tue Feb 12 16:18:25 2008
NetBSD 4.0 (GENERIC.MP) #0: Sun Dec 16 02:23:20 PST 2007

Welcome to NetBSD!

Terminal type is xterm.
We recommend creating a non-root account and using su(1) for root access.
riemann# ps -aux | grep yp
root 692 2.8 0.6 420 3348 ? Ss 4:24PM 0:05.63 sshd: root@ttyp0
root 622 0.0 0.2 156 912 ? Ss 4:20PM 0:00.09 /usr/sbin/ypbind
root 635 0.0 0.1 176 728 ttyp0 R+ 4:25PM 0:00.01 grep yp
root 700 0.1 0.2 280 1208 ttyp0 Ss 4:24PM 0:-1.84 -sh
root 720 0.0 0.1 88 732 ttyp0 R+ 4:25PM 0:00.00 ps -aux
riemann#

Pas de problème, sshd tourne et le nis fonctionne a priori.
Regardons de plus près le NIS.

riemann# ypcat passwd.byname

Sortie verbeuse qui me renvoie tous les comptes exportés par le
serveur NIS. Donc on va considérer que le NIS fonctionne.

riemann#

J'ai monté à la main les $HOMEs des utilisateurs au bon endroit. La
preuve :

riemann# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/sd0a 2071664 26462 1941620 1% /
/dev/sd0d 5264240 878 5000150 0% /var
/dev/sd0g 11914202 771702 10546790 6% /usr
/dev/sd0e 49646140 2 47163832 0% /home
kernfs 1 1 0 100% /kern
procfs 4 4 0 100% /proc
rayleigh:/export/home 353376836 111971956 223454288 33%
/import/home
riemann#

Je m'occuperai de amd plus tard... Mais je n'arrive pas à me
connecter sur cette machine :

riemann# su - bertrand
su: unknown login bertrand
riemann# ypcat passwd.byname | grep bertrand
bertrand:x:1000:1000:BERTRAND Jo,,,:/import/home/bertrand:/bin/bash
riemann# which bash
/bin/bash
riemann#

Je n'ai aucune trace bizarre dans les logs. Si je tente un ssh
depuis une autre machine, j'obtiens :

Feb 12 16:33:40 riemann sshd[376]: Invalid user bertrand from 192.168.0.83
Feb 12 16:33:41 riemann sshd[376]: Failed none for invalid user bertrand
from 192.168.0.83 port 60054 ssh2

avant même que le client ssh me demande mon mot de passe. J'avoue
mon ignorance crasse de NetBSD (mais j'ai une solide pratique
d'Unices de tous poils). Je ne vois vraiment pas ce que j'ai pu
oublier... Une idée ?

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.

6 réponses

1 2 3
Avatar
Manuel Bouyer
JKB wrote:
Le 21-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
Manuel Bouyer écrivait dans fr.comp.os.bsd :
JKB wrote:
Le 20-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
Manuel Bouyer écrivait dans fr.comp.os.bsd :
JKB wrote:
Certes. Mais sur mon réseau, c'est NIS tout court (en raison
d'interactiions avec d'autres OS). Le serveur principal est en
shadow passord pour certaines raisons que je ne développerai pas
ici. Je ne vois cependant toujours pas pourquoi le client refuse la
connexion (comme s'il ne savait pas utiliser le shadow.byname ou que


C'est exactement ca. NetBSD (et les autres BSD aussi je pense) cherche
un master.passwd.byname, pas shadow.byname. S'il ne trouve pas,
il cherche le mot de passe dans passwd.byname (ce qui doit marcher avec
tout le monde ...)


Il ne cherche pas de master.passwd.byname (j'ai essayé et cela ne
donne rien).


Il faut master.passwd.byname et master.passwd.byuid, avec le bon format
(c'est a dire avec les champs supplementaires class, change et expire).


Root rayleigh:[/var/yp/systella.fr] > ypcat master.passwd.byuid
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0:99999:7:::
...
Root rayleigh:[/var/yp/systella.fr] > ypcat master.passwd.byname
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0:99999:7:::
Cela n'a pas l'air de fonctionner. Me manque-t-il quelque chose ?


Il faudrait plutot un truc du genre
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0::0:0:gecos:home:shell

(la meme chose que ce qu'on aurait mis dans le /etc/master.passwd local)

--
Manuel Bouyer
NetBSD: 26 ans d'experience feront toujours la difference
--





Avatar
JKB
Le 22-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
Manuel Bouyer écrivait dans fr.comp.os.bsd :
JKB wrote:
Le 21-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
Manuel Bouyer écrivait dans fr.comp.os.bsd :
JKB wrote:
Le 20-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
Manuel Bouyer écrivait dans fr.comp.os.bsd :
JKB wrote:
Certes. Mais sur mon réseau, c'est NIS tout court (en raison
d'interactiions avec d'autres OS). Le serveur principal est en
shadow passord pour certaines raisons que je ne développerai pas
ici. Je ne vois cependant toujours pas pourquoi le client refuse la
connexion (comme s'il ne savait pas utiliser le shadow.byname ou que


C'est exactement ca. NetBSD (et les autres BSD aussi je pense) cherche
un master.passwd.byname, pas shadow.byname. S'il ne trouve pas,
il cherche le mot de passe dans passwd.byname (ce qui doit marcher avec
tout le monde ...)


Il ne cherche pas de master.passwd.byname (j'ai essayé et cela ne
donne rien).


Il faut master.passwd.byname et master.passwd.byuid, avec le bon format
(c'est a dire avec les champs supplementaires class, change et expire).


Root rayleigh:[/var/yp/systella.fr] > ypcat master.passwd.byuid
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0:99999:7:::
...
Root rayleigh:[/var/yp/systella.fr] > ypcat master.passwd.byname
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0:99999:7:::
Cela n'a pas l'air de fonctionner. Me manque-t-il quelque chose ?


Il faudrait plutot un truc du genre
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0::0:0:gecos:home:shell

(la meme chose que ce qu'on aurait mis dans le /etc/master.passwd local)


Bon, je m'en va écrire un makefile pour créer ça. Par contre, quelle
est la subtile différence entre master.passwd.byname et
master.passwd.byuid ? La question a l'air bête, mais j'ai la
curieuse impression que passwd.byname et passwd.byuid sont
strictement identiques...

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.






Avatar
Manuel Bouyer
JKB wrote:
Il faudrait plutot un truc du genre
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0::0:0:gecos:home:shell

(la meme chose que ce qu'on aurait mis dans le /etc/master.passwd local)


Bon, je m'en va écrire un makefile pour créer ça. Par contre, quelle
est la subtile différence entre master.passwd.byname et
master.passwd.byuid ? La question a l'air bête, mais j'ai la
curieuse impression que passwd.byname et passwd.byuid sont
strictement identiques...


C'est les clefs dans la db qui ne sont pas les memes:
ypmatch toto master.passwd.byname
ypmatch 13929 master.passwd.byuid

A priori la difference se situe au moment ou on entre chaque ligne dans la
db sur le serveur.

--
Manuel Bouyer
NetBSD: 26 ans d'experience feront toujours la difference
--


Avatar
JKB
Le 22-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
Manuel Bouyer écrivait dans fr.comp.os.bsd :
JKB wrote:
Il faudrait plutot un truc du genre
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0::0:0:gecos:home:shell

(la meme chose que ce qu'on aurait mis dans le /etc/master.passwd local)


Bon, je m'en va écrire un makefile pour créer ça. Par contre, quelle
est la subtile différence entre master.passwd.byname et
master.passwd.byuid ? La question a l'air bête, mais j'ai la
curieuse impression que passwd.byname et passwd.byuid sont
strictement identiques...


C'est les clefs dans la db qui ne sont pas les memes:
ypmatch toto master.passwd.byname
ypmatch 13929 master.passwd.byuid

A priori la difference se situe au moment ou on entre chaque ligne dans la
db sur le serveur.


Il y a un truc qui m'échappe, mais je n'ai pas le temps de creuser
tout de suite. Je garde ça sous le coude et je posterai ici un
Makefile capable de résoudre le problème.

Merci pour tout,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.



Avatar
Paul Gaborit
À (at) Fri, 22 Feb 2008 16:00:26 +0000 (UTC),
JKB écrivait (wrote):
Le 22-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
Manuel Bouyer écrivait dans fr.comp.os.bsd :
C'est les clefs dans la db qui ne sont pas les memes:
ypmatch toto master.passwd.byname
ypmatch 13929 master.passwd.byuid

A priori la difference se situe au moment ou on entre chaque ligne dans la
db sur le serveur.


Il y a un truc qui m'échappe, mais je n'ai pas le temps de creuser
tout de suite. Je garde ça sous le coude et je posterai ici un
Makefile capable de résoudre le problème.


Chaque ligne d'une table NIS est indexée par un clé (ça permet de
demander une ligne par sa clé sans charger toute la table). La table
master.passwd doit exister en deux exemplaires dans NIS :

- l'une indexée par le nom/login (master.passwd.byname)
- l'autre indexée par l'uid (master.passwd.byuid)

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>


Avatar
JKB
Le 22-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
JKB écrivait dans fr.comp.os.bsd :
Le 22-02-2008, à propos de
Re: [NetBSD 4.0] Binding a linux NIS server...,
Manuel Bouyer écrivait dans fr.comp.os.bsd :
JKB wrote:
Il faudrait plutot un truc du genre
toto:$1$aWtaTH1u$sHX.jLyvRlHgztudfM8oN.:13929:0::0:0:gecos:home:shell

(la meme chose que ce qu'on aurait mis dans le /etc/master.passwd local)


Bon, je m'en va écrire un makefile pour créer ça. Par contre, quelle
est la subtile différence entre master.passwd.byname et
master.passwd.byuid ? La question a l'air bête, mais j'ai la
curieuse impression que passwd.byname et passwd.byuid sont
strictement identiques...


C'est les clefs dans la db qui ne sont pas les memes:
ypmatch toto master.passwd.byname
ypmatch 13929 master.passwd.byuid

A priori la difference se situe au moment ou on entre chaque ligne dans la
db sur le serveur.


Il y a un truc qui m'échappe, mais je n'ai pas le temps de creuser
tout de suite. Je garde ça sous le coude et je posterai ici un
Makefile capable de résoudre le problème.


Chose promise, chose due... Rajouter un include dans
/var/yp/Makefile de ceci :

Root rayleigh:[/var/yp] > cat Makefile.NetBSD

master.passwd.byname: $(PASSWD) $(SHADOW) $(YPDIR)/Makefile
@echo "Updating $@..."
@$(UMASK);
$(MERGER) -p $(PASSWD) $(SHADOW) |
$(AWK) -F: '!/^[-+#]/ { if ($$1 != "" && $$3 >= $(MINUID) && $$3 <= $(MAXUID) && $$3 != $(NFSNOBODYUID) )
print $$1"t"$$1":"$$2":"$$3":"$$4"::0:0:"$$5":"$$6":"$$7 }'
| $(DBLOAD) -i $(PASSWD)
-o $(YPMAPDIR)/$@ - $@
-@$(NOPUSH) || $(YPPUSH) -d $(DOMAIN) $@

master.passwd.byuid: $(PASSWD) $(SHADOW) $(YPDIR)/Makefile
@echo "Updating $@..."
@$(UMASK);
$(MERGER) -p $(PASSWD) $(SHADOW) |
$(AWK) -F: '!/^[-+#]/ { if ($$1 != "" && $$3 >= $(MINUID) && $$3 <= $(MAXUID) && $$3 != $(NFSNOBODYUID) )
print $$3"t"$$1":"$$2":"$$3":"$$4"::0:0:"$$5":"$$6":"$$7 }'
| $(DBLOAD) -i $(PASSWD)
-o $(YPMAPDIR)/$@ - $@
-@$(NOPUSH) || $(YPPUSH) -d $(DOMAIN) $@

En hopant que ça helpe, en tout cas, chez moi, ça marche (c) (tm)
(p) (r) ;-)

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.




1 2 3