Linux hostname (как правильно изменить)
Чтобы было так
root@anxiety:~# hostname
anxiety
root@anxiety:~# hostname -f
anxiety.vandud.ru
Нужно сделать так
root@anxiety:~# cat /etc/hostname
anxiety
root@anxiety:~# cat /etc/hosts
127.0.0.1 localhost
127.0.0.1 anxiety.vandud.ru anxiety
...
При загрузке системы из файла /etc/hostname
хостнейм положится в /proc/sys/kernel/hostname
Дальше утилиты типа hostname
используют именно имя из /proc
root@anxiety:~# hostname test
root@anxiety:~# cat /proc/sys/kernel/hostname
test
root@anxiety:~# hostname
test
А hostname -f
берет инфу из файла /etc/hosts
Он находит в файле /etc/hosts
подходящую строку и берет из нее первый хостнейм
root@anxiety:~# hostname
test
root@anxiety:~# hostname -f
testtesttest
root@anxiety:~# cat /etc/hosts
127.0.0.1 localhost
127.0.0.1 testtesttest anxiety.vandud.ru anxiety test
...
В примере выше он нашел последнее имя test
и как полное имя взял первое testtesttest
Кстати hostnamectl
покажет какое имя статическое, а какое временное
root@anxiety:~# hostnamectl
Static hostname: anxiety
Transient hostname: test
Icon name: computer-vm
Chassis: vm
Machine ID: ec697124f3421da2bd81ecfae2cab1fc
Boot ID: f47d3ce45e3642c3a30e2ca26902264a
Virtualization: kvm
Operating System: Debian GNU/Linux 11 (bullseye)
Kernel: Linux 5.10.0-20-amd64
Architecture: x86-64
Можно сделать и так
root@anxiety:~# echo 'vandud' > /proc/sys/kernel/hostname
root@anxiety:~# hostname
vandud
No Comments