Автор Тема: смена имени компьютера  (Прочитано 13073 раз)

Оффлайн Пурпур

  • Участник
  • *
  • Сообщений: 131
смена имени компьютера
« : 20.03.2017 12:41:20 »
Всем кто читает это сообщение - здравствуйте. Администратору отдельный респект, за его нелегкий труд ))

Я новичок. Линуксом никогда до этого не пользовался, но очень понравился Альт, решил перейти на него. Теперь конечно очень много вопросов.

У меня вопрос по правам доступа. Я зашел в систему под логином ААА, которому присвоены права администратора.
Пытаюсь переименовать компьютер ( как пример) отредактировав через консоль файлы:
/etc/hosts
/etc/hostname

пишет отказано в доступе. Ввел команду su - ввел пароль - получил права root. Пытаюсь опять отредактировать файлы, опять ничего не получается.

Что я не так делаю?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: смена имени компьютера
« Ответ #1 : 20.03.2017 13:13:49 »
Самый простой способ - через Центр Управления (acc) это сделать.

Я думаю, вы не то пытаетесь исправить.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
Re: смена имени компьютера
« Ответ #2 : 20.03.2017 13:18:00 »
Что я не так делаю?
1. Имя находится в /etc/HOSTNAME, а не в /etc/hostname
2. /etc/HOSTNAME - симлинк на внутреннюю структуру ядра:
   /etc/HOSTNAME -> /proc/sys/kernel/hostname
3. man hostname

При старте исходное значение берётся из /etc/sysconfig/network

Оффлайн ASte

  • Мастер
  • ***
  • Сообщений: 1 566
Re: смена имени компьютера
« Ответ #3 : 20.03.2017 13:28:21 »
2. /etc/HOSTNAME - симлинк на внутреннюю структуру ядра:
   /etc/HOSTNAME -> /proc/sys/kernel/hostname
Странно, у меня не так.
/proc/sys/kernel/hostname - правильное имя хоста
/etc/HOSTNAME - совсем не симлинк,  и прописано туда имя хоста, которое было автоматом сгенерено инсталятором, и которое я потом сменил через acc.

dango

  • Гость
Re: смена имени компьютера
« Ответ #4 : 20.03.2017 13:53:44 »
Рекомендую перед сменой имени компьютера открыть терминал под root, чтобы в нем дать команду reboot после смены имени компьютера.

Оффлайн Vovka-Korovka

  • alt linux team
  • ***
  • Сообщений: 1 186
  • True Metal Cow
Re: смена имени компьютера
« Ответ #5 : 20.03.2017 14:16:08 »
Если systemd используется, то можно утилитой hostnamectl воспользоваться

# hostnamectl set-hostname <тут ваш hostname>


Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: смена имени компьютера
« Ответ #6 : 20.03.2017 19:39:54 »
Я через /etc/sysconfig/network как-то правил, а так да, можно через ЦУС поменять, то же самое.
Сноси Винду, переходи на Линукс ! :)

Оффлайн Пурпур

  • Участник
  • *
  • Сообщений: 131
Re: смена имени компьютера
« Ответ #7 : 21.03.2017 10:02:03 »
Спасибо, я решил проблему через Центр Управления. Там все просто оказалось.
Но изначально хотел через консоль, чтобы учиться как-то, но пока что-то не получается.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 371
Re: смена имени компьютера
« Ответ #8 : 21.03.2017 11:25:43 »
но пока что-то не получается.
Я же написал. man hostname - это на лету, на текущий момент.
а это на после перезагрузки:
sed -i "s/^HOSTNAME=/HOSTNAME=new.hostname/" /etc/sysconfig/network

Оффлайн UPS10Rus

  • Участник
  • *
  • Сообщений: 96
Re: смена имени компьютера
« Ответ #9 : 21.03.2017 15:58:51 »
Но изначально хотел через консоль, чтобы учиться как-то, но пока что-то не получается

ASY вам в последнем сообщении всё расписал.
Правим тут:/etc/sysconfig/network потом reboot

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: смена имени компьютера
« Ответ #10 : 21.03.2017 21:19:08 »
Спасибо, я решил проблему через Центр Управления. Там все просто оказалось.
Но изначально хотел через консоль, чтобы учиться как-то, но пока что-то не получается.

Всё неочевидно, но на самом деле просто:
$ su -
# sed -i "s/^HOSTNAME=.*/HOSTNAME=новое-короткое-имя-хоста.localdomain/" /etc/sysconfig/network
# reboot

Обратите внимание, что во второй команде, сочетание точка и следом за ней умножить, используется как маска (регулярное выражение) и означает любые символы в строке включая их отсутствие. Т.е., сочетание .* означает любое количество любых символов включая их отсутствие и используется для того, чтобы произошла замена любых символов до конца строки. В данной команде, sed заменит любое имя хоста на указанное.
В выражении для замещения:
.  --  любой символ
*  --  количество повторов от нуля и больше

Далее команда перезагрузки.

На системах с sysvinit, в довесок, для понимания как устанавливается имя хоста, можно покурить скрипт /etc/rc.d/rc.sysinit. Если в скриптах разберётесь конечно. Или если захотите разобраться.

Можете поиграться через sed с заменой имени хоста.
Посмотреть как sed меняет имя хоста в файле  можно командой:
# grep HOST /etc/sysconfig/network

Не забудьте сохранить в буфере обмена текущее имя хоста, если понадобится вернуть его.
« Последнее редактирование: 22.03.2017 11:37:13 от Speccyfighter »