- 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:
Wenn ich das ganze per strace verfolge erfahre ich:
Sprich genauer:
Passwd verweigert also den Dienst, da /etc/shadow in einem read-only filesystem liegt.
Aber:
/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
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