sudo를 사용하지 않고 Composer 실행 (변경된 소유자 및 권한 시도) 소유 한 다음

작곡가 (예 : 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-data775로 설정 권한, 여전히 나는 실행하지 않고 작곡가를 실행할 수 없습니다 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에 정의되지 않은 것 같습니다.

여기에 관련된 토론


답변