<!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>
&gt;SELinux has an independent user identity model, which provides for more rigorous identity based access control than standard Unix.&nbsp; 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>
&gt;The reason there are separate databases is that there is not a direct<BR>
&gt;mapping between Unix users and SELinux users.&nbsp; <BR>
<BR>
<FONT COLOR="#0000ff">That's not a justification, it's a consequence of the fact that you are maintaining a separate database.&nbsp; In other words, that's a <I>bad</I> thing, not a good thing.</FONT><BR>
<BR>
&gt;Many users in /etc/passwd can be mapped to a single SELinux user for access control purposes (e.g. system_u).&nbsp; <BR>
<BR>
<FONT COLOR="#0000ff">Sounds like /etc/group to me.&nbsp; </FONT><BR>
<BR>
&gt;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).&nbsp; The important difference is that the &quot;primary key&quot; in /etc/shadow refers to the &quot;primary key&quot; in /etc/passwd.&nbsp; 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.&nbsp; <BR>
<BR>
And by the way, Russell mentioned that we have to consider NIS, LDAP, and other storage mechanisms.&nbsp; 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.&nbsp; <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>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Murphy
</BODY>
</HTML>