Каждый раз, когда я запускаю composer (например, sudo composer install, sudo composer self-update
и т. Д.), Мне нужно запускать это с помощью sudo, поскольку владельцем файла является root.
Тем не менее, каждый раз, когда я использую композитор с sudo root, он владеет папкой vendor, а затем мне приходится менять владельца этой папки / привилегий с root на www-data.
Как лучше всего это исправить, чтобы мне не приходилось каждый раз запускать sudo?
Сменить владельца /usr/local/bin/composer
с root на www-data?
Является ли это идеальным способом справиться с этим, чтобы избежать необходимости менять владельца и назначать разрешение каждый раз, когда я использую sudo composer install
?
Редактировать: Разрешения для композитора в настоящее время -rwxr-xr-x
. И я попытался переключить владельца /usr/local/bin/composer
на www-data:www-data
с разрешениями, установленными на 775, и все же я не могу запустить composer без запуска sudo
.
Если "всем" разрешают прочитать и выполнить компоновщик, Вы не должны использовать sudo:
sudo chmod 755 /var/local/bin/composer
, Так как Вы уже выполнили компоновщик, по крайней мере, однажды как root
, компоновщики (на пользователя-) каталог кэша теперь принадлежит корню и поэтому не перезаписываем Вашим обычным пользователем.
sudo chown -R lamp:lamp /home/lamp/.composer
зафиксирует владельца файла.
Я занимался этой проблемой в течение многих недель.
я думаю, что решение состоит в том, чтобы выполнить самообновление компоновщика с-H
sudo -H composer self-update
Прежде, чем сделать это убедиться удалить .composer каталоги в корне и корневой каталог пользователя, Вы хотите выполнить компоновщик.
sudo rm -rf /root/.composer
sudo rm -rf /home/ubuntu/.composer
Выполнение sudo самообновление компоновщика без флага-H создаст ~/.composer, который принадлежит корню и предотвратит другие команды компоновщика, чтобы иметь ошибки разрешения.
composer config
composer install
, По-моему, вызов sudo самообновление компоновщика не должен создавать файлы, принадлежавшие корню в текущем пользовательском корневом каталоге.
Примечание, если Вы следуете этим инструкциям на компоновщике Ubuntu 14.04, поместит кэш в:
~/.cache/composer
, А не:
~/.composer/cache
Это из-за переменной среды XDG_RUNTIME_DIR, определенной в Ubuntu 14.04, но, кажется, не определяется в Ubuntu 12.04
Я нашел эту команду полезной для запуска композитора как www-data:
sudo su -l www-data -s /bin/bash -c "cd $PWD; composer install"
ссылка: https://commandroll.com/command/run-command-as-www-data-using-su