113 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
# preinst script for core-agent-linux
 | 
						|
#
 | 
						|
# see: dh_installdeb(1)
 | 
						|
 | 
						|
set -x
 | 
						|
 | 
						|
# The preinst script may be called in the following ways:
 | 
						|
#   * <new-preinst> 'install'
 | 
						|
#   * <new-preinst> 'install' <old-version>
 | 
						|
#   * <new-preinst> 'upgrade' <old-version>
 | 
						|
#
 | 
						|
#     The package will not yet be unpacked, so the preinst script cannot rely 
 | 
						|
# on any files included in its package. Only essential packages and 
 | 
						|
# pre-dependencies (Pre-Depends) may be assumed to be available. 
 | 
						|
# Pre-dependencies will have been configured at least once, but at the time the 
 | 
						|
# preinst is called they may only be in an "Unpacked" or "Half-Configured" state
 | 
						|
# if a previous version of the pre-dependency was completely configured and has
 | 
						|
# not been removed since then.
 | 
						|
#
 | 
						|
#
 | 
						|
#  * <old-preinst> 'abort-upgrade' <new-version>
 | 
						|
#
 | 
						|
#    Called during error handling of an upgrade that failed after unpacking the
 | 
						|
# new package because the postrm upgrade action failed. The unpacked files may
 | 
						|
# be partly from the new version or partly missing, so the script cannot rely
 | 
						|
# on files included in the package. Package dependencies may not be available.
 | 
						|
# Pre-dependencies will be at least "Unpacked" following the same rules as
 | 
						|
# above, except they may be only "Half-Installed" if an upgrade of the 
 | 
						|
# pre-dependency failed.[46]
 | 
						|
#
 | 
						|
#    For details, see http://www.debian.org/doc/debian-policy/ or
 | 
						|
# https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html or
 | 
						|
# the debian-policy package
 | 
						|
 | 
						|
if [ "$1" = "install" ] ; then
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    # Create required directories
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    mkdir -p /var/lib/qubes
 | 
						|
    mkdir -p /lib/modules
 | 
						|
    #mkdir -p -m 0700 /var/log/xen  # xen-utils-common should do this
 | 
						|
 | 
						|
    if [ -e /etc/fstab ] ; then 
 | 
						|
        mv /etc/fstab /var/lib/qubes/fstab.orig
 | 
						|
    fi
 | 
						|
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    # Many Qubes scripts reference /bin/sh expecting the shell to be bash but
 | 
						|
    # in Debian it is dash so some scripts will fail so force an alternate for
 | 
						|
    # /bin/sh to be /bin/bash
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    update-alternatives --force --install /bin/sh sh /bin/bash 999
 | 
						|
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    # Modules setup
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    echo "xen_netfront" >> /etc/modules
 | 
						|
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    # Remove `mesg` from root/.profile?
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    sed -i -e '/^mesg n/d' /root/.profile
 | 
						|
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    # Update /etc/fstab
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    cat > /etc/fstab <<EOF
 | 
						|
/dev/mapper/dmroot /         ext4 defaults,noatime 1 1
 | 
						|
/dev/xvdc1 swap              swap    defaults 0 0
 | 
						|
 | 
						|
/dev/xvdb /rw                ext4    noauto,defaults,discard 1 2
 | 
						|
/rw/home /home               none    noauto,bind,defaults 0 0
 | 
						|
 | 
						|
tmpfs /dev/shm               tmpfs   defaults 0 0
 | 
						|
devpts /dev/pts              devpts  gid=5,mode=620 0 0
 | 
						|
proc /proc                   proc    defaults 0 0
 | 
						|
sysfs /sys                   sysfs   defaults 0 0
 | 
						|
xen /proc/xen                xenfs   defaults 0 0
 | 
						|
 | 
						|
/dev/xvdi /mnt/removable     auto    noauto,user,rw 0 0
 | 
						|
/dev/xvdd /lib/modules       ext3    defaults 0 0
 | 
						|
EOF
 | 
						|
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    # User add / modifications
 | 
						|
    # --------------------------------------------------------------------------
 | 
						|
    id -u 'user' || {
 | 
						|
        groupadd -f user
 | 
						|
        useradd -g user -G dialout,cdrom,floppy,sudo,audio,dip,video,plugdev -m -s /bin/bash user
 | 
						|
    }
 | 
						|
    id -u 'tinyproxy' || {
 | 
						|
        groupadd -f tinyproxy
 | 
						|
        useradd -g tinyproxy -M --home /run/tinyproxy --shell /bin/false tinyproxy
 | 
						|
    }
 | 
						|
    usermod -p '' root
 | 
						|
    usermod -L user
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$1" = "upgrade" ] ; then
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
# dh_installdeb will replace this with shell code automatically
 | 
						|
# generated by other debhelper scripts.
 | 
						|
 | 
						|
#DEBHELPER#
 | 
						|
 | 
						|
exit 0
 | 
						|
 | 
						|
# vim: set ts=4 sw=4 sts=4 et :
 |