Besto'yu sudo kullanmadan çalıştırma (değiştirilen sahip ve izinler denendi)


13

Besteciyi her çalıştırdığımda (örneğin, sudo composer install, sudo composer self-updatevb.) Dosyanın sahibi root olduğundan bunu sudo ile çalıştırmam gerekiyor.

Ancak besteciyi sudo root ile her kullandığımda satıcı klasörüne sahip olurum ve daha sonra bu klasörün / ayrıcalıkların sahibini root'tan www-data'ya değiştirmek zorunda kalırım.

Her zaman sudo çalıştırmak zorunda kalmamak için bu düzeltmek için en iyi yolu nedir?

Sahibinin /usr/local/bin/composerkökten www-verisine değiştirilsin mi?

Bu, sudo'yu her kullandığımda sahipliğini değiştirmek ve izin atamaktan kaçınmak için ideal bir yöntem composer installmi?

Düzenleme: Besteci için izinler şu anda -rwxr-xr-x. Ve sahibini anahtarlama denedim /usr/local/bin/composerüzerinde www-data:www-data775 ° C'ye ayarlanmış izinlere sahip ve hala ben çalıştırmadan besteci koşamam sudo.

Yanıtlar:


9

"Herkes" in besteciyi okumasına ve yürütmesine izin verilirse, sudo kullanmanıza gerek yoktur:

sudo chmod 755 /var/local/bin/composer

Besteciyi en az bir kez zaten yürüttüğünüz için root, besteciler (kullanıcı başına) önbellek dizini artık root'a aittir ve bu nedenle normal kullanıcınız tarafından yazılamaz.

sudo chown -R lamp:lamp /home/lamp/.composer

dosya sahibini düzeltir.


Bunu denedim ve hala composer self-updatesudo kullanmadan çalışamıyorum. 775 kullanmam gerekir mi?
binin

Kendini güncelleme 755 ile çalışmaz, ama bu önemli mi? kendini güncelleme her gün yürütmeniz gereken bir şey değildir, sadece 2 haftada bir güncelleyin (tabii ki sudo ile).
15'te tkausl

Denendi composer updateve bu da bu izinlerle çalışmaz. Hala sudo kullanmak zorundayım. Bu aldığım hatafile_put_contents(/home/lamp/.composer/cache/repo/https---packagist.org/packages.json): failed to open stream: Permission denied
kasırgalara binmek

ooh, evet, zaten bazı sezgilerinizi güncellemek için "sudo" kullandınız, bence "/home/lamp/.composer/" köküne sahip, sadece bu klasörü silin (sadece bir önbellek), o zaman olmadan çalışmalıdır sudo. (Ya değişim sahiplik: chown -R lamp:lamp /home/lamp/.composer)
tkausl

Bu hile yaptı, sahibini lambaya değiştirerek gitti. Cevabınızı güncelleyebilir misiniz? Kabul edeceğim mi? Teşekkürler takusl
binmek

5

Bu konuyla haftalardır uğraşıyorum.

Bence çözüm -H ile besteci kendini güncellemesini çalıştırmak

sudo -H composer self-update

Bunu yapmadan önce, besteciyi yürütmek istediğiniz kullanıcının kök dizinindeki .composer dizinlerini ve giriş dizinini kaldırdığınızdan emin olun.

sudo rm -rf /root/.composer
sudo rm -rf /home/ubuntu/.composer

-H bayrağı olmadan sudo composer self-update çalıştırıldığında, root'a ait olan ~ / .composer oluşturulur ve diğer composer komutlarının izin hataları olmasını önler.

composer config
composer install 

Bence sudo composer self-update çağrısı, mevcut kullanıcıların ana dizininde root'a sahip dosyalar oluşturmamalıdır.

Ubuntu 14.04 bestecisinde bu talimatları izlerseniz önbelleği yerleştireceğinizi unutmayın:

 ~/.cache/composer

Ziyade:

~/.composer/cache

Bunun nedeni Ubuntu 14.04'te tanımlanan XDG_RUNTIME_DIR ortam değişkeni, ancak Ubuntu 12.04'te tanımlanmış görünmüyor

İlgili bir tartışma burada


Bestecinin en güncel sürümünü zaten çalıştırıyorsanız bu yardımcı olmaz. $ sudo -H composer self-update $ You are already using composer version 1.3.0 (stable channel).
Cragmonkey

@Cragmonkey - Bestecinin en son sürümünü çalıştırıyordum ama sadece ~/.composerklasörü kaldırmak sorunu çözüyor gibi görünüyor.
Cyclonecode
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.