1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00
samba-mirror/source3/smbwrapper
Tim Potter 585d0efbc6 Got medieval on another pointless extern. Removed extern struct ipzero
and replaced with two functions:

	void zero_ip(struct in_adder *ip);
	BOOL is_zero_ip(struct in_addr ip);
(This used to be commit 778f5f77a6)
2001-11-26 03:11:44 +00:00
..
.cvsignore removed setenv(), replaced with smbw_setenv() 1998-10-20 06:45:18 +00:00
init.c the guts of the smbwrapper code. I may change the layout of this at 1998-10-02 12:37:31 +00:00
PORTING added a document on how to port smbwrapper to a new system 1998-10-07 04:24:42 +00:00
README added command line options to smbsh 1998-10-19 02:49:48 +00:00
realcalls.c we need realcalls.h in realcalls.c 1998-10-07 10:58:12 +00:00
realcalls.h first pass at updating head branch to be to be the same as the SAMBA_2_0 branch 1999-12-13 13:27:58 +00:00
shared.c remove unused function in mangle.c 2001-10-11 12:33:26 +00:00
smbsh.c Store some path names in global variables initialized to configure 2001-11-19 02:49:53 +00:00
smbsh.in some changes for OSF1 support in smbwrapper (just preliminary changes, 1998-10-07 04:44:31 +00:00
smbw_cache.c move to SAFE_FREE() 2001-09-17 11:25:41 +00:00
smbw_dir.c remove unused function in mangle.c 2001-10-11 12:33:26 +00:00
smbw_stat.c Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header. 2001-10-02 04:29:50 +00:00
smbw.c Got medieval on another pointless extern. Removed extern struct ipzero 2001-11-26 03:11:44 +00:00
smbw.h Added a authentication hook to smbwrapper which allows a (username, 2000-11-01 04:31:19 +00:00
wrapped.c compile fix 2001-08-23 18:12:47 +00:00

This is a prelodable shared library that provides SMB client services
for existing executables. Using this you can simulate a smb
filesystem.

*** This is code under development. Some things don't work yet ***

Currently this code has been tested on:

- Linux 2.0 with glibc2 (RH5.1)
- Linux 2.1 with glibc2
- Solaris 2.5.1 with gcc
- Solaris 2.6 with gcc
- SunOS 4.1.3 with gcc
- IRIX 6.4 with cc
- OSF1 with gcc


It probably won't run on other systems without some porting. If you
have a different system then see the file PORTING.

To use it you need to do this:

1) build smbwrapper.so using the command "make smbwrapper"
3) run smbsh

You will be asked for a username and password. After that you will be
returned to a shell prompt. It is actually a subshell running with
smbwrapper enabled. 

Now try to access /smb/SERVER for some SMB server name and see what
happens. If you use the -W option to set your workgroup or have
workgroup set in your smb.conf then listing /smb/ should list all SMB
servers in your workgroup.


OPTIONS
-------

-U username
   specify the username and optional password (as user%password)

-d debug level
 This is an integer that controls the internal debug level of smbw. It
 defaults to 0, which means no debug info.

-l logfile
 The place where smbw debug logs are put. If this is not set then
 stderr is used.

-P prefix
 The root of the SMB filesystem. This defaults to /smb/ but you can
 set it to any name you like.

-W workgroup
 This is the workgroup used for browsing (ie. listing machines in the
 /smb/ directory). It defaults to the one set in smb.conf.

-R resolve order
 This allows you to override the setting of the name resolve order
 from smb.conf


ATTRIBUTE MAPPING
-----------------

smbwrapper does an inverse attribute maping to what Samba does. This
means that the archive bit appears as the user execute bit, the system
bit appears as the group execute bit and the hidden bit appears as the
other execute bit. You can control these with chmod. The mapping can
be enabled an disabled using the normal smb.conf controls (ie. "map
archive", "map system" and "map hidden").

Read-only files appear as non-writeable by everyone. Writeable files
appear as writeable by the current user.


WHAT WORKS
----------

Things that I have tried and do seem to work include:

  emacs, tar, ls, cmp, cp, rsync, du, cat, rm, mv, less, more, wc, head,
  tail, bash, tcsh, mkdir, rmdir, vim, xedit, diff

things that I know don't work:
 
 anything executing from the share
 anything that uses mmap
 redirection within shells to smbsh files

If you want to help with the development of this code then join the
samba-technical mailing list.