【发布时间】:2015-10-22 23:45:25
【问题描述】:
我正在编写一个脚本,该脚本将粉碎 USB 驱动器并使用加密的持久数据安装 Kali linux。
#! /bin/bash
cd ~/Documents/Other/ISOs/Kali
echo "/dev/sdx x=?"
read x
echo "how many passes to wipe? 1 will be sufficient."
read n
echo "sd$x will be wiped $n times."
read -p "do you want to continue? [y/N] " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
exit 1
fi
echo "Your role in the installation process is not over. You will be prompted to type YES and a passphrase."
sudo shred -vz --iterations=$n /dev/sd$x
echo "Wiped. Installing Kali"
sudo dd if=kali-linux-2.0-amd64.iso of=/dev/sd$x bs=512k
echo "Installed. Making persistence."
y=3
sudo parted /dev/sd$x mkpart primary 3.5GiB 100%
x=$x$y
sudo cryptsetup --verbose --verify-passphrase luksFormat /dev/sd$x
sudo cryptsetup luksOpen /dev/sd$x my_usb
sudo mkfs.ext3 -L persistence /dev/mapper/my_usb
sudo e2label /dev/mapper/my_usb persistence
sudo mkdir -p /mnt/my_usb
sudo mount /dev/mapper/my_usb /mnt/my_usb
sudo -i
echo "/ union" > /mnt/my_usb/persistence.conf
umount /dev/mapper/my_usb
cryptsetup luksClose /dev/mapper/my_usb
echo "Persistence complete. Installation complete."
它几乎可以完美运行。这些命令单独输入到终端会产生想要的效果,但问题出现在第 37 行:
sudo echo "/ union" > /mnt/my_usb/persistence.conf
除非我以 root 用户身份登录,否则该命令将不起作用。为了解决这个问题,我之前尝试添加 sudo -i 命令,但是一旦我这样做了,以下所有命令都会被跳过。
如果建议的解决方案要求我输入密码,那也没关系。我不希望将密码存储在脚本中,那简直是无懈可击。
附注,我没有为这个问题制作一个通用的表格,因为我希望其他人能够在他们喜欢的情况下使用它。
【问题讨论】: