4 Copyright (C) 2006-2009 Jonathan Zarate
11 void create_passwd(void)
20 f_read("/dev/urandom", s
, 6);
21 base64_encode(s
, salt
+ 3, 6);
25 if (*p
== '+') *p
= '.';
28 if (((p
= nvram_get("http_passwd")) == NULL
) || (*p
== 0)) p
= "admin";
31 if ((f
= fopen("/etc/shadow", "w")) != NULL
) {
33 fprintf(f
, "root:%s:0:0:99999:7:0:0:\n"
34 "nobody:*:0:0:99999:7:0:0:\n", p
);
37 fprintf(f
, "admin:*:0:0:99999:7:0:0:\n");
42 chmod("/etc/shadow", 0600);
44 f_write_string("/etc/passwd",
45 "root:x:0:0:root:/root:/bin/sh\n"
48 "admin:x:100:100:nas:/dev/null:/dev/null\n"
50 "nobody:x:65534:65534:nobody:/dev/null:/dev/null\n",
53 f_write_string("/etc/gshadow",
60 f_write_string("/etc/group",
71 static const char *hkfn
= "/etc/dropbear/dropbear_rsa_host_key";
73 mkdir("/etc/dropbear", 0700);
74 mkdir("/root/.ssh", 0700);
76 f_write_string("/root/.ssh/authorized_keys", nvram_safe_get("sshd_authkeys"), 0, 0700);
80 if (!nvram_get_file("sshd_hostkey", hkfn
, 2048)) {
81 eval("dropbearkey", "-t", "rsa", "-f", (char *)hkfn
);
82 if (nvram_set_file("sshd_hostkey", hkfn
, 2048)) {
93 argv
[2] = nvram_safe_get("sshd_port");
96 if (!nvram_get_int("sshd_pass")) argv
[argc
++] = "-s";
98 if (((p
= nvram_get("sshd_rwb")) != NULL
) && (*p
)) {
104 _eval(argv
, NULL
, 0, NULL
);
109 killall("dropbear", SIGTERM
);
112 void start_telnetd(void)
114 xstart("telnetd", "-p", nvram_safe_get("telnetd_port"));
117 void stop_telnetd(void)
119 killall("telnetd", SIGTERM
);