passwd auf Fritz!Box / Speedport W501V

RoyceMcKnight

Neuer User
Mitglied seit
22 Aug 2006
Beiträge
186
Punkte für Reaktionen
0
Punkte
0
Bin wieder am Firmware basteln. Versuche momentan dropbear auf meinem Speedport zu installieren, das ganze funzt auch soweit, nur habe ich ein Problem:

Da kein Passwort für root gesetzt ist, kann ich mich nicht per ssh einloggen.

Wenn ich verusche, auf der Box dass root Passwort mittels passwd zu setzen, dann passiert folgenden:

Code:
# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
Enter new password:
Bad password: too short.
Re-enter new password:
passwd: An error occurred updating the password file.

#
Wenn ich das ganze per strace verfolge erfahre ich:

Code:
umask(077)                              = 022
setuid(0)                               = 0
access("/etc/shadow", F_OK)             = 0
open("/etc/shadow", O_RDWR)             = 3
ioctl(3, TIOCNXCL, 0x7fff6910)          = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0755, st_size=26, ...}) = 0
fcntl(3, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
fstat(3, {st_mode=S_IFREG|0755, st_size=26, ...}) = 0
umask(077)                              = 077
open("/etc/shadow-", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EROFS (Read-only file system)
umask(077)                              = 077
fcntl(3, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
close(3)                                = 0
rt_sigaction(SIGPIPE, {SIG_DFL}, {SIG_DFL}, 16) = 0
socket(PF_FILE, SOCK_DGRAM, 0)          = 3
connect(3, {sa_family=AF_FILE, path="/dev/log"}, 10) = 0
time([1160516959])                      = 1160516959
getpid()                                = 656
write(3, "<36>Oct 10 23:49:19 passwd[656]:"..., 78) = 78
rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 16) = 0
write(2, "passwd", 6passwd)                   = 6
write(2, ": ", 2: )                       = 2
write(2, "An error occurred updating the p"..., 46An error occurred updating the password file.
) = 46
write(2, "\n", 1
)                       = 1
exit(1)                                 = ?
Process 656 detached
#
Sprich genauer:
Code:
open("/etc/shadow-", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EROFS (Read-only file system)
Passwd verweigert also den Dienst, da /etc/shadow in einem read-only filesystem liegt.

Aber:
Code:
# ls -al /etc/shadow
lrwxrwxrwx    1 root     root           17 Oct 10 23:36 /etc/shadow -> ../var/tmp/shadow
# mount
/dev/mtdblock/0 on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
ramfs on /var type ramfs (rw)
#
/etc/shadow ist ja nur ein symlink auf /var/tmp/shadow, und /var is ja rw.

Nur scheint passwd das nicht zu raffen.

Was gibt es da für Lösungen, oder wie wurde das im ds-mod gelöst?


Grüße

Mike
 

RoyceMcKnight

Neuer User
Mitglied seit
22 Aug 2006
Beiträge
186
Punkte für Reaktionen
0
Punkte
0
2 Lösungen am Start:

1. busybox sources so patchen dass er den read-only check auslässt
2. busybox sources so patchen, dass er die pfade nach /var/tmp/passwd und /var/tmp/shadow anpasst.

Beides funzt, aber Lösung 2 ist die saubere, werde das verwenden.

Dropbear funzt jetzt auch, mit login ;)

in diesem Sinne: *closed* ;)
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
3. Lösung: Zeile von Hand (bzw. per debug.cfg) in die passwd eintragen

MfG Oliver
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Das steht immer da, auch wenn du 1000 Zeichen eintippst. ;-)

MfG Oliver
 

Vierstein

Neuer User
Mitglied seit
22 Apr 2004
Beiträge
48
Punkte für Reaktionen
0
Punkte
0
Die Lösung von Oliver halte ich für die sinnvollste Lösung. Berechne Dir einen MD5-Hash für das Passwort z.B. mit Linux und füge die Zeile dann einfach manuell in die shadow ein.

Grüße

Vierstein
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Naja. Kommt auf die Sicht an.
Da Mike ja was größeres mit dem W501V vorhat sind auch die ersten beiden Lösungen machbar.

MfG Oliver
 

RoyceMcKnight

Neuer User
Mitglied seit
22 Aug 2006
Beiträge
186
Punkte für Reaktionen
0
Punkte
0
Jo ich habe Busybox so gepatcht, dass die Pfade entpsrechend nach /var/tmp geändert wurden. Das ist imho die beste Lösung, passwd funktioniert jetzt prächtig, Dropbear Login auch.
Nächste Woche nehme ich mir dann das WLAN vor, das klappt noch nicht so ganz. Momentan ist halt etwas schlecht mit der Zeit, bis Samstag wird aufgebaut für Party ;)
 

Zurzeit aktive Besucher

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,118
Beiträge
2,030,322
Mitglieder
351,465
Neuestes Mitglied
mathador