} else if (strcmp(argv[1], "smbsafeconf") == 0) {
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
- } else if (strcmp(argv[1], "smbsafeconfcups") == 0) {
- safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares /var/ipfire/samba/printer > /var/ipfire/samba/smb.conf");
-
} else if (strcmp(argv[1], "smbsafeconfpdc") == 0) {
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/pdc /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
- } else if (strcmp(argv[1], "smbsafeconfpdccups") == 0) {
- safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/pdc /var/ipfire/samba/shares /var/ipfire/samba/printer > /var/ipfire/samba/smb.conf");
-
- } else if (strcmp(argv[1], "smbglobalreset") == 0) {
- safe_system("/bin/cat /var/ipfire/samba/default.global /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
- safe_system("/bin/cat /var/ipfire/samba/default.settings > /var/ipfire/samba/settings");
- safe_system("/bin/cat /var/ipfire/samba/default.global > /var/ipfire/samba/global");
- safe_system("/bin/cat /var/ipfire/samba/default.pdc > /var/ipfire/samba/pdc");
-
- } else if (strcmp(argv[1], "smbsharesreset") == 0) {
- safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/default.shares > /var/ipfire/samba/smb.conf");
- safe_system("/bin/cat /var/ipfire/samba/default.shares > /var/ipfire/samba/shares");
-
- } else if (strcmp(argv[1], "smbprinterreset") == 0) {
- safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares /var/default.printer > /var/ipfire/samba/smb.conf");
- safe_system("/bin/cat /var/ipfire/samba/default.printer > /var/ipfire/samba/printer");
-
} else if (strcmp(argv[1], "smbstop") == 0) {
safe_system("/etc/rc.d/init.d/samba stop >/dev/null");
safe_system("/usr/local/bin/sambactrl disable");
snprintf(command, BUFFER_SIZE-1, "/usr/bin/printf '%s\n%s\n' | /usr/bin/smbpasswd -as %s >/dev/null", argv[3], argv[3], argv[2]);
safe_system(command);
- } else if (strcmp(argv[1], "smbpcadd") == 0) {
- snprintf(command, BUFFER_SIZE-1, "/usr/sbin/groupadd sambawks >/dev/null");
- safe_system(command);
-
- snprintf(command, BUFFER_SIZE-1, "/usr/sbin/useradd -c 'Samba Workstation' -g %s -s %s %s >/dev/null", argv[3], argv[4], argv[2]);
- safe_system(command);
-
- snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -a -m %s >/dev/null", argv[2]);
- safe_system(command);
-
} else if (strcmp(argv[1], "smbchangepw") == 0) {
snprintf(command, BUFFER_SIZE-1, "echo %s:%s | chpasswd", argv[2], argv[3]);
safe_system(command);
} else if (strcmp(argv[1], "disable") == 0) {
safe_system("unlink /var/ipfire/samba/enable");
safe_system("rm -rf /etc/rc.d/rc*.d/*samba");
+
+ } else if (strcmp(argv[1], "join") == 0) {
+ if (argc == 4) {
+ snprintf(command, BUFFER_SIZE - 1, "/usr/bin/net join -U \"%s%%%s\"",
+ argv[2], argv[3]);
+ return safe_system(command);
+ } else {
+ fprintf(stderr, "Wrong number of arguments. Need username and password.\n");
+ return 1;
+ }
}
return 0;