bdisk/extra/pre-build.d/etc/systemd/scripts/livecd.fix.sh

73 lines
1.8 KiB
Bash
Executable File

#/bin/sh -
locale-gen
#chmod 4755 /opt/google/chrome-beta/chrome-sandbox
chmod 4755 /usr/bin/sudo
# Fix user perms/ownerships, etc.
chown -R root:root /root
for i in $(grep '/home/' /etc/passwd | cut -f1 -d":");
do
chown -R ${i}:${i} /home/${i}
done
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
for i in $(find /home -type d -name "*/.ssh");
do
chmod 700 ${i}
chmod 600 ${i}/authorized_keys
done
function fuck_you_gimme_net() {
IFACE=$(ip -o link | awk '{print $2}' | egrep -E '^((en|wl)p?|em)' | sed -e 's/:$//g' | head -n1)
for i in ${IFACE};
do
LINK_STATE=$(ethtool ${i} | egrep '^[[:space:]]*Link' | sed -re 's/^[[:space:]]*Link detected:(.*)/\1/g')
DEV=$(echo ${i} | sed -re 's/^([A-Za-z]{1}).*/\1/g' | tr '[[:upper:]]' '[[:lower:]]' )
if [ "${DEV}" == "e" ];
then
if [ "${LINK_STATE}" != "no" ];
then
DEV='ethernet-dhcp'
else
# skip disconnected ethernet
continue
fi
else
DEV='wireless-open'
fi
ip link set dev ${i} down
cp -a /etc/netctl/examples/${DEV} /etc/netctl/${i}
sed -i -re "s/^([[:space:]]*Interface[[:space:]]*=).*/\1${i}/g" /etc/netctl/${i}
if [ "${DEV}" == "wireless-open" ];
then
ip link set dev ${i} up && \
ESSID=$(iwlist ${i} scanning | egrep -A5 -B5 '^[[:space:]]*Encryption key:off' | egrep '^[[:space:]]*ESSID:' | sed -re 's/^[[:space:]]*ESSID:(.*)/\1/g')
sed -i -re "s/^([[:space:]]*ESSID[[:space:]]*=).*/\1${ESSID}/g" /etc/netctl/${i}
ip link set ${i} down
fi
netctl restart ${i} > /dev/null 2>&1
#cat /etc/resolvconf.conf.failover > /etc/resolvconf.conf
#resolvconf -u
done
}
ping -c1 google.com | grep -q '1 received'
if [[ "${?}" != "0" ]];
then
fuck_you_gimme_net
systemctl restart openvpn@*
fi
# And lastly, do we need to set custom DNS servers?
host -s -W1 bdisk.square-r00t.net | egrep -q '^bdisk\.square-r00t\.net\ has\ address'
if [[ "${?}" != "0" ]];
then
resolvconf -u
fi