#include <unistd.h>
int main() {
long id,res
// get real (default) hostid
id = gethostid()
printf("current hostid is: %x
",id)
// set new hostid if is superuser
res = sethostid(0xa090d01)//括号内填入你想要的hostid if (res == 0) printf("if result is zero - success! (%d)
",res)
printf("current hostid is: %x -PPPppppp
",id)}之后我们需要编译它[root@pmsora ~]# cc host.c[root@pmsora ~]# ./a.out //编译后运行 current hostid is: a090d01 ifresult is zero - success! (0) current hostid is: a090d01 -PPPppppp [root@pmsora ~]# hostid 0a090d01 //hostid正确修改了 注意运行编译好的目标文件时必须使用root用户。
可以不启动就生效。
但为了安全目的,需要重启 systemd-hostnamed 服务来使得更改生效。
$ sudo systemctl restart systemd-hostnamed
在 Linux 中使用 nmtui 来更改主机名。具体 *** 作如下:
nmtui 是一个基于 curses 库的 TUI 应用,被用来和 NetworkManager 交互。当启动 nmtui 后,如果没有指定 nmtui 的第一个命令行参数,它将提醒用户选择执行某项活动。
在终端中运行下面的命令来开启文本用户界面。
$ nmtui
使用向下箭头按键来选择 “Set system hostname” 这个选项,然后敲击回车键。
需要做的就是删除原来的主机名,再输入新的主机名,然后选中 “OK” 敲击回车确认就可以了。
然后它将在屏幕中向你展示更新后的主机名,再次选中 “OK” 敲击回车确认就完成更改了。
最后,选中 “Quit” 按钮来从 nmtui 终端界面离开。
它可以在不重启设备的情况下生效,但为了安全目的,需要重启 systemd-hostnamed 服务来使得更改生效。
$ sudo systemctl restart systemd-hostnamed
可以运行下面的命令来查看更新后的主机名。
$ hostnamectl
Static hostname: daygeek-Y700
Icon name: computer-laptop
Chassis: laptop
Machine ID: 31bdeb7b83230a2025d43547368d75bc
Boot ID: 267f264c448f000ea5aed47263c6de7f
Operating System: Manjaro Linux
Kernel: Linux 4.19.20-1-MANJARO
Architecture: x86-64
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)