Не способный записать файл, когда в той же группе, использующей PHP posix_setuid ()

Посмотрите на http://mirror.centos.org/centos/6/oS/x86_64/packages/ И вы узнаете, что Возможно, устанавливается (если вы, конечно, не добавили больше репозиториев).

Сейчас

  • Java-1.7.0-OpenJDK.X86_64 - это пакет, содержащий JRE

  • Java-1.7.0-OpenJDK-Devel , содержит материал разработки (в основном, что вы не должны Нужно, если вы хотите только запустить приложения Java).

  • Java-1.7.0 может быть мета-пакет (по крайней мере, это мое предположение), что вытягивает первое и, вероятно, некоторые другие вещи, которые часто используются вместе с ним. Обычно это способ убедиться, что пользователи получают то, что они обычно хотят, если единственное, что они знают, состоит в том, что они хотят «установить Java 7».

0
19.03.2015, 08:58
1 ответ

posix_setuid (1500) изменяет только uid до 1500. Это не дает вам разрешения на доступ к файлу. Причина, по которой вы можете получить доступ к файлу при вошении в систему в качестве обычного пользователя, заключается в том, что у вас не только 1500, но и группа 1500 и дополнительных групп 27 и 33., имеющих дополнительную группу 33 ( www-data ) вещь, которая заставляет вас иметь доступ к файлу.

Вы, вероятно, должны делать это:

posix_initgroups("jonny", 1500);
posix_setuid(1500);

Орден важен: после того, как вы отказываетесь от корневого разрешения по вызове POSIX_SETUID , вы больше не можете установить свои учетные данные, поэтому он не будет работать в Другой заказ.

Обратите внимание, что документация для POSIX_INITGROUPS , вероятно, неверна (например, многие вещи в мире PHP). Он говорит, что «рассчитывает список доступа группы», но я думаю, что он на самом деле ведет себя как функция POSIX, которая она ссылается на ссылки, которая, если это правда, будет означать, что она не только рассчитала, но на самом деле устанавливает его.

1
28.01.2020, 02:51

Теги

Похожие вопросы