Bij het inzetten met capistrano wordt de groepsinstelling genegeerd

In mijn deploy-bestand heb ik de groep ingesteld op www-data:

set :user,            "root"
set :group,           "www-data"

dus bij het gebruik van cap: setup verwachtte ik dat capistrano de mappen met root zou bekijken: www-data

Maar alle mappen en bestanden zijn root: root.

Om het even welke ideeën waar dit probleem uit zou kunnen komen?

Informatie: ik gebruik System-wide-rvm.

6
Dit is een vrij slechte gewoonte om als root te implementeren. Ik raad aan om een ​​gebruiker te maken en ermee te implementeren.
toegevoegd de auteur Julien Pellet, de bron

3 antwoord

wat betreft mijn begrip moet je het handmatig doen, wat setup doet gebruik de gebruiker om in te loggen, niet om de rechten op de map in te stellen.

Ik heb geen groepsinstelling gevonden voor capistrano, misschien gebruikte je hiervoor een aantal extensies?

Wat je zou kunnen doen om het te veranderen zou kunnen zijn:

after "deploy:setup", :setup_group
task :setup_group do
  run "chown -R :#{group} #{deploy_to} && chmod -R g+s #{deploy_to}"
end

Maar in de eerste plaats zou u root niet moeten gebruiken voor implementatie, aangezien @Julian in opmerking vermeldt, betere praktijken zijn om een ​​afzonderlijke gebruiker voor deze taak te gebruiken en zijn groep in de juiste groep te plaatsen, dan zal het bovenstaande niet nodig zijn taak en zal automatisch werken.

8
toegevoegd
God, ik gebruikte jarenlang gedachteloos set: group ! Nooit gemerkt, want meestal zijn mijn gebruikersnaam en groep hetzelfde :)
toegevoegd de auteur Sergio Tulentsev, de bron
Ik weet niet waarom het niet meer werkt, maar dit helpt, THX. Werken aan de wijziging van niet-rootimplementatie, maar dit biedt veel nieuwe problemen
toegevoegd de auteur PascalTurbo, de bron

Beter dan het oplossen van een probleem is het niet in de eerste plaats:

  1. First, create another user to deploy with (as Julien suggests).
    Say we call him deployer.
  2. Then use him for the SSH connection
    set :user, 'deployer'
  3. Lastly, we don't want to be use sudo, so turn it off by adding
    set :use_sudo, false
    to your deploy.rb.
2
toegevoegd
Wanneer ik dit doe, kan apache de bestanden niet lezen omdat deze onder een andere gebruiker/groep wordt uitgevoerd naar de gebruikende gebruiker. Als ik vervolgens handmatig -R naar de webserver-gebruiker stuurde, werkt de site. Suggesties?
toegevoegd de auteur joshua.paling, de bron
@ joshua.paling Hoe zit het met het toevoegen van de implementatie aan de www-gegevensgroep? Dit werkte voor mij. (Ubuntu: sudo adduser deployer www-data )
toegevoegd de auteur marvin, de bron

Gewoon chanteren: er is geen sprake van: groep in de broncode van Capistrano dan ook . Ik veronderstel dat het een ladingcultusoptie is. En de: gebruikersoptie wordt alleen gebruikt voor de SSH-verbinding.

Wat uw vraag betreft, mappen en bestanden die door Capistrano worden gemaakt, zijn gemaakt met de standaardmachtigingen, deze worden nooit chown s op enigerlei wijze; als u implementeert als root dan behoren ze tot root: root .

2
toegevoegd