sonnenblen.de - Das unabhängige Sun User Forum

Betriebssysteme => Solaris => Thema gestartet von: tecker2010 am 24. November 2008, 11:08:34

Titel: Solaris passwd per SSH
Beitrag von: tecker2010 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
Titel: Re: Solaris passwd per SSH
Beitrag von: DukeNuke2 am 24. November 2008, 13:13:25
hast du mal ein "passwd username" am ende versucht?
Titel: Re: Solaris passwd per SSH
Beitrag von: Drusus 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.
Titel: Re: Solaris passwd per SSH
Beitrag von: tecker2010 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
Titel: Re: Solaris passwd per SSH
Beitrag von: claus 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