--- policycoreutils-1.13/scripts/fixfiles.rhat 2004-05-21 14:26:51.000000000 -0400 +++ policycoreutils-1.13/scripts/fixfiles 2004-05-25 15:06:03.586866792 -0400 @@ -19,24 +19,42 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -FC=/etc/security/selinux/file_contexts +SELINUXTYPE="targeted" +. /etc/selinux/config +FC=/etc/selinux/${SELINUXTYPE}/contexts/files/file_contexts LOGFILE=`mktemp /var/tmp/fixfiles.XXXXXXXXXX` || exit 1 -echo "logging to $LOGFILE" SETFILES=/usr/sbin/setfiles FILESYSTEMS=`mount | grep -v "context=" | egrep -v '\((|.*,)bind(,.*|)\)' | awk '/(ext[23]| xfs).*rw/{print $3}';` checkLabels () { +echo "logging to $LOGFILE" ${SETFILES} -v -n ${FC} ${FILESYSTEMS} 2>&1 | tee $LOGFILE } restoreLabels () { +echo "logging to $LOGFILE" ${SETFILES} -v ${FC} ${FILESYSTEMS} 2>&1 | tee $LOGFILE } relabel() { +echo "logging to $LOGFILE" echo "Cleaning out /tmp" rm -rf /tmp/.??* /tmp/* -${SETFILES} ${FC} ${FILESYSTEMS} 2>&1 | tee $LOGFILE +${SETFILES} -v ${FC} ${FILESYSTEMS} 2>&1 | tee $LOGFILE +} +relabelCheck() { +echo -n " +Files in the /tmp directory may be labeled incorrectly, this command +can remove all files in /tmp. If you choose to remove files from /tmp, +a reboot will be required after completion. + +Do you wish to clean out the /tmp directory [N]? " +read answer +if [ "$answer" = y -o "$answer" = Y ]; then + relabel +else + restoreLabels +fi + } # See how we were called. @@ -48,10 +66,15 @@ restoreLabels ;; relabel) - relabel + relabelCheck ;; + -F) + if "$1" = "relabel"; then + relabel + fi + ;; *) - echo $"Usage: $0 {check|restore|relabel}" + echo $"Usage: $0 {check|restore|[-F] relabel}" exit 1 esac exit $?