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
							 | 
						||
| 
								 | 
							
								
							 |