【问题标题】:Change hostname to null in linux [closed]在linux中将主机名更改为null [关闭]
【发布时间】:2020-10-06 17:58:05
【问题描述】:

我在服务器上下载了 elf 文件,但是它会检查文件是否在服务器上执行。 通过使用 gdb 对其进行调试,我发现有一个“gethostname”函数,如果该函数返回 0,则文件停止并显示消息“在非法主机上运行”。 当主机名为空时,从 Internet 'gethostname' 搜索返回 -1。 那么如何更改我的主机名以返回 -1 并执行程序? 或者有什么方法可以在不将我的主机名更改为 null 的情况下返回 -1?

【问题讨论】:

    标签: linux server


    【解决方案1】:

    如果您知道“elf 文件”接受哪个主机名,则可以使用“主机名”命令更改系统的主机名。

    如果您不想全局更改主机名,您可以在可以更改主机名的 LXC 容器中运行程序。

    如果运行容器繁重或困难,您可以使用“unshare”之类的命令在全新的 UTS 命名空间中运行“elf 文件”:

          $ sudo unshare -u /bin/bash  # Run a bash in a new UTS namespace 
          # hostname foo   # Change hostname in the new UTS namespace
          # ... Run your program ...
          # exit  # exit the shell and go back to original UTS namespace
    

    【讨论】:

    • 感谢您的回答,但我只想知道如何让“gethostname”函数返回-1(不是0 值)。我确实尝试更改主机名,但无法将其更改为 null。有什么办法不得到0返回值?
    • 如果传递给它的缓冲区太小而无法获取主机名,gethostname() 可能会失败。如果“elf 库”传递了一个小缓冲区,请尝试设置一个比传递给 gethostname() 的缓冲区长的主机名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2023-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多