]>
git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/misc-progs/sambactrl.c
6 int main(int argc
, char**argv
)
8 char commandstring
[256];
13 // Check what command is asked
16 fprintf (stderr
, "Missing smbctrl command!\n");
20 if (argc
==2 && strcmp(argv
[1], "smbuserdisable")==0)
22 snprintf(commandstring
,STRING_SIZE
-1,"/usr/bin/smbpasswd -d %s",argv
[2]);
23 safe_system(commandstring
);
27 if (argc
==2 && strcmp(argv
[1], "smbuserenable")==0)
29 snprintf(commandstring
,STRING_SIZE
-1,"/usr/bin/smbpasswd -e %s",argv
[2]);
30 safe_system(commandstring
);
34 if (argc
==2 && strcmp(argv
[1], "smbuserdelete")==0)
36 snprintf(commandstring
,STRING_SIZE
-1,"/usr/bin/smbpasswd -x %s",argv
[2]);
37 safe_system(commandstring
);
41 if (argc
==2 && strcmp(argv
[1], "smbsafeconf")==0)
43 safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
47 if (argc
==2 && strcmp(argv
[1], "smbglobalreset")==0)
49 safe_system("/bin/cat /var/ipfire/samba/global.default /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
53 if (argc
==2 && strcmp(argv
[1], "smbsharesreset")==0)
55 safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares.default > /var/ipfire/samba/smb.conf");
59 if (argc
==2 && strcmp(argv
[1], "smbrestart")==0)
64 if (argc
==2 && strcmp(argv
[1], "smbstop")==0)
69 if (argc
==2 && strcmp(argv
[1], "smbstart")==0)
74 if (argc
==2 && strcmp(argv
[1], "smbuseradd")==0)
76 snprintf(commandstring
,STRING_SIZE
-1,"/usr/sbin/useradd -c 'Samba User' -d /opt/samba -g 2110 -p %s -s /bin/false %s",argv
[3],argv
[2]);
77 safe_system(commandstring
);
78 snprintf(commandstring
,STRING_SIZE
-1,"/bin/printf '%s\n%s\n' | /usr/local/bin/smbpasswd -as %s",argv
[3],argv
[3],argv
[2]);
79 safe_system(commandstring
);
83 if (argc
==2 && strcmp(argv
[1], "smbchangepw")==0)
85 snprintf(commandstring
,STRING_SIZE
-1,"/bin/printf '%s\n%s\n' | /usr/local/bin/smbpasswd -as %s",argv
[3],argv
[3],argv
[2]);
86 safe_system(commandstring
);
90 if (argc
==2 && strcmp(argv
[1], "readsmbpasswd")==0)
92 safe_system("/bin/chown root:nobody /var/ipfire/samba/private");
93 safe_system("/bin/chown root:nobody /var/ipfire/samba/private/smbpasswd");
94 safe_system("/bin/chmod 640 /var/ipfire/samba/private/smbpasswd");
95 safe_system("/bin/chmod 650 /var/ipfire/samba/private");
99 if (argc
==2 && strcmp(argv
[1], "locksmbpasswd")==0)
101 safe_system("/bin/chown root:root /var/ipfire/samba/private");
102 safe_system("/bin/chown root:root /var/ipfire/samba/private/smbpasswd");
103 safe_system("/bin/chmod 600 /var/ipfire/samba/private/smbpasswd");
104 safe_system("/bin/chmod 600 /var/ipfire/samba/private");