# # Authors: Karl MacMillan # # Copyright (C) 2006 Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # 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., 675 Mass Ave, Cambridge, MA 02139, USA. # from setroubleshoot.util import * from setroubleshoot.Plugin import Plugin from rhpl.translate import _ class plugin(Plugin): summary = _(''' SELinux prevented $SOURCE_PATH from mounting on the file or directory "$TARGET_PATH" (type "$TARGET_TYPE"). ''') problem_description = _(''' SELinux prevented $SOURCE_PATH from mounting a filesystem on the file or directory "$TARGET_PATH" of type "$TARGET_TYPE". By default SELinux limits the mounting of filesystems to only some files or directories (those with types that have the mountpoint attribute). The type "$TARGET_TYPE" does not have this attribute. You can change the label of the file or directory. ''') fix_description = _(''' Changing the file_context to mnt_t will allow mount to mount the file system: "chcon -t mnt_t $TARGET_PATH." ''') fix_cmd = 'chcon -t mnt_t $TARGET_PATH' def __init__(self): Plugin.__init__(self, __name__) def analyze(self): if self.avc.sourceTypeMatch("mount_t") and "mounton" in self.avc.access: return True else: return False