• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

passwortübergabe

endor

Member
Wie man zum Beispiel in linuxforen lesen kann sollte ja ein befehl der in etwa so aussieht:
Code:
echo secret|/bin/mount -t ncpfs server/cn=user,o=firma /home/user/test -p 0 -o volume=/data/user,ipserver=192.168.0.1
möglich sein.

Dennoch taucht folgende Fehlermeldung auf:
Code:
mount.ncpfs: Password required (0x8706) in find_conn_spec

Woran kann das liegen? Hab ich da etwas vergessen?
 
Schau mal in man ncpmount

A) passwdfile=file
B) Als User, .nxclient mit Rechten 0600
.nwclient:
NW01/Haveanic secret

Ich glaube nicht das mount das Passwort von stdin liest.

Haveaniceday
 
OP
E

endor

Member
ich will ja kein dauerhaftes file wo das passwort drin steht. das is doof & unsicher. ich will es ja durch pam uebergeben.

oh, hm.. es klappt jetzt wenigstens der test:
Code:
echo secret|/bin/mount -t ncpfs server/cn=user,o=firma /home/user/test -o pass-fd=0,volume=/data/user,ipserver=192.168.0.1

ich dachte zuerst ich muesste anstatt pass-fd passwdfd nehmen, weil ersteres mit pam_mount nicht geklappt hat und auch nicht in man 8 mount steht. offensichtlich geht es aber doch damit, also muss der fehler noch wo anders sein.

das gibts gar nicht. ich bilde mir ein der befehl der von pam_mount losgeschickt wird sieht haar genau aus wie der der ich manuell abschicke und trotzdem fuehrt er zu mount error. Ich hab "mount" mal durch ein shell script ersetzt das mir alle Parameter ausgibt die uebergeben werden, und da haut eigentlich alles hin.. da wird sogar angezeigt das das passwort irgendwie mit uebergeben wird (nicht als option sondern Mwm.. steht das irgendwie fuer einen kanal?)
 
OP
E

endor

Member
das habe ich doch, wie in meinem vorherigen post beschrieben. ;-)

also ich habe folgendes gemacht:

zunächst per hand ausprobiert und die variante klappt:
Code:
echo secret|/bin/mount -t ncpfs server04/cn=endor.o=firma /home/endor/test -o pass-fd=0,volume=/data/endor,ipserver=192.168.0.1,user=cn=endor.o=firma

dann wollte ich sehen was er beim pam_mount für Parameter übergibt. Also:
Code:
mv /bin/mount /bin/mount_real
vi /bin/mount
chmod 711 /bin/mount

da drin steht dann:
Code:
#!/bin/sh

VAR=`echo $@`
logger "$VAR"

nach einloggen zeigt er nun im log:
Code:
ncpfs server04/cn=endor.o=firma /home/endor/test -o pass-fd=0,volume=/ata/endor,ipserver=192.168.0.1,user=cn=endor.o=firma Mwm: secret

Ich dachte mir, hey da fehlt ja am Anfang ein -t. Also script so geändert das er ein -t vorn dran hängt und die Parameter gleich dem richtigen Mount übergibt:
Code:
#!/bin/sh

VAR=`echo $@`
logger "-t $VAR"
/bin/mount_real -v -t $VAR

Und was spuckt er aus?
Code:
Mar  6 12:17:53 server01 5:0: pam_mount: mount errors (should be empty):
Mar  6 12:17:53 server01  -t ncpfs server04/cn=endor.o=firma /home/endor/test -o pass-fd=0,volume=/data/endor,ipserver=192.168.0.1,user=cn=endor.o=firma Mwm: secret

Und dabei ist es ganz egal ob ich in dem Shell script die Parameter für mount in " setze oder nicht, oder ob ich ein -t vorsetze oder nicht. Es zeigt jedes Mal nur mount errors.
Es ist ebenfalls egal ob ich pass-fd=0 oder passwdfd=0 setze, das klappt auch beides nicht.
 
OP
E

endor

Member
es klappt und ich habe KEINE ahnung wieso.
für alle die es interessiert hier das Howto.

jedenfalls bleibt noch zu sagen, dass wenn man über logger $@ loggt ein Mwm: <text> bekommt, dass <text> dann wirklich in der stdin also Kanal 0 ist. Demzufolge also auch über pass-fd=0 auslesbar (in der Theorie :))
 
Oben