<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.0.9">
</HEAD>
<BODY>
>SELinux has an independent user identity model, which provides for more rigorous identity based access control than standard Unix.  e.g. you can change Unix user id, but not SELinux user id.<BR>
<BR>
<FONT COLOR="#0000ff">And that's a feature is it?</FONT><BR>
<BR>
>The reason there are separate databases is that there is not a direct<BR>
>mapping between Unix users and SELinux users.  <BR>
<BR>
<FONT COLOR="#0000ff">That's not a justification, it's a consequence of the fact that you are maintaining a separate database.  In other words, that's a <I>bad</I> thing, not a good thing.</FONT><BR>
<BR>
>Many users in /etc/passwd can be mapped to a single SELinux user for access control purposes (e.g. system_u).  <BR>
<BR>
<FONT COLOR="#0000ff">Sounds like /etc/group to me.  </FONT><BR>
<BR>
>There also needs to be a way to map the user to a set of roles, so a separate database is needed anyway.<BR>
<FONT COLOR="#0000ff"><BR>
Yes, a separate database is required here to extend the data stored in /etc/passwd. But it should be analogous to /etc/shadow (which also extends the data stored in /etc/passwd).  The important difference is that the "primary key" in /etc/shadow refers to the "primary key" in /etc/passwd.  Of course, without an RDBMS, referential integrity is not enforced, but violations are meaningless - an orphan record in /etc/shadow is simply ignored.<BR>
<BR>
SELinux keeps two separate databases with no relationship between primary keys.  <BR>
<BR>
And by the way, Russell mentioned that we have to consider NIS, LDAP, and other storage mechanisms.  Those storage mechanisms are <I>storage mechanisms</I>, not separate databases, meaning that if you maintain a user database in NIS and duplicate the information in an LDAP directory, you're simply storing <I>the same data</I> in two places.  <BR>
<BR>
The arrangement that SELinux uses is like keeping two different customer files and assigning two different customer ID numbers to the same customer - that's trouble.</FONT><BR>
<BR>
        -- Murphy
</BODY>
</HTML>