允许 www-data 用户将 root 挂载为 RW

允许 www-data 用户将 root 挂载为 RW

我运行的系统/大部分时间都将根分区 ( ) 安装为“ro”(只读)。但是,我需要这样做,以便“www-data”用户可以将其设置为“rw”。

为了使其成为“rw”,我使用命令sudo mount -o remount,rw /。这有效。

但是,当 PHP 脚本(“www-data”用户)执行相同的命令时,它会失败。

/etc/sudoers.d/我在文件夹中创建了一个包含以下内容的文件:

www-data ALL=(ALL) NOPASSWD: ALL

我可以确认它有效,因为我可以/usr/bin/sudo /sbin/reboot在 PHP 中执行该命令。但是,该/bin/mount命令不起作用。我还需要做其他事情吗?

我将使 sudoers 文件更加具体,以便只能执行该特定命令,但现在我只是想让它工作。

查看日志。手动执行命令后:

2020-10-22T19:37:19+0000 d0-14-11-00-00-03 sudo[18582]:       pi : TTY=serial1 ; PWD=/home/pi ; USER=root ; COMMAND=/bin/mount -o remount,rw /
2020-10-22T19:37:20+0000 d0-14-11-00-00-03 sudo[18582]: pam_unix(sudo:session): session opened for user root by (uid=0)
2020-10-22T19:37:20+0000 d0-14-11-00-00-03 kernel: EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
2020-10-22T19:37:20+0000 d0-14-11-00-00-03 sudo[18582]: pam_unix(sudo:session): session closed for user root

通过 PHP 脚本执行命令后:

2020-10-22T19:38:26+0000 d0-14-11-00-00-03 sudo[18703]: www-data : TTY=unknown ; PWD=/var/www/web ; USER=root ; COMMAND=/bin/mount -vo remount,rw /
2020-10-22T19:38:27+0000 d0-14-11-00-00-03 sudo[18703]: pam_unix(sudo:session): session opened for user root by (uid=0)
2020-10-22T19:38:27+0000 d0-14-11-00-00-03 sudo[18703]: pam_unix(sudo:session): session closed for user root
2020-10-22T19:38:27+0000 d0-14-11-00-00-03 kernel: EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)

解决了

使用这里的解决方案解决了:

在通过 shell 执行挂载之前,通过 PHP 和 apache2 重新挂载根文件系统不起作用

相关内容