--- David Howells <dhowells@xxxxxxxxxx> wrote: > > Stephen Smalley <sds@xxxxxxxxxxxxx> wrote: > > > > avc_has_perm(daemon_tsec->sid, nominated_sid, > > > SECCLASS_CACHE, CACHE__USE_AS_OVERRIDE, NULL); > > > > > > And I assume this doesn't care if one, the other or both of the two SIDs > > > mentioned are of SECCLASS_PROCESS rather than of SECCLASS_CACHE. > > > > Right, the latter is reasonable. > > Okay... It looks like I want four security operations/hooks for cachefiles: > > (1) Check that a daemon can nominate a secid for use by the kernel to > override > the process subjective secid. > > (2) Set the secid mentioned in (1). > > (3) Check that the kernel may create files as a particular secid (this could > be specified indirectly by specifying an inode, which would hide the > secid > inside the LSM). > > (4) Set the fscreate secid mentioned in (3). > > Now, it's possible to condense (1) and (2) into a single op, Yes, and I would recommend doing so to avoid permission races. You're going to have to deal with the case where step (2) fails even if you have step (1), so the "test and set" mindset seems prudent to me. > and condense (3) and (4) into a single op. That, however, might make > the ops unusable by nfsd, > which may well want to bypass the checks or do them elsewhere. Again, I don't think you're doing yourself any favors with a separate test operation. On (4) are you suggesting a third attribute value? There's the secid of the task originally, the secid you're going to use to do the access checks, and the secid you're going to set the file to on creation. > Any thoughts? Let me see if I understand your current scheme. You want a (object) secid that is used to access the task. You want a (subject) secid that the task uses to accesses objects. You want a (newobject) secid that an object gets on creation. And you want them all to be distinct and settable. Did I get that right? Thank you. Casey Schaufler casey@xxxxxxxxxxxxxxxx -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with the words "unsubscribe selinux" without quotes as the message.