SMB2WWW consists of a few perl-scripts that interact with smbclient. It tries to imitate the client side of a Network Neighbourhood.
2. Why do I get all this trailing garbage at the end of a file ?
SMB2WWW isn't capable of overriding the settings in smb.conf. Comment out the 'debug level =' line. This has been fixed in samba 1.9.18p4.
3. Why doesn't SMB2WWW work with hostnames that contain a . ?
Because samba uses . as a separation between a hostname and a network name. This is not yet fixed in samba as of version 1.9.18p4.
4. What about security ?
SMB2WWW does next to nothing about security. In my opinion, having security at all for CGI is not a job of the CGI itself, but for the web server. So, if you're using apache, put something like the following in your access.conf:
<Location /cgi-bin/samba/> <Limit GET POST> Require local AuthName smb2www AuthType basic AuthUserFile /etc/smb2www/smb2www-users AuthGroupFile /dev/null Require valid-user Satisfy Any </Limit> </Location>See the FAQ of your web server for more information. To prevent snooping, start thinking about web servers that support SSL.
5. What do I need to run SMB2WWW ?
Nothing! Debian does all the installation for you. You may want to modify some of the web server configurations to suit yourself.
6. What's this auth=FretyBNFyGDx12 gobbledegook ?
In order not to entirely give away your username/passowrd in the URL, SMB2WWW XORs the username/password pair you entered with the key you give in smb2www.conf. It puts a Base64 encoding on top of that. So what you see is essentially a Base64-encoded, XOR'd user/pass string. Of course, it's far away from being bombproof, and easily reverse-engineered. But SMB2WWW wasn't made for security, that's the thing _you_ have to do. The first person to post on bugtraq about this is going to get his ass kicked by me. In person. If you have a better idea about encryption, use the source. It's your network, not mine.
7. Hey ! It doesn't work with a ; in the [insert thingy here] !
That's right. Until I think of a better way to ensure that nobody abuses SMB2WWW to gain unauthorized access to your server, all queries are chopped at the first occurance of a ;.
8. I'd like to build a perl-script that interacts with smbclient.
For now, you can use the smb2www module for that. Take a look at the GetSMB* routines for more information. I'll build a separate library in Copious Spare Time.
9. How fast is it ?
Fast enough. :-) On a 10 mbit network, I managed to get 500K/sec from SMB2WWW, which is pretty fast considering the webserver is getting the information at the same speed it is giving it to you.
10. That's nice. I installed it, now where can I find it ?
If you used the Debian default settings, and have changed your webserver config accordingly, SMB2WWW can be found here. You might want to bookmark it.
11. I don't have a webserver.
Too bad. CGI doesn't work without one.The solution is so obvious that I won't mention it here.
12. I've got this really weird Network Neigbourhood, and SMB2WWW doesn't seem to work.
So far, I've had a few reports about really odd network neighbourhoods. SMB2WWW is capable of handling nearly any crappy Network Neighbourhood it finds (it was developed on a 1400+ hosts Network Neighbourhood), but if it's really _really_ broken, it won't know how to handle it. If you have such a network, and Windows still has ways to figure it out, please report it to me.
13. I don't like the colours/background/icons/...
Change them ! Just put your new images in the images directory, and change your smb2www.conf accordingly. You can change the text colors there, too. If you've got a new look for SMB2WWW that you really like, mail it to me !
14. SMB2WWW doesn't speak Klingon. I want Klingon.
If you want support for a language that SMB2WWW doesn't know yet, go ahead and write it ! You can use english.lang and english_help.lang as an example. Again, if you've got support for a language that is not in SMB2WWW yet, mail it to me !
15. So, I can send popups with SMB2WWW. Now how do I receive these messages with Samba ?
For now, you can add the following to your smb.conf:
message command = sh -c 'echo -e "---\nDate: %T\nFrom: %f@%m\nTo: %t\n" >> /var/log/sambamsg; cat %s >> /var/log/sambamsg; echo >> /var/log/sambamsg; rm %s' &
Now, all messages you receive will wind up in the file /var/log/sambamsg. At the moment, SMB2WWW doesn't do anything with this file yet, as I'm still thinking of a way to put it into the package in a nice way. Should you have a great idea on how to do this, please tell me.
16. Is this only for Linux ?
No ! If you've got Samba, Perl and a webserver, you can probably run SMB2WWW. It's been built and tested using Solaris and Linux.