[Freeipa-devel] Sudo Schema Bug/Feature

Rob Crittenden rcritten at redhat.com
Mon Oct 4 21:02:27 UTC 2010


Dmitri Pal wrote:
> Dmitri Pal wrote:
>> Dmitri Pal wrote:
>>
>>>> How do we adjust FreeIPA such that it ensures Deny-IPASudoRules precede any Allow-IPASudoRules ?
>>>>
>>>>
>>>>
>>> So it looks like current schema would not fly well with SUDO due to SUDO
>>> bug/feature. SUDO will match just any first rule that satisfies the
>>> user-hpost-command combination but we can't guarantee that rules come in
>>> the same order. So there is a possibility that allow rule will come
>>> before deny rule in our case and will be matched.
>>> It is unfortunate and should be fixed by SUDO. In a meantime we need to
>>> alter the schema to be able to express allowed and not allowed commands
>>> in one rule.
>>> It will be up to the admin to know the limitations of SUDO based on the
>>> documentation we provide and construct the rules in a non contradicting
>>> way. We might be able to add some nice checks in future.
>>>
>>> So here is current schema:
>>>
>>> objectClasses: (2.16.840.1.113730.3.8.8.TBD
>>>                  NAME 'ipaSudoRule'
>>>                  SUP ipaAssociation
>>>                  STRUCTURAL
>>>                  MUST accessRuleType
>>>                  MAY ( externalUser $
>>>                        externalHost $ hostMask $
>>>                        memberCmd $ cmdCategory $
>>>                        ipaSudoOpt $
>>>                        ipaSudoRunAs $ ipaSudoRunAsExtUser $ ipaSudoRunAsUserCategory $
>>>                        ipaSudoRunAsGroup $ ipaSudoRunAsExtGroup $ ipaSudoRunAsGroupCategory )
>>>                  X-ORIGIN 'IPA v2' )
>>>
>>>
>>> We will :
>>> * Remove accessRuleType
>>> * Add memberNotCmd same a memberCmd
>>>
>>> attributeTypes: (2.16.840.1.113730.3.8.7.TBD
>>>                   NAME 'memberNotCmd'
>>>                   DESC 'Reference to a command or group of the commands that is not allowed.'
>>>                   SUP distinguishedName
>>>                   EQUALITY distinguishedNameMatch
>>>                   ORDERING distinguishedNameMatch
>>>                   SUBSTR distinguishedNameMatch
>>>                   SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
>>>                   X-ORIGIN 'IPA v2' )
>>>
>>>
>>> The logic then will be:
>>> * If no memberCmd, memberNotCmd or cmdCategory attribute is specified -
>>> no command is allowed
>>> * If cmdCategory is specified (only value is "all") all other attributes
>>> are ignored and all commands are allowed
>>> * If cmdCategory is not specified
>>>       * If memberCmd is specified it defines commands or groups of the
>>> commands that are allowed
>>>       * If memberNotCmd is specified it defines commands or groups of the
>>> commands that are not allowed
>>>       Both attributes are allowed at the same time defining allowed and
>>> not allowed commands within the same rule.
>>>
>>> This does not solve the problem fully but at least gets us into the same
>>> boat as current SUDO schema.
>>>
>>> Comments welcome!
>>> If there are no objections by end of Friday I will craft a patch over
>>> the weekend.
>>>
>>> Thanks
>>> Dmitri
>>>
>>>
>>>
>>>
>>
>> I updated the wiki and implemented the change.
>> Patch is attached.
>>
>>
>>
>>
>
> Rebased patch attached.

ack, pushed to master.

JR, can you fix up the sudo plugins to match this new schema?

thanks

rob




More information about the Freeipa-devel mailing list