composer выдает ложное предупреждение при запуске от имени пользователя без полномочий root с установленным битом setuid - PullRequest
0 голосов
/ 30 октября 2018

Я настроил свой исполняемый файл php, т. Е. / Usr / local / bin / php, на setuid для пользователя deploy. Так что если любой пользователь вызывает этот двоичный файл php, он должен выполняться только как deploy. Как вы можете видеть ниже, бинарный файл php прерван пользователем без полномочий root deploy. Но когда я запускаю php composer.phar как root, почему я получаю это предупреждение Do not run Composer as root/super user!. Я не должен получать это предупреждение, поскольку бинарный файл php принадлежит deploy и бит setuid установлен.

> ls -al /usr/local/bin/php
 -rwxr-xr-x    1 root     root     /usr/local/bin/php

> chown deploy:deploy /usr/local/bin/php 

> chmod u+s /usr/local/bin/php

> ls -al /usr/local/bin/php
 -rwsr-xr-x    1 deploy   deploy   /usr/local/bin/php

> ls -al composer.phar 
 -rwxr-xr-x    1 deploy   1000     composer.phar

> whoami 
 root

> php composer.phar -V
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer version 1.7.2 2018-08-16 16:57:12

Однако даже при выполнении php composer.phar install как root созданный каталог поставщика принадлежит deploy.

Фактически процесс composer игнорирует бит setuid, но когда он создает какой-либо файл / dir, он подчиняется setuid.

Я вставил ниже в composer.phar и получил нужного пользователя deploy, но с предупреждением Don't call as root. Это проблема композитора?

$processUser = posix_getpwuid(posix_geteuid());
print $processUser['name'];

1 Ответ

0 голосов
/ 30 октября 2018

Это похоже на ошибку в композиторе https://github.com/composer/composer/issues/7758#issuecomment-434308672

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...