Assuming the machine is running a Linux kernel, sessions make use of the Bash shell and everything is using default configurations (no user has made any changes to config files), can we assume that the
$HOME environment variable is always set?
Yes. The POSIX specification requires the OS to set a value for $HOME:
What about user