[et-mgmt-tools] Cobbler and the ownership module, question about policies?

Michael DeHaan mdehaan at redhat.com
Mon Mar 31 21:35:51 UTC 2008


So,

Warning -- technical email :)

I have a pretty good ownership module going for Cobbler now 
(https://fedorahosted.org/cobbler/wiki/CustomizableAuthorization), that 
allows you to say that objects are owned by certain users and/or groups, 
and prevents users not in those groups (except for an admin group) to be 
able to edit those objects.   This is designed for very large 
organizations that may want lab admins to control certain profiles, but 
not all of them (for instance, a build lab versus a test lab versus a 
production datacenter, etc).
In this implementation, users in the admin group have access to all 
objects always, and by default all objects are created with no editing 
restrictions unless the creator decides to lock them down.      The 
command line has none of these restrictions so you can always 
recover/reconfigure things with root if you find you've somehow locked 
yourself out.   (It's also coded up so you can't use the WebUI to remove 
your own access from an object).

There are a couple of policy questions for this dealing with some of the 
corner cases.

(A) What to do about kickstart editing in the WebUI.   This is the "fun" 
corner case to figure out.

The WebUI contains a very basic kickstart template editor (it's just a 
text field for now).  

Possible Answer1? I think the solution is that a kickstart template file 
can be edited if the user editing it is allowed to edit ALL 
profiles/systems making use of it.  This is a bit of a catch 22 as it 
would be possible to create a system using a template file, just for the 
purpose of making that user not be able to edit it.  This shouldn't 
happen but is technically possible. 

Possible Answer2 -- If you're not in the admin group, you can't edit 
kickstart template files at all.

Possible Answer3 -- Remove kickstart editing from the WebUI, and 
encourage users to create kickstart templates where they have filesystem 
access (i..e their home directories)

----

(B) What do to about "orphanage".

If UserA owns ProfileA, and UserB owns SystemB, which depends on 
ProfileB, what happens if UserA wants to delete ProfileA?

Answer?   The profile cannot be deleted.

If UserA owns ProfileA, and UserB owns SubprofileB, what happens when 
UserA wants to delete ProfileA?

Answer?   I think the answer is Subprofile B is promoted to a full 
profile with all of the inherited fields set to the values of Profile A.
However this is complicated and confusing so "No deletion allowed" may 
be the better route.

---

(C) FYI...

Everyone is allowed to run "cobbler sync" if they can authenticate.  I 
don't think this should be a problem.

Also, if you're in, you can read everything, you just might not be able 
to /write/ everything.   This also should not be a problem as provisioning
data is basically public if you want to use it in a Fully Automated 
Context anyway.

Currently settings, modules.conf, and users.conf can't be edited through 
the WebUI as that's a really good way to lock yourself out of the WebUI
altogether :)

---

Any thoughts on the above from those who have a vested interest in 
controlling access to cobbler objects through the WebUI?
Remember this is all off by default and is only there if you want it -- 
but if you want it, I want to make sure this fits your organizational needs.

--Michael




More information about the et-mgmt-tools mailing list