Вы не можете sudo изнутри PHP. Если вы хотите запустить что-то как root, вам нужно добавить пользователя Apache www
в файл sudoers, что, вероятно, не очень хорошая идея. И если вы пишете скрипт установки, который другие будут запускать, это даже не вариант.
В этом случае вы не можете создавать файлы в каталоге, к которому у вас нет доступа в начале, хотя вы можете использовать chmod()
, чтобы сделать файл доступным только после того, как вы его закончили. Это не означает, что другой скрипт, запущенный Apache, не может впоследствии использовать одну и ту же функцию для повторного добавления атрибутов записи.
Лучше всего создать пустые версии файлов, которые вам нужно написать. Попросите свой скрипт проверить доступ на запись в начале, а если нет, сообщите пользователю, что им нужно сделать, чтобы дать вам доступ на запись. Как только это будет завершено, они смогут продолжить. Ваш сценарий будет записывать файлы, а затем сообщать пользователю, что им нужно сделать, чтобы удалить доступ на запись. Ваш скрипт проверяет, что это произошло, и не позволит пользователю перейти к следующему шагу, пока не удастся удалить доступ на запись.
Когда вы говорите «админ», что вы имеете в виду? На какой платформе вы работаете? –