[Zope-dev] Security-Problem
Shane Hathaway
shane@zope.com
Wed, 19 Feb 2003 10:01:29 -0500
Steve Alexander wrote:
>
> Shane Hathaway <shane@zope.com> wrote:
>
>>> Do you not want foo to have the Manager role?
>>
>
> Andre Schubert wrote:
>
>> No, because he is no longer in our company.
>
>
> Shane Hathaway <shane@zope.com> wrote:
>
>>> I think you're asking for a "find + chown" utility, right? I don't
>>> know of one, but it sure would be nice to have. :-)
>>
>
> Andre Schubert wrote:
>
>> It would be very nice to have such a tool :)
>>
>> BTW: Thanks for the quick answers, you help me to understand the problem.
>> I take the ownership of all objects where foo was the owner
>> and the problems should go away :)
>
>
> Andre,
>
> Don't treat this so lightly! When you take ownership of objects where
> foo is the owner, you are telling Zope that you take responsibility for
> those objects.
>
> For example, let's say foo had written a python script for removing all
> of her files older than one day.
>
> Here's some pseudocode:
>
> For all files older than one day:
> try:
> remove the file
> except PermissionError:
> pass
>
> This will work, provided foo has rights to delete only foo's files.
> If you take ownership of such a script, and you run it, then it will
> very different effects.
>
> Also, if you are a Manager (or in another privaleged role), and you take
> ownership of such a script, you may be allowing others to delete their
> own files when they run that script, whereas before nothing much would
> have happened.
To clarify, those users still need to have the privilege of deleting
those files. Executable ownership only reduces privileges.
> In 99% of cases, none of this will be a problem. However, you should
> take care when taking ownership of objects, especially objects that
> represent code such as python scripts and dtml methods and page templates.
I feel like Zope doesn't present the concept of executable ownership
properly to the user. I've run into this issue myself--the lifetime of
executables frequently extends beyond the life of the associated
username. You never know when deleting a user or removing user roles
will break code throughout the site. Like Andre, all I wanted to do was
restore the privileges the code had before.
So for Zope 3 I've pondered some way of separating executables from
usernames, while retaining the properties we have today. It seems like
executables should rely on a different service for determining
executable privileges than the user database.
Shane