Security Enhanced Linux
What's New
Frequently Asked Questions
Background
Documents
License
Download
Participating
Mail List
Archives
Remaining Work
Contributors
Related Work
Press Releases
Information Assurance Research
NIARL In-house Research Areas
Mathematical Sciences Program
Sabbaticals
Computer & Information Sciences Research
Technology Transfer
Advanced Computing
Advanced Mathematics
Communications & Networking
Information Processing
Microelectronics
Other Technologies
Technology Fact Sheets
Publications
Related Links
|
SELinux Mailing ListRe: Changes to policycoreutils.
From: Stephen Smalley <sds_at_tycho.nsa.gov>
Date: Mon, 20 Mar 2006 16:45:12 -0500
diff --exclude-from=exclude -N -u -r nsapolicycoreutils/restorecond/restorecond.c policycoreutils-1.30/restorecond/restorecond.c --- nsapolicycoreutils/restorecond/restorecond.c 1969-12-31 19:00:00.000000000 -0500 +++ policycoreutils-1.30/restorecond/restorecond.c 2006-03-20 15:57:28.000000000 -0500 <snip> + if (lstat(filename, &st)!=0) return; + + if (st.st_nlink > 1) { + syslog(LOG_ERR,"Will not restore a file with more than one hard link (%s) %s\n", filename,strerror(errno)); + return; + } + + if (matchpathcon(filename, st.st_mode, &scontext) < 0) { + if (errno == ENOENT) + return; + syslog(LOG_ERR,"matchpathcon(%s) failed %s\n", filename,strerror(errno)); + return; + } + retcontext=lgetfilecon(filename,&prev_context); + + if (retcontext >= 0 || errno == ENODATA) { <snip> + if (lsetfilecon(filename,scontext) < 0) {+ One obvious problem here is that the above sequence isn't necessarily acting on the same inode, so the file that is ultimately relabeled by lsetfilecon could still be a link to a different user's file. An option for that problem is to use a open(..O_NOFOLLOW)+fstat+fgetfilecon +fsetfilecon+close sequence so that you are guaranteed to be operating on a single file throughout the sequence. But this requires at least read permission to the file to be allowed to restorecond for the open() call, which is why we didn't take that approach in setfiles (as it would then require read access to all files). restorecond is possibly operating on a much smaller set of files whose types can be enumerated/identified by an interface/attribute. -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message.Received on Mon 20 Mar 2006 - 16:40:19 EST |
|
Date Posted: Jan 15, 2009 | Last Modified: Jan 15, 2009 | Last Reviewed: Jan 15, 2009 |