$ /usr/bin/sudo /usr/bin/bash -c "echo Nameserver 8.8.8.8 >> /etc/resolv.conf"
$#OR
$ /usr/bin/sudo /usr/bin/bash -c "echo Nameserver 8.8.8.8 >> /etc/resolv.conf;echo multi line commands;/usr/bin/cat /etc/resolv.conf"
$#
$ /usr/bin/sudo /usr/bin/vi /etc/resolv.conf
$ #OR (arnold sudo -i) one line command
$ /usr/bin/sudo -i "echo Nameserver 8.8.8.8 >> /etc/resolv.conf"
$ #OR (arnold sudo -i) one line command
$ /usr/bin/sudo -i "echo Nameserver 8.8.8.8 >> /etc/resolv.conf;/usr/bin/cat /etc/resolv.conf"
Change the path$ /usr/bin/cat ./29173112.sh
#!/bin/bash
LOGNAME=$(/usr/bin/whoami)
if [ "root" = "$LOGNAME" ]
then
for NAMESERV in 8.8.8.8 8.8.8.1 8.8.8.2
do
/usr/bin/grep $NAMESERV /etc/resolv.conf >/dev/null 2>&1
if [ 0 -ne $? ]
then
echo "echo Nameserver $NAMESERV >> /etc/resolv.conf"
echo Nameserver $NAMESERV >> /etc/resolv.conf
sleep 1
else
echo /etc/resolv.conf having $NAMESERV
fi
done
else
echo "Execute $0 using root user or sudo"
fi
$ ./29173112.sh
Execute ./29173112.sh using root user or sudo
$ /usr/bin/sudo ./29173112.sh
echo Nameserver 8.8.8.8 >> /etc/resolv.conf
echo Nameserver 8.8.8.1 >> /etc/resolv.conf
echo Nameserver 8.8.8.2 >> /etc/resolv.conf
$ /usr/bin/sudo ./29173112.sh
/etc/resolv.conf having 8.8.8.8
/etc/resolv.conf having 8.8.8.1
/etc/resolv.conf having 8.8.8.2
$ /usr/bin/sudo ./29173112.sh >> /root/Test.txt
-bash: /root/Test.txt: Permission denied
$ /usr/bin/sudo bash -c "./29173112.sh > /root/Test.txt 2>&1"
$ /usr/bin/sudo /usr/bin/cat /root/Test.txt
/etc/resolv.conf having 8.8.8.8
/etc/resolv.conf having 8.8.8.1
/etc/resolv.conf having 8.8.8.2
$ for NAMESERV in 8.8.8.8 8.8.8.1 8.8.8.2
do
/usr/bin/grep $NAMESERV /etc/resolv.conf >/dev/null 2>&1
if [ 0 -ne $? ]
then
echo "echo Nameserver $NAMESERV >> /etc/resolv.conf"
echo Nameserver $NAMESERV >> /etc/resolv.conf
sleep 1
else
echo /etc/resolv.conf having $NAMESERV
fi
done
echo Nameserver 8.8.8.8 >> /etc/resolv.conf
-bash: /etc/resolv.conf: Permission denied
echo Nameserver 8.8.8.1 >> /etc/resolv.conf
-bash: /etc/resolv.conf: Permission denied
echo Nameserver 8.8.8.2 >> /etc/resolv.conf
-bash: /etc/resolv.conf: Permission denied
$ /usr/bin/sudo /usr/bin/bash -c "for NAMESERV in 8.8.8.8 8.8.8.1 8.8.8.2
do
/usr/bin/grep \$NAMESERV /etc/resolv.conf >/dev/null 2>&1
if [ 0 -ne \$? ]
then
echo \"echo Nameserver \$NAMESERV >> /etc/resolv.conf\"
echo Nameserver \$NAMESERV >> /etc/resolv.conf
sleep 1
else
echo /etc/resolv.conf having \$NAMESERV
fi
done"
echo Nameserver 8.8.8.8 >> /etc/resolv.conf
echo Nameserver 8.8.8.1 >> /etc/resolv.conf
echo Nameserver 8.8.8.2 >> /etc/resolv.conf
$ /usr/bin/sudo /usr/bin/bash -c "for NAMESERV in 8.8.8.8 8.8.8.1 8.8.8.2
do
/usr/bin/grep \$NAMESERV /etc/resolv.conf >/dev/null 2>&1
if [ 0 -ne \$? ]
then
echo \"echo Nameserver \$NAMESERV >> /etc/resolv.conf\"
echo Nameserver \$NAMESERV >> /etc/resolv.conf
sleep 1
else
echo /etc/resolv.conf having \$NAMESERV
fi
done"
/etc/resolv.conf having 8.8.8.8
/etc/resolv.conf having 8.8.8.1
/etc/resolv.conf having 8.8.8.2
/usr/bin/sudo ./29173112.sh >> /root/Test.txt
sudo bash -c "./29173112.sh >> /root/Test.txt"
/etc/resolv.conf is root owned, so requires sudo, su or other root access to update this file.
Other items...
1) If you're using dnsmasq, be sure you've enabled reading the system /etc/resolv.conf file or it will be ignored.
2) Just running systemctl stop systemd-resolved is completely insufficient to keep dnsmasq working.
Every reboot + many package updates will restart systemd-resolved, so best to remove this code... as it's badly broken anyway...
https://www.experts-exchange.com/questions/29162917/Huge-DNS-queries-from-openshift.html provides instructions for completely nuking systemd-resolved forever.