mirror of
https://github.com/samba-team/samba.git
synced 2025-03-08 04:58:40 +03:00
the function that was being used to set attributes is a core protocol function (SMBsetatr = 0x09), it does not appear to work on win98. As a temporary measure, when file times are to be set, this version opens the file and uses SMBsetattrE = 0x22 instead. (The other advantage of this function over the original one is that it supports setting access time as well as modification time.) The next step, the proper solution if it can be made to work, is to write functions that use TRANS2_SET_PATH_INFO instead. (This used to be commit bab0bf7f4f9d2a4b6fcee4429094349302bbeb33)
To create "smbsh" on Linux, just type "make". If you execute "smbsh" in *this* directory (so that it can find the required shared library), you'll find yourself in a new shell. You can then issue commands referencing the "/smb" pseudo-filesystem: ls /smb ls /smb/WORKGROUP_OR_DOMAIN ls /smb/SERVER ls /smb/SERVER/SHARE ls /smb/SERVER/SHARE/PATH Note that WORKGROUP_OR_DOMAIN is *not* used other than at that level. This is consistent with the smb:// URI definition. Usage: smbsh [-L <path to find smbwrapper.so>] [-p <library to load before smbwrapper.so>] [-a <library to load after smbwrapper.so>] [-d <debug value for libsmbclient>] [-n] (do not ask for username/password) [-W <workgroup>] [-U <username%password] [command] So to list the contents of \\MYDESK\C$ where a username (adventure) and password (xyzzy) are required, and with smbwrapper.so installed in /usr/share/samba, you could try: smbsh -L /usr/share/samba -U adventure%xyzzy ls '/smb/MYDESK/C$' (It's a good idea to get in the habit of surrounding windows paths in single quotes, since they often contain spaces and other characters that'll give you headaches when not escaped.) This smbsh seems to work quite well on Linux 2.4 and 2.6. The biggest problem it has is in tracking your current working directory. I haven't had the time to track that down and fix it. Derrell Lipman