On Wed, 20 Nov 2002, Ed Stoner wrote: > Microsoft Word 2000 with Service Pack 2 for Office. > Client OS is Windows 2000 Service Pack 2 > I've attached my smb.conf > > Actually, the problem was fixed by restarting the samba service. I feel > stupid that I didn't try it earlier. I didn't think it would make any > difference (samba is emulating windows behavior a little better than I'd > like :-). I can see the call to set_nt_acl in the debug logs now has the > correct permissions. I'm a little confused as to why restarting samba > would have this kind of strange effect. If you have any ideas on why I'd > love to hear them.
Good to see another happy customer. I will not speculate as to the cause. If it happens again then you will want to isolate the cause. Cheers, John T. > > On Wed, 20 Nov 2002, John H Terpstra wrote: > > > On Wed, 6 Nov 2002, Ed Stoner wrote: > > > > > I'm hoping someone has some insight into a problem I'm currenty having, > > > which is: > > > > > > No one is able to edit (in place) documents with Word 2000 on a samba > > > (2.2.6) disk share. A user can open word and save a document to the > > > share, but when they go to edit the document Word says "Word cannot > > > complete the save due to a file permission error". From Microsoft KB > > > Q211632 it appears that Word 2000 performs the following steps to Save an > > > Edited File: > > > > > > 1.) Create a temp file (Create ~wrdxxxx.tmp) > > > 2.) Write temp file (Save example data to ~wrdxxxx.tmp) > > > 3.) Delete original file (Delete EXAMPLE.DOC) > > > 4.) Move temp to target name (Move ~wrdxxxx.tmp to EXAMPLE.DOC) > > > > > > >From examining the samba debug log (attached) it does appear that this > > > happens. It also appears that somewhere in steps 1 and 2 above Word sends > > > a request to turn off the read,write,and execute bits for the owner of the > > > file. When you look at this filesystem after the attempted save the > > > original file does indeed have these bits cleared (i.e. the user has no > > > read,write,or execute permissions on the file), and that I think is why > > > the error is being generated. > > > > What update level (service pack) have you installed on your Word 2000 > > system? Please tell us what is the exact version information from clicking > > on Help/About in Word. > > > > Please check that your Word is up to date with all service updates from > > the MS Web site. > > > > Also, what is the client OS and it's update level? > > > > Also, please send your smb.conf to [EMAIL PROTECTED] and I'll check it over. > > > > - John T. > > > > > I've tried setting the 'create mask', 'security mask', 'force create > > > mode', and 'force security mode' parameters to no avail (I assumed that > > > setting 'force security mode' to 0700 would prevent a file from getting > > > rwx removed from the owner). I've also tried turning 'nt acl support' on > > > and off. I've attached my config file also. > > > > > > My questions are: > > > 1.) has anyone else seen this error? > > > 2.) if so is there a fix? > > > 3.) why does smbd/posix_acls.c:set_nt_acl allow chmod to 000? > > > > > > P.S. > > > This does not happen with the same client config connecting to either an > > > NT Share or a 2000 Share, in case anyone is curious (i.e. I don't think it > > > is a client thing) > > > > > > thanks > > > > > > ----------------- > > > Ed Stoner > > > Network Administrator > > > Woodland Hills School District > > > (412) 731-1300 x0109 > > > > > > > > -- John H Terpstra Email: [EMAIL PROTECTED]
# This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example # # Any line which starts with a ; (semi-colon) or a # (hash) # is a comment and is ignored. In this example we will use a # # for commentry and a ; for parts of the config file that you # may wish to enable # # NOTE: Whenever you modify this file you should run the command "testparm" # to check that you have not made any basic syntactic errors. # #======================= Global Settings ===================================== [global] # workgroup = NT-Domain-Name or Workgroup-Name workgroup = WHSD # server string is the equivalent of the NT Description field server string = Zeus Samba Server # This option is important for security. It allows you to restrict # connections to machines which are on your local network. The # following example restricts access to two C class networks and # the "loopback" interface. For more examples of the syntax see # the smb.conf man page ; hosts allow = 192.168.1. 192.168.2. 127. # if you want to automatically load your printer list rather # than setting them up individually then you'll need this printcap name = /etc/printcap ; load printers = yes # It should not be necessary to spell out the print system type unless # yours is non-standard. Currently supported print systems include: # bsd, sysv, plp, lprng, aix, hpux, qnx ; printing = bsd # Uncomment this if you want a guest account, you must add this to /etc/passwd # otherwise the user "nobody" is used ; guest account = pcguest # this tells Samba to use a separate log file for each machine # that connects log file = /var/log/samba/log.%m log level = 1 # Put a capping on the size of the log files (in Kb). max log size = 50 # Security mode. Most people will want user level security. See # security_level.txt for details. security = domain # Use password server option only with security = server password server = NEMESIS # Password Level allows matching of _n_ characters of the password for # all combinations of upper and lower case. ; password level = 8 ; username level = 8 # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes ; smb passwd file = /etc/samba/smbpasswd # The following are needed to allow password changing from Windows to # update the Linux sytsem password also. # NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above. # NOTE2: You do NOT need these to allow workstations to change only # the encrypted SMB passwords. They allow the Unix password # to be kept in sync with the SMB password. ; unix password sync = Yes ; passwd program = /usr/bin/passwd %u ; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* # Unix users can map to different SMB User names ; username map = /etc/samba/smbusers # Using the following line enables you to customise your configuration # on a per machine basis. The %m gets replaced with the netbios name # of the machine that is connecting ; include = /etc/samba/smb.conf.%m # Most people will find that this option gives better performance. # See speed.txt and the manual pages for details socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # Configure Samba to use multiple interfaces # If you have multiple network interfaces then you must list them # here. See the man page for details. ; interfaces = 192.168.12.2/24 192.168.13.2/24 # Configure remote browse list synchronisation here # request announcement to, or browse list sync from: # a specific host or from / to a whole subnet (see below) ; remote browse sync = 192.168.3.25 192.168.5.255 # Cause this host to announce itself to local subnets here ; remote announce = 192.168.1.255 192.168.2.44 # Browser Control Options: # set local master to no if you don't want Samba to become a master # browser on your network. Otherwise the normal election rules apply ; local master = no # OS Level determines the precedence of this server in master browser # elections. The default value should be reasonable ; os level = 33 # Domain Master specifies Samba to be the Domain Master Browser. This # allows Samba to collate browse lists between subnets. Don't use this # if you already have a Windows NT domain controller doing this job ; domain master = yes # Preferred Master causes Samba to force a local browser election on startup # and gives it a slightly higher chance of winning the election ; preferred master = yes # Use only if you have an NT server on your network that has been # configured at install time to be a primary domain controller. ; domain controller = <NT-Domain-Controller-SMBName> # Enable this if you want Samba to be a domain logon server for # Windows95 workstations. ; domain logons = yes # if you enable domain logons then you may want a per-machine or # per user logon script # run a specific logon batch file per workstation (machine) ; logon script = %m.bat # run a specific logon batch file per username ; logon script = %U.bat # Where to store roving profiles (only for Win95 and WinNT) # %L substitutes for this servers netbios name, %U is username # You must uncomment the [Profiles] share below ; logon path = \\%L\Profiles\%U # All NetBIOS names must be resolved to IP Addresses # 'Name Resolve Order' allows the named resolution mechanism to be specified # the default order is "host lmhosts wins bcast". "host" means use the unix # system gethostbyname() function call that will use either /etc/hosts OR # DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf # and the /etc/resolv.conf file. "host" therefore is system configuration # dependant. This parameter is most often of use to prevent DNS lookups # in order to resolve NetBIOS names to IP Addresses. Use with care! # The example below excludes use of name resolution for machines that are NOT # on the local network segment # - OR - are not deliberately to be known via lmhosts or via WINS. ; name resolve order = wins lmhosts bcast # Windows Internet Name Serving Support Section: # WINS Support - Tells the NMBD component of Samba to enable it's WINS Server ; wins support = yes # WINS Server - Tells the NMBD components of Samba to be a WINS Client # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both wins server = 10.1.1.5 # WINS Proxy - Tells Samba to answer name resolution queries on # behalf of a non WINS capable client, for this to work there must be # at least one WINS Server on the network. The default is NO. ; wins proxy = yes # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names # via DNS nslookups. The built-in default for versions 1.9.17 is yes, # this has been changed in version 1.9.18 to no. dns proxy = no # Case Preservation can be handy - system default is _no_ # NOTE: These can be set on a per share basis ; preserve case = no ; short preserve case = no # Default case is normally upper case for all DOS files ; default case = lower # Be very careful with case sensitivity - it can break things! ; case sensitive = no winbind separator = + winbind uid = 1000-10000 winbind gid = 1000-10000 winbind enum users = yes winbind enum groups = yes template homedir = /data/home/%U template shell = /bin/bash mangling method = hash2 ;nt smb support = no #============================ Share Definitions ============================== [homes] comment = Home Directories browseable = no writeable = yes # inherit permissions = yes # inherit acls = yes create mask = 0700 force create mode = 0700 security mask = 0000 force security mode = 0700 directory mask = 0700 force directory mode = 0700 directory security mask = 0000 nt acl support = yes hide dot files = yes [data] comment = Data on Zeus path = /data writeable = yes valid users = +ntadmin admin users = +ntadmin browseable = no [olddata] comment = Yesterday's Data path = /olddata writeable = no valid users = +ntadmin admin users = +ntadmin browseable = no # Un-comment the following and create the netlogon directory for Domain Logons ; [netlogon] ; comment = Network Logon Service ; path = /home/netlogon ; guest ok = yes ; writable = no ; share modes = no # Un-comment the following to provide a specific roving profile share # the default is to use the user's home directory ;[Profiles] ; path = /home/profiles ; browseable = no ; guest ok = yes # NOTE: If you have a BSD-style print system there is no need to # specifically define each individual printer ;[printers] ; comment = All Printers ; path = /var/spool/samba ; browseable = no # Set public = yes to allow user 'guest account' to print ; guest ok = no ; writable = no ; printable = yes # This one is useful for people to share files ;[tmp] ; comment = Temporary file space ; path = /tmp ; read only = no ; public = yes # A publicly accessible directory, but read only, except for people in # the "staff" group ;[public] ; comment = Public Stuff ; path = /home/samba ; public = yes ; read only = yes ; write list = @staff # Other examples. # # A private printer, usable only by fred. Spool data will be placed in fred's # home directory. Note that fred must have write access to the spool directory, # wherever it is. ;[fredsprn] ; comment = Fred's Printer ; valid users = fred ; path = /homes/fred ; printer = freds_printer ; public = no ; writable = no ; printable = yes # A private directory, usable only by fred. Note that fred requires write # access to the directory. ;[fredsdir] ; comment = Fred's Service ; path = /usr/somewhere/private ; valid users = fred ; public = no ; writable = yes ; printable = no # a service which has a different directory for each machine that connects # this allows you to tailor configurations to incoming machines. You could # also use the %u option to tailor it by user name. # The %m gets replaced with the machine name that is connecting. ;[pchome] ; comment = PC Directories ; path = /usr/pc/%m ; public = no ; writable = yes # A publicly accessible directory, read/write to all users. Note that all files # created in the directory by users will be owned by the default user, so # any user with access can delete any other user's files. Obviously this # directory must be writable by the default user. Another user could of course # be specified, in which case all files would be owned by that user instead. ;[public] ; path = /usr/somewhere/else/public ; public = yes ; only guest = yes ; writable = yes ; printable = no # The following two entries demonstrate how to share a directory so that two # users can place files there that will be owned by the specific users. In this # setup, the directory should be writable by both users and should have the # sticky bit set on it to prevent abuse. Obviously this could be extended to # as many users as required. ;[myshare] ; comment = Mary's and Fred's stuff ; path = /usr/somewhere/shared ; valid users = mary fred ; public = no ; writable = yes ; printable = no ; create mask = 0765