70 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			Bash
		
	
	
	
	
	
|   | #!/bin/sh
 | ||
|  | if [ `id -u` -ne 0 ]; then | ||
|  | 	echo "$0: must be root to install the selinux policy" | ||
|  | 	exit 1 | ||
|  | fi | ||
|  | SF=`which setfiles` | ||
|  | if [ $? -eq 1 ]; then | ||
|  | 	if [ -f /sbin/setfiles ]; then | ||
|  | 		SF="/usr/setfiles" | ||
|  | 	else | ||
|  | 		echo "no selinux tools installed: setfiles" | ||
|  | 		exit 1 | ||
|  | 	fi | ||
|  | fi | ||
|  | 
 | ||
|  | cd mdp | ||
|  | 
 | ||
|  | CP=`which checkpolicy` | ||
|  | VERS=`$CP -V | awk '{print $1}'` | ||
|  | 
 | ||
|  | ./mdp policy.conf file_contexts | ||
|  | $CP -o policy.$VERS policy.conf | ||
|  | 
 | ||
|  | mkdir -p /etc/selinux/dummy/policy | ||
|  | mkdir -p /etc/selinux/dummy/contexts/files | ||
|  | 
 | ||
|  | cp file_contexts /etc/selinux/dummy/contexts/files | ||
|  | cp dbus_contexts /etc/selinux/dummy/contexts | ||
|  | cp policy.$VERS /etc/selinux/dummy/policy | ||
|  | FC_FILE=/etc/selinux/dummy/contexts/files/file_contexts | ||
|  | 
 | ||
|  | if [ ! -d /etc/selinux ]; then | ||
|  | 	mkdir -p /etc/selinux | ||
|  | fi | ||
|  | if [ ! -f /etc/selinux/config ]; then | ||
|  | 	cat > /etc/selinux/config << EOF | ||
|  | SELINUX=enforcing | ||
|  | SELINUXTYPE=dummy | ||
|  | EOF | ||
|  | else | ||
|  | 	TYPE=`cat /etc/selinux/config | grep "^SELINUXTYPE" | tail -1 | awk -F= '{ print $2 '}` | ||
|  | 	if [ "eq$TYPE" != "eqdummy" ]; then | ||
|  | 		selinuxenabled | ||
|  | 		if [ $? -eq 0 ]; then | ||
|  | 			echo "SELinux already enabled with a non-dummy policy." | ||
|  | 			echo "Exiting.  Please install policy by hand if that" | ||
|  | 			echo "is what you REALLY want." | ||
|  | 			exit 1 | ||
|  | 		fi | ||
|  | 		mv /etc/selinux/config /etc/selinux/config.mdpbak | ||
|  | 		grep -v "^SELINUXTYPE" /etc/selinux/config.mdpbak >> /etc/selinux/config | ||
|  | 		echo "SELINUXTYPE=dummy" >> /etc/selinux/config | ||
|  | 	fi | ||
|  | fi | ||
|  | 
 | ||
|  | cd /etc/selinux/dummy/contexts/files | ||
|  | $SF file_contexts / | ||
|  | 
 | ||
|  | mounts=`cat /proc/$$/mounts | egrep "ext2|ext3|xfs|jfs|ext4|ext4dev|gfs2" | awk '{ print $2 '}` | ||
|  | $SF file_contexts $mounts | ||
|  | 
 | ||
|  | 
 | ||
|  | dodev=`cat /proc/$$/mounts | grep "/dev "` | ||
|  | if [ "eq$dodev" != "eq" ]; then | ||
|  | 	mount --move /dev /mnt | ||
|  | 	$SF file_contexts /dev | ||
|  | 	mount --move /mnt /dev | ||
|  | fi | ||
|  | 
 |