I want to change the host name - is it enough to edit the /etc/hosts file? [duplicate]

Short version

Can I just edit the /etc/hosts file, meaning can I login as user@<hostname I wish to change> without unintentionally breaking something? Would this be enough or is there something else to do?


Long version

I'm trying to create an Ubuntu 16 guest OS in VirtualBox on a Windows 10 host. I have downloaded the Ubuntu 16 .vdi from oxboxes.org, but I don't like the fact that I have to login as osboxes@osboxes. Ultimately I want to login as ab@ab.

First I changed the user name using usermod as described here in @ValentinUveges answer. This worked and so I can now at least login as ab@osboxes. To change @osboxes to @ab I have tried groupmod -n ab osboxes, but this failed.

But at least I think what I really need to change is the /etc/hosts file, which currently contains

cat /etc/hosts  
127.0.0.1   localhost  
127.0.1.1   osboxes

So can I just edit /etc/hosts and change osboxes to ab in order to allow me to login as ab@ab without unintentionally breaking some parts of the OS? Would this be enough or is there something else to do?

Apart from the steps I mentioned before, this is a "fresh" osboxes.vdi virtual operating system file.


Solution 1:

To change the host name persistently, you will have to change it in two files.
In the Ubuntu guest system open a terminal and execute these commands :

sudo nano /etc/hostname ... now edit the file (change the host name).

Press Ctrl + X to close the file and confirm the change by pressing Y.

sudo nano /etc/hosts ... now edit the file (change the host name).

Press Ctrl + X to close the file and confirm the change by pressing Y.

Then reboot the virtual operating system - now the host name has changed.
Additional information : Changing the host name this way is completely safe.

Solution 2:

Short Answer:

Yes you can.

Full Answer:

If you do so, you'll have to restart the system to take the changes into effect. Once restarted, the hostname would be changed to "ab" and this change would be persistent. If you want your system to change the hostname only for the current boot, you can use

sudo hostname ab

This change will not be persistent and will be reversed as soon as you restart.

Hope it helps.