为了账号安全,请及时绑定邮箱和手机立即绑定

从 raspbian 上的 PHP 脚本更改静态 IP 地址

从 raspbian 上的 PHP 脚本更改静态 IP 地址

PHP
拉风的咖菲猫 2023-06-24 18:03:54
我想从网页更改树莓派 4 上接口 eth0 的静态 IP 地址。我正在运行没有桌面的buster lite 4.19。据我了解,我需要修改 /etc/dhcpcd.conf 文件中的“static ip_address=”行以使更改永久生效。我可以执行以下命令,并且在重新启动控制器之前它可以正常工作。ifconfig eth0 192.168.1.10 netmask 255.255.255.0我发现这个链接在命令行中效果很好。 使用 sed 更改 dhcpcd.conf 文件中的 IP 地址我尝试使用 exec() 命令来执行 php 脚本中的命令。读取工作正常,但 sed 操作不写入任何内容。我假设存在权限问题,但不确定如何解决这个问题。我在代码中使用以下命令。$newIPcidr = "192.168.1.10/24";$cmd = "cat /etc/dhcpcd.conf | grep -e '^static ip_address=' | cut -d= -f2";$curIP = exec($cmd); $cmd = "sudo sed -i -e \"s@^static ip_address=" . $curIP . "\b@static ip_address=" . $newIPcidr . "@g\" /etc/dhcpcd.conf";$output = exec($cmd);有一个更好的方法吗?预先感谢您对此的任何帮助!
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

我认为您的问题是当您不是 root 时以 root 身份执行命令的一般问题。

有几种方法可以解决这个问题:

1/. 编写以 root 身份执行的特定脚本或二进制文件。

2/. 使用 sudo 并确保 pi Web 身份 (www-data) 在 /etc/sudoers 文件中有一个条目,使其能够执行您指定为 root 的命令,而无需使用密码

3/. 更改您想要的文件的权限,例如组写入并使其组为www-data。唔。我看到我的是netdev。可能更安全的是给它 666 权限,以便它的世界可写,并保持组不变。

我认为对于在受保护的环境中进行快速破解来说,后者可能是最简单的。例如 sudo chmod 666 /etc/dhcpcd.conf 并查看是否有效。

2/. 对于相当安全的环境来说是可以的。

我用过1/. 当我希望所有用户都能够执行 root 权限的操作时



查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 55 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信