작곡가 (예 : sudo composer install, sudo composer self-update
등)를 실행할 때마다 파일 소유자가 root이므로 sudo 로이를 실행해야합니다.
그러나 sudo root와 함께 composer를 사용할 때마다 공급 업체 폴더를 소유 한 다음 해당 폴더 / 권한의 소유자를 root에서 www-data로 변경해야합니다.
매번 sudo를 실행할 필요가 없으므로이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
/usr/local/bin/composer
루트 소유자 를 www-data로 변경 하시겠습니까?
이것이 sudo를 사용할 때마다 소유권을 변경하고 권한을 할당하지 않아도되도록 이것을 처리하는 이상적인 방법 composer install
입니까?
편집 :
작곡가에 대한 권한은 현재 -rwxr-xr-x
입니다. 그리고 난의 소유자 전환 시도했습니다 /usr/local/bin/composer
에 이상을 www-data:www-data
775로 설정 권한, 여전히 나는 실행하지 않고 작곡가를 실행할 수 없습니다 sudo
.
답변
“모두”가 composer를 읽고 실행할 수 있으면 sudo를 사용할 필요가 없습니다.
sudo chmod 755 /var/local/bin/composer
이미 적어도 한 번으로 composer를 한 번 실행 했으므로 root
이제 composers (사용자 별) 캐시 디렉토리는 root가 소유하고 있으므로 일반 사용자가 쓸 수 없습니다.
sudo chown -R lamp:lamp /home/lamp/.composer
파일 소유자를 수정합니다.
답변
나는 몇 주 동안이 문제를 다루어 왔습니다.
해결책은 -H로 작곡가 자체 업데이트를 실행하는 것입니다.
sudo -H composer self-update
이 작업을 수행하기 전에 루트에서 .composer 디렉토리와 composer를 실행하려는 사용자의 홈 디렉토리를 제거하십시오.
sudo rm -rf /root/.composer
sudo rm -rf /home/ubuntu/.composer
-H 플래그없이 sudo composer 자체 업데이트를 실행하면 root가 소유 한 ~ / .composer가 작성되고 다른 composer 명령에 권한 오류가 발생하지 않습니다.
composer config
composer install
내 생각에 sudo composer self-update를 호출하면 현재 사용자 홈 디렉토리에 root가 소유 한 파일을 만들면 안됩니다.
Ubuntu 14.04 composer에서 다음 지침을 따르면 캐시가 다음 위치에 배치됩니다.
~/.cache/composer
오히려 :
~/.composer/cache
이것은 Ubuntu 14.04에 정의 된 XDG_RUNTIME_DIR 환경 변수 때문이지만 Ubuntu 12.04에 정의되지 않은 것 같습니다.