Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何使用任何编程语言编辑/更新主机(etc/hosts)文件_Unix_Hosts - Fatal编程技术网

Unix 如何使用任何编程语言编辑/更新主机(etc/hosts)文件

Unix 如何使用任何编程语言编辑/更新主机(etc/hosts)文件,unix,hosts,Unix,Hosts,动态地我想编辑/更新主机(etc/hosts)文件以添加域 要编辑主机(etc/hosts)文件,需要管理员权限。使用Linux,我可以通过以下命令完成此操作 sudogedit/etc/hosts 但我正试图通过使用编程语言来做到这一点 如何操作?最好使用SSH之类的工具,以root(或system()中的sudo)身份连接到计算机,修改文件,然后断开连接。这样做的另一个好处是可以方便地提示用户输入密码 要在没有提示的情况下执行此操作,用户必须设置一些方法以根用户身份完成此操作。例如,设置助手

动态地我想编辑/更新主机(etc/hosts)文件以添加域

要编辑主机(etc/hosts)文件,需要管理员权限。使用Linux,我可以通过以下命令完成此操作

sudogedit/etc/hosts

但我正试图通过使用编程语言来做到这一点


如何操作?

最好使用SSH之类的工具,以root(或system()中的sudo)身份连接到计算机,修改文件,然后断开连接。这样做的另一个好处是可以方便地提示用户输入密码

要在没有提示的情况下执行此操作,用户必须设置一些方法以根用户身份完成此操作。例如,设置助手应用程序的UID、安装无密码密钥、修改LDAP树或其他各种方式。这有点“讨厌”,因为没有更好的术语


对于通常不具备权限提升功能的用户,无法执行此操作。

您仍然必须拥有编辑文件的正确权限


要更改文件,请以读/写/附加模式(即使用
fopen()
)打开文件(即模式
“a”
),并将新文本写入文件末尾。

您的程序需要以适当的权限运行。经典技术之一是使文件归root所有并设置setuid位。当您的程序运行时,它将成为root,并且能够修改/etc/hosts


也就是说,setuid代码是有风险的。代码中的错误可能会导致程序执行一些非常糟糕的操作,从而导致系统无法使用。恶意用户可以使用某些bug以root用户身份运行任意程序并接管您的系统。

我假设您在命令提示符处,您可以在那里发出sudo命令

如果您拥有访问权限,就像您声称的那样,那么任何可以向现有文本文件添加一行文本的编程语言(或者不可能创建一行文本)都可以工作。你可以给那个程序一些额外的权利,但那是另一个主题


小结:你懂什么语言?=>用那个

此文件由更新的操作系统和安全/防病毒软件高度“保护”,仅供参考:)复制:@Randolph Potter:我也问过这个问题,