[Samba] krb5cc cache upon login. Possible?

steve steve at steve-ss.com
Sat Apr 13 09:24:42 MDT 2013


On 04/13/2013 05:13 PM, Rowland Penny wrote:
> On 13/04/13 15:43, steve wrote:
>> On 04/13/2013 03:41 PM, Rowland Penny wrote:
>>> On 13/04/13 14:12, steve wrote:
>>>> On 04/13/2013 11:26 AM, Rowland Penny wrote:
>>>>> On 12/04/13 22:31, steve wrote:
>>>>>> On 04/12/2013 06:15 PM, Rowland Penny wrote:
>>>>>>> On 12/04/13 17:01, steve wrote:
>>>>>>>> openSUSE 12.3 clients joined to a Samba4 Domain
>>>>>>>>
>>>>>>>> Hi everyone
>>>>>>>>
>>>>>>>> We are using the cifs multiuser option with sec=krb5. This 
>>>>>>>> requires the user to have a ticket cache under /tmp
>>>>>>>> I know we can get that by using kinit, but I hear rumours that 
>>>>>>>> pam can do it upon successful authentication.
>>>>>>>>
>>>>>>>> Can anyone point me in the right direction?
>>>>>>>> Cheers,
>>>>>>>> Steve
>>>>>>> Hi Steve, libpam-script, you need three scripts an auth script 
>>>>>>> to get the ticket cache, then a script to do something with it 
>>>>>>> when the user logs in and another to do something when they log 
>>>>>>> out, I seem to have this working. I tried libpam-mount, but it 
>>>>>>> had a nasty habit of not removing the mount on log off.
>>>>>>>
>>>>>>> Rowland
>>>>>>>
>>>>>> Hi Rowland
>>>>>> I may have some good news: with recent versions of pam_krb5 and 
>>>>>> cifs it shouldn't be necessary to do anything. You just get the 
>>>>>> cache when you go to the share. If you can get that far of 
>>>>>> course. The reason for our failure was:
>>>>>> <feel thick>
>>>>>> common-auth has: auth [success=2 default=ignore] pam_krb5.so 
>>>>>> minimum_uid=1000000
>>>>>> Our test user was 20000
>>>>>> </feel thick>
>>>>>>
>>>>>> So, users in the normal 3000000+ AD range get there fine:)
>>>>>> Cheers,
>>>>>> Steve
>>>>>>
>>>>>
>>>> Hi Rowland
>>>>> Hi Steve, ok I tried libpam-krb5 and whilst it gets the user 
>>>>> logged in, in my instance it did not mount any shares.
>>>> Ah, no. We use the automounter to mount directories on demand, 
>>>> either the user's home folder at login or other shares when the 
>>>> user attempts to enter them. With a lot of users, autofs is great 
>>>> because it mounts only what is requested, not the whole lot.
>>>>> You are also using nss-ldapd but I am using sssd instead, this 
>>>>> also gets the cache but I was putting it somewhere else, so I have 
>>>>> changed sssd to put the cache back into its default location /tmp 
>>>>> , turned off pam_krb5 and the shares now get mounted again.
>>>> Actually I think it's the cifs-utils which create the cache as it's 
>>>> needed because we tested it without the automounter running: the 
>>>> user can still log in but he does not get the cache until he 
>>>> attempts to go into a cifs mounted share. Maybe the cifs gurus 
>>>> could tell us whether it is pam or cifs which creates the cache?
>>>>>
>>>>> There is possibly another difference between our setups, I mount 
>>>>> the shares at login and I think that you mount them after login, 
>>>>> is this correct? also how do you unmount the shares after the user 
>>>>> has logged of?
>>>>>
>>>>> Rowland
>>>> Yes, that's correct. The automounter mounts then as and when they 
>>>> are requested.
>>>>
>>>> Question: is sssd instead of nss-ldapd or instead of pam. Or both? 
>>>> IOW, does it pull stuff from ldap? Maybe it does both. Although we 
>>>> share the relief of having got rid of winbind from the equation, 
>>>> we're always looking for alternatives to our ldapd setup.
>>>> Cheers, Steve
>>>>
>>> Hi Steve, sssd is instead of nss-ldapd but you still need pam, at 
>>> the moment I am using it to pull from ldap but they are working on 
>>> an ad backend. I tried the ad backend on both the server and a 
>>> client and whilst it seemed to work, I found that users on a client 
>>> couldn't write to their own directories.
>>>
>>> To use sssd, you set the S4 server as normal, with rfc2307, then on 
>>> the client, set up samba without all the winbind settings and edit 
>>> one conf file, thats it, no extra keytabs, users etc.
>>>
>>> I can confirm that if you add a user to Domain Admins and mount the 
>>> share with cifs, the user gets the same uidNumber as the 
>>> Administrators group but only when they write to the share, at any 
>>> other time they have the same uidNumber that is in the users ldap. 
>>> It is clearly a bug, but whose, Samba's or cifs.
>>>
>>> whilst writing this I am beginning to wonder if the problem I had 
>>> with the sssd ad backend is related?
>>>
>>> Rowland
>>>
>>>
>> Hi Rowland
>> Thanks for the sssd info.
>>
>> I think what you're saying is what is confirmed by the cifs guys in 
>> my recent thread over on the cifs list:
>> http://article.gmane.org/gmane.linux.kernel.cifs/8088
>>
>> <quote>
>> So, for the record, to pull uid:gid from AD and_not_  idmap:
>> [global] in smb.conf needs this syntax:
>> idmap_ldb:use rfc2307 = Yes
>>
>> Personally, I think that all uid:gid should come from AD by default.
>>
>> Note that it's not necessarily wrong for them to be mapped
>> inconsistently -- it just looks weird from the client. When you use
>> "multiuser" then it also turns off client-side permission checking and
>> leaves it up to the server.
>>
>> If you were to change the ownership on the directory to 3000019 on the
>> server, then everything will likely also work correctly. It's just that
>> stat() calls would show the ownership as something else on the client.
>>
>> </quote>
>>
>> Anything which makes the idmap nightmare simpler: if the cifs 
>> multiuser option takes the client out of the equation then that 
>> narrows down debugging.
>> Steve
>>
> If/when sssd get the ad backend working it will be better still, no 
> winbind and everything pulled from AD.
>
> Rowland
>
Hi Rowland
Good luck with the sssd and please keep us posted.
Steve




More information about the samba mailing list