Я просто хочу использовать php-скрипт с правами root с помощью обертки C, такой как tutorial.Setuid on scripts with C wrapper
Ls -l:
-rwsr-xr-x. 1 root root 6466 Aug 15 03:07 createConfig
-rwxrwxrwx. 1 root root 102 Aug 15 04:23 test.php
-rw-r--r--. 1 root root 822 Aug 14 21:35 index.php
createConfig.c:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main(void) {
system("/usr/bin/php /var/www/html/test.php");
return 0;
}
test.php:
<?php
mkdir("/root/ourDir");
?>
index.php:
<?php
exec("/var/www/html/createConfig");
?>
но при запуске index.php в браузере я получил эту ошибку:
sh: /var/www/html/createConfig: Permission denied
Благодарности
Почему бы вам не сделать [execve (2)] (http://man7.org/linux/man-pages/man2/execve.2.html) или [execvp (3)] (http: //man7.org/linux/man-pages/man3/exec.3.html)? –
Базиле, есть ли примеры? Я пробовал их, но не совсем работал. Параметры не были переданы правильно и другие проблемы .... было давно вспомнить –
Также см. [Как запустить внешнюю команду как определенный пользователь в PHP] (https://stackoverflow.com/q/1898393/608639) – jww