Superuser

Autor Thema: Solaris passwd per SSH  (Gelesen 3854 mal)

tecker2010

  • Gast
Solaris passwd per SSH
« am: 24. November 2008, 11:08:34 »
Hi,

kann mir jemand sagen was ich machen muss oder kann um "passwd" per SSH von einer entfernten Maschine aus ausführen kann??

ssh USERNAME@SOLARIS-HOST passwd
führt zu:

Unexpected failure. Password file/table unchanged
Am User liegt es nicht und der Befehl "ls -l" macht beispielsweise keine Probleme. Bei Debian-Hosts funktionierts. Bei Solaris 9 und 10 das gleiche Phänomen. Scheint also irgendas genrelles zu sein.

Wäre dankbar für Tips. Liegts evtl. an der nsswitch.conf? Steht alles auf "files" beim Solaris Client.

Viele Grüße

sonnenblen.de - Das unabhängige Sun User Forum

Solaris passwd per SSH
« am: 24. November 2008, 11:08:34 »

Offline DukeNuke2

  • Sobl Guru
  • *****
  • Beiträge: 571
  • Soulman
    • Wo die Sonne lacht
Re: Solaris passwd per SSH
« Antwort #1 am: 24. November 2008, 13:13:25 »
hast du mal ein "passwd username" am ende versucht?

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: Solaris passwd per SSH
« Antwort #2 am: 24. November 2008, 13:16:17 »
Moin,

der passwd Befehl braucht ein tty - und dieses fehlt bei deinem Test. Probier mal ein
% ssh -t username@hostname passwd
Sollte das ganze aus einem Script heraus kommen, dann evtl. zeimal -t um auch bei fehlendem lokalen tty ein tty auf der anderen Seite zu erzwingen. Siehe dazu "man ssh".

Tschau,
  Drusus.

tecker2010

  • Gast
Re: Solaris passwd per SSH
« Antwort #3 am: 24. November 2008, 15:47:47 »
Das -t hat mich schonmal ein gutes Stück weiter gebracht. Jetzt muss ich nur noch sehen, wie ich das ganze in meinem Perlskript mit Net::SSH::Perl untergriege. Manuell funktioniert es schonmal (ssh -t USER@SOLARISHOST passwd)

Danke

claus

  • Gast
Re: Solaris passwd per SSH
« Antwort #4 am: 26. November 2008, 10:40:21 »
Hallo,

also, wir machen im Normalfall so was:

my $ssh_cmd                     = '/usr/local/bin/ssh';
my $target_host = '<insert server here';
my $ssh_string = "'";
$ssh_string .= "<insert commands here> ; ";
$ssh_string .=  "  '";

my $cmd =       "$ssh_cmd " .
                        "$target_host " .
                        "$ssh_string";

qx ($cmd);

Das reicht im Normalfall völlig.

Du kannst auch einfach mal

ssh user@machine 'pwd;time;hostname' ausführen (vorausgesetzt die keys sind installiert).


Claus