У меня есть следующая команда, которая правильно создает файл / etc / hosts, который я хочу собрать. Тем не менее, я не могу написать это для 2-й формы из-за разрешений, конечно. Так что я попробовал варианты 3-й формы, но это все еще ошибки на разрешениях. Может ли кто-нибудь дать мне предложение попробовать?
cat hosts.tmp ; echo -n "myremotehost " ; cat ip.txt
cat hosts.tmp ; echo -n "myremotehost " ; cat ip.txt > /etc/hosts
cat hosts.tmp ; echo -n "myremotehost " ; echo mypassword | sudo -S cat ip.txt > /etc/hosts
Я бы добавил инструкции по изменению вашего файла /etc/hosts
в сценарии оболочки, скажем, modify-hosts.sh
, затем выполнил бы
sudo modify-hosts.sh
Если вы настаиваете на запуске сценария без необходимости ввода пароля, затем добавьте запись NOPASSWD
специально для этого скрипта и ваше имя пользователя в /etc/sudoers
.
Что касается содержимого файла, вы можете сделать:
cp hosts.tmp > /etc/hosts
echo "myremotehost $(cat /path/to/ip.txt)" >> /etc/hosts
Более удобно, если myhostname
уже имеет запись в /etc/hosts
, вы можете отредактировать ее на месте:
И это утверждение можно даже sudo
в одной строке
sudo sed -i -e 's/myhostname .*/myhostname '$(cat ip.txt)'/' /etc/hosts
, не сталкиваясь с проблемами перенаправления.
Мне было трудно это выяснить! (Относительно новичка в Linux.)
В терминале введите sudo -i
, затем войдите в систему, используя свой пароль пользователя. Вы будете в корневом каталоге с богоподобными способностями ...:>)
Я также обнаружил, что bash filename.sh
запустит скрипт. Прости меня, я чувствую большое чувство выполненного долга, написав сценарий (согласно предложениям в другом посте), который убил всю рекламу на Youtube!