From d3948ae87d11b76ca6d2ac347ce563330ca45eb6 Mon Sep 17 00:00:00 2001 From: Brian Carrier Date: Thu, 10 May 2018 12:25:51 -0400 Subject: [PATCH] modified script a bit and moved it --- .../launch_script_bootable.sh | 51 +++++++++++++++---- 1 file changed, 42 insertions(+), 9 deletions(-) rename setupAutopsyConfigDirectory.sh => unix/launch_script_bootable.sh (55%) mode change 100644 => 100755 diff --git a/setupAutopsyConfigDirectory.sh b/unix/launch_script_bootable.sh old mode 100644 new mode 100755 similarity index 55% rename from setupAutopsyConfigDirectory.sh rename to unix/launch_script_bootable.sh index 8f03973bb1..978dc342e2 --- a/setupAutopsyConfigDirectory.sh +++ b/unix/launch_script_bootable.sh @@ -1,5 +1,20 @@ #!/bin/bash +# This script is to be used by the maintainers of bootable Linux systems so that +# Autopsy can launch and use an external USB device for user configuration. This +# will ensure that the user does not have to reconfigure Autopsy each time. +# +# The basic idea of the script is to let the user pick which external readwrite +# device to use, ensure that an Autopsy folder exists, and launch Autopsy so that +# it uses that folder for configuration. +# +# To use this script, maintainers should: +# - Update AUTOPSY_BIN to path where the autopsy script / folder are + + + +AUTOPSY_BIN=/usr/share/autopsy-4.7.0/bin/autopsy + infoLog () { echo "INFO: "$1 } @@ -8,9 +23,12 @@ errorLog () { echo "ERROR: "$1 exit 1 } -Autopsybin=/usr/bin/autopsy4 -[ -x "$Autopsybin" ] && infoLog "Autopsy found" || errorLog "Antopsy binaries not found exiting....." +# Verify we can find the script +[ -x "$AUTOPSY_BIN" ] && infoLog "Autopsy found" || errorLog "Autopsy binaries not found at $AUTOPSY_BIN. Exiting....." + + +# Create folders on external drive createConfigDirectories () { if [ ! -d "$1" ]; then mkdir $1 && infoLog "$1 successfully created" || errorLog "error while creating $1" @@ -26,13 +44,22 @@ createConfigDirectories () { fi return 0 } + + options_length=0 -showAndReadOptions (){ +# Display list of mounted devices, prompt user, and store +# results in global variables +showAndReadOptions () { echo "Select a mounted disk to create config directory" + # Maintainers: Adjust these grep statements based on where your + # platform mounts media. mnt=( $(mount | grep "media" | grep "rw" | awk '{print $3}') ) + + # Add option to user to not use mounted media length=${#mnt[@]} - mnt[length]="No action" + mnt[length]="Do not store on mounted disk" options_length=$(( $length + 1 )) + x=1 for word in "${mnt[@]}" do @@ -41,11 +68,15 @@ showAndReadOptions (){ done read option } + + +# Show mounted drives and loop until it is valid showAndReadOptions if [ "$option" -lt "1" ] || [ "$option" -gt "$options_length" ]; then infoLog "Please choose a valid option" showAndReadOptions fi + if [ "$option" != "$options_length" ]; then index=$(( $option - 1 )) echo "Autopsy configurations will be stored in" "${mnt[$index]}"". Are you sure? (y/n)" @@ -53,14 +84,16 @@ if [ "$option" != "$options_length" ]; then if [ "$affirmation" == "y" ] || [ "$affirmation" == "Y" ]; then [ -d "${mnt[$index]}" ] && selectedMount=${mnt[$index]} || errorLog "Mount point not found" [ -w "$selectedMount" ] && autopsyConfigDir="${mnt[$index]}/AutopsyConfig" || errorLog "Mount point $selectedMount does not have write permission" - cacheDirectory="$autopsyConfigDir/cachedir" + + # Make the directories on the media userDirectory="$autopsyConfigDir/userdir" - configDirectory="$autopsyConfigDir/configdata" - createConfigDirectories $autopsyConfigDir $cacheDirectory $userDirectory $configDirectory + createConfigDirectories $autopsyConfigDir $userDirectory + + if [ $? -eq 0 ]; then - sh $Autopsybin --userdir $userDirectory --cachedir $cacheDirectory -J-Djava.io.tmpdir=$configDirectory + sh $AUTOPSY_BIN --userdir $userDirectory fi fi else - sh $Autopsybin + sh $AUTOPSY_BIN fi