Некоторые вещи, которые вы можете попробовать.
удалите учетную запись из Ubuntu и войдите в свою учетную запись Google в браузере и перейдите на страницу настроек для своей учетной записи, нажмите «Безопасность», а затем вы увидите «учетную запись» разрешений "и удалить что-либо из Ubuntu.
После этого попробуйте добавить учетную запись еще раз.
Имя хоста хранится в /etc/hostname
Где address - список ваших IP-адресов:
for A in `cat address` ; do NODE="node`echo $A | cut -d. -f4`" ; ssh $A "echo $NODE > /etc/hostname" ; done
Для каждого IP мы отключили последнее поле, префикс его с «узлом» и записать его в / etc / hostname
Теперь это должно работать, но оно будет работать только в том случае, если у вашего пользователя есть права на запись в / etc / hostname, которое по умолчанию стандартно пользователи не имеют на Ubuntu.
Что вы можете сделать, это подать свой пароль на sudo через STDIN; например echo "password" | sudo -S; обратите внимание, что это не безопасно, потому что вы оставите свой пароль в истории своей оболочки. Найдите его с помощью команды history и удалите это с помощью history -d <historyId>.
Не надо, конечно, писать свой пароль в текстовый файл в домашней папке ...
Итак, вообще
for A in `cat address` ; do
NODE="node`echo $A | cut -d. -f4`"
ssh $A "echo 'myPassword' | sudo -S echo $NODE > /etc/hostname"
done
- отредактируйте
Если вы хотите переписать файл hosts на каждой машине, вы можете добавить немного awk в микс; замените шаблон 127\.0\.0\. на тот, который фактически соответствует вашей подсети. Он будет записывать оставшиеся строки файла нетронутыми.
/^127\.0\.0\./ {
split($1, quads, /\./)
print $1 "\tnode" quads[4]
next
}
{ print $0 }
Это заменит все имена хостов для IP-адресов в вашей подсети «nodeN», где N - последний квадрат IP-адреса. [!d10 ]
Таким образом, мы добавляем эти команды в цикл for A (сжатие awk-скрипта на одну строку и экранирование символов по мере необходимости). Нам не нужно быть root, чтобы читать /etc/hosts, но нам нужно быть root, чтобы заменить его после того, как мы заменим его на /tmp
ssh $A "awk '/^127\.0\.0\./ { split(\$1, quads, /\./) ; print \$1 \"\tnode\" quads[4] ; next } { print \$0 }' /etc/hosts > /tmp/hosts.new"
ssh $A "echo 'myPassword' | sudo -S mv /etc/hosts /etc/hosts.old"
ssh $A "echo 'myPassword' | sudo -S mv /tmp/hosts.new /etc/hosts"