[Samba] Cannot delete files from samba share
Neil.Macoustra at MandG.co.uk
Neil.Macoustra at MandG.co.uk
Wed May 31 13:06:53 GMT 2006
Hi all,
Following an upgrade from samba 2.2.8a to 3.0.22 we have been unable to
delete files on a samba share using an XP client. We were previously able
to delete these files when using 2.2.8a.
The problem occurs when we have a particular sub-set of permissions.
Directory permissions on UNIX are set to 775 and ownerhips to usera :
group1. This should mean that either usera or anyone who belongs to
group1 should be able to delete any file within the directory
irrespective of what the file permissions and ownerships are. From UNIX
this is the case. Using an XP client on samba 2.2.8a this is the case. On
samba 3.0.22 this is not the case.
We have an application which writes files into the top level directory of
the samba directory with permissions 544.The ownerships of the file are
userb (i.e. different from the directory owner). group1 (i.e. the same as
the directory). If a third user, userc who is a member of group1 (there
is a force group directive on the share as well) comes along and attempts
to delete the file through the samba share, the delete fails.
Experimentation has shown the delete works if the file is writable by the
user (e.g 744 cf 544) or the file is owned by the user trying to delete
it.
We have upgraded only a few of our servers to 3.0.22 and we have been
able to reproduce the problem. I have attached a script which run as
root on UNIX sets up a test share and appropriated file/dir permissions.
Other details about are installation are given below
UNIX OS: Solaris 8, Solaris 9
PDC: Windows 2003
If anyone has any suggestions as to how this issue can be resolved, I
would be grateful to hear from them
cheers
Neil
#!/bin/ksh
# TEST_DIR = UNIX directory being shared out ( The 'samba dir')
TEST_DIR=/smb_debug
# TEST_FILE = file used to demonstrate the problem
export TEST_FILE=${TEST_DIR}/test
# SMB_CONF = path to smb.conf
SMB_CONF=/path/to/your/smb.conf
# SHARENAME = the name for the samba share
SHARENAME=neil
# GROUP = the group ownership on the 'samba dir'. Membership of this
group
# should permit files to be deleted from this directory.
GROUP=group1
# USER1 = the username attempting to delete files from the samba share.
They
# must belong to ${GROUP}
USER1=usera
# USER2 = The user ownership on the 'samba dir'
USER2=userb
# USER3 = The user ownership on ${TEST_FILE}
USER3=userc
# On UNIX, make the directory shared out by samba if it does not exist
[[ ! -d ${TEST_DIR} ]] && mkdir ${TEST_DIR}
# Create the samba share if required
egrep \\[${SHARENAME}\\] ${SMB_CONF} >&- 2>&- || {
cat <<_EOT1__ >> ${SMB_CONF}
[${SHARENAME}]
path = ${TEST_DIR}
comment = "Test share for permissions issue"
valid users = @${GROUP}
read only = no
create mask = 755
force group = ${GROUP}
_EOT1__
}
# Make the 'samba directory' owned by an account other than that which
deletes
# the file. Make the group ownership ${GROUP}. Make the permissions such
that
# members of ${GROUP} can delete (and create) files within ${TEST_DIR}.
chown ${USER2}:${GROUP} ${TEST_DIR}
chmod 775 ${TEST_DIR}
# Create the file we want to delete
touch ${TEST_FILE}
# Set file ownerships & perms so it is not writable
chmod 544 ${TEST_FILE}
chown ${USER3}:${GROUP} ${TEST_FILE}
# Show the permissions
echo "Initial permissions are as follows\n"
ls -ld ${TEST_DIR} ${TEST_FILE}
# As $USER1 show that we can delete the file from UNIX
echo "\n Deleting ${TEST_FILE}"
su - ${USER1} -c "rm -f ${TEST_FILE}" >&- 2>&-
if [[ ! -f ${TEST_FILE} ]];then
echo "Test file deleted\n"
else
echo "Failed to delete test file\n"
fi
# Re-create the file again
touch ${TEST_FILE}
chmod 544 ${TEST_FILE}
chown ${USER3}:${GROUP} ${TEST_FILE}
# Show the permissions
echo "Permissions following file re-creation are as follows\n"
ls -ld ${TEST_DIR} ${TEST_FILE}
echo "\nNow attempt to delete the file using a windows client"
The information contained in this message may be CONFIDENTIAL and is intended for the addressee only. Any unauthorised use, dissemination of the information, or copying of this message is prohibited. If you are not the addressee, please notify the sender immediately by return e-mail and delete this message. Although this e-mail and any attachments are believed to be free of any virus, or other defect which might affect any computer or system into which they are received and opened, it is the responsibility of the recipient to ensure that they are virus free and no responsibility is accepted by M&G for any loss or damage from receipt or use thereof.
Please note that all e-mail messages are subject to interception for lawful business purposes.
More information about the samba
mailing list