[Samba] Bulk smbcacls calls
nopower at suse.com
Wed Dec 11 02:44:44 MST 2013
On 29/11/13 10:05, Noel Power wrote:
>>> Failing that, I assume that much of the time taken is spent on
>>> authenticating the user/pw for each request. Would it be possible to
>>> write something that keeps the connection so that multiple requests can
>>> be made without reauthenticating (I'm not familiar with how
>>> LDAP/AD/Samba works)? I have looked at the source of smbcacls but
>>> nothing jumped out at me.
>> Noel (cc'ed) just finished a bunch of changes adding inheritance
>> propagation to smbcacls:
>> It doesn't do recursion on --get, but the new code could certainly be
>> leveraged to add this feature.
> Yes unfortunately support for '--get' in a recursive fashion isn't
> currently supported, it didn't quite fit with the inheritance
> propagation feature, but... David is correct in that the new code could
> definitely be leveraged to do that. However something like what you
> require I believe needs another new cmdline switch e.g. something -like
> maybe "-r|-recursive" . Also I wonder how the output of smbcacls
> should look for such an operation as the existing output doesn't
> actually mention the file/dir that is being processed.
>  in general I do believe a pure recursive option could be useful ( at
> least for --get, --chown, --chgrp )
if you are up to building from source you could try my repo
I've added there a '-r' switch.
With that version built from source you can use '-r' with the new
'--propagate-inheritance' switch e.g.
smbcalcs -r --propagate-inheritance --add|--modify|--set|--delete
you can additionally use '-r' with the following operations --get,
--chown & --chgrp
note: you can't use -r with ' --add|--modify|--set|--delete' alone, if
you want to use '-r' with (add/modify/delete...) you *must* additionally
I did some very very rough performance testing with a linux host running
kvm with a winserver 2012 guest
smbcalcs -r --get -Uusername%password //guestIP/share /testdir > /dev/null
returns in < 2 minutes ( testdir has 20,069 files in 2,842 directories )
More information about the samba