Vraag Wat is de eenvoudigste manier om bestanden te bewerken en toe te voegen aan "/ var / www"?


Na de installatie van de webserver is er een eenvoudige manier om een ​​gebruiker in staat te stellen de grafische interface te gebruiken om bestanden en mappen naar de lokale webserver te kopiëren / var / www

Ik gaf mezelf administratieve privileges in Ubuntu, maar het staat nog steeds geen kopieën toe.


139
2018-01-03 19:49


oorsprong


Verwant: askubuntu.com/questions/45496/... - Marco Ceppi♦
Gerelateerd (veiliger): Hoe vermijd je het gebruik van sudo bij het werken in / var / www? - Lekensteyn
Ik probeerde te doen wat Marcos Roriz Junior zei. Ik heb gekopieerd en geplakt toen Marcos schreef en mijn gebruikersnaam veranderde in mijn gebruikersnaam. Maar ik kan het niet opslaan in / etc / apache2 / sites-available omdat het me niet toestaat om in die map op te slaan. ???


antwoorden:


Als u / var / www beschrijfbaar maakt voor zijn groep en de gebruiker aan de groep toevoegt, hoeft die gebruiker geen sudo te gebruiken. Probeer dit:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www

De gebruiker moet dan / var / www / files zonder problemen kunnen bewerken.

De eerste regel voegt de gebruiker toe aan de www-gegevensgroep, de tweede regel wist alle bestanden met eigendom in de war en de derde maakt het zo dat alle gebruikers die lid zijn van de www-datagroep alle bestanden kunnen lezen en schrijven in / var / www.

Als u bent ingelogd als <username> u moet zich afmelden en weer aanmelden om het groepslidmaatschap te activeren.


207
2017-07-01 01:14



Ik doe dit, plus een paar wendingen: sudo adduser <username> www-data; sudo chgrp -R www-data /var/www; sudo chmod -R g+rw /var/www; find /var/www -type d -print0 | sudo xargs -0 chmod g+s  log uit en log opnieuw in om uw nieuwe groep op te halen. ik doe de chmod g+s om nieuwe bestanden en mappen te forceren om de groepseigenaar (www-data) op te halen, en ervoor te zorgen dat mijn permissies veranderen. - Don Faulkner
@DonFaulkner Om veiligheidsredenen is het waarschijnlijk beter te houden /var/www eigendom van root: root, dus in plaats van sudo chgrp -R www-data /var/www beter van wel sudo chgrp -R www-data /var/www/*. - Desmond Hume
Vreemd genoeg, na het uitvoeren van die 3 commando's, sommige van mijn submappen en bestanden (zoals composer.json en LICENSE) worden weergegeven met behulp van het binaire pictogram. Het openen van de composer.json in een teksteditor toont een leeg bestand en het ergste is dat ik ook niet in sommige van de submappen kan bladeren, ik heb zelfs het extra commando geprobeerd zoals voorgesteld door @DonFaulkner en nog steeds geen geluk. Als ik de terminal als root gebruik, is alles zoals het hoort. Heeft iemand enig idee waarom dit gebeurt? - Alix Axel
@itsols moet je uitloggen en dan inloggen om te laten werken. - jini
@DonFaulkner - Zou je willen uitleggen hoe het hebben van bestanden die eigendom zijn van root een aanvalsvector kan zijn? (Ik ben nieuw in dit alles, en ik ben in de war omdat sommigen een voor de zekerheid twijfelachtige, voor de wortel benadering van beveiliging lijken te verdedigen, terwijl anderen onvermurwbaar niet-eigen-wortel zeggen. ) - Andrew Cheong


Jij kan chown, dat is change de ownvan die map. Hiermee kunt u de gebruiker en groep van de map wijzigen, zodat uw gebruiker er bestanden aan kan toevoegen / verwijderen. Om het te doen, vervang yourusername met je naam en voer:

sudo chown yourusername.users /var/www

En dat is het.


Ik geef er echter de voorkeur aan om een ​​virtuele host in mijn thuismap te maken, het is veel eenvoudiger.

In principe kunt u elke map gebruiken als een apache-dienende map. Om te laten zien hoe eenvoudig het is, laten we aannemen dat je gebruikersnaam is gebruikersnaam en dat de map die u wilt gebruiken is / Home / username / www

Maak het volgende bestand (bijvoorbeeld mywebprojects) in / etc / apache2 / sistes-beschikbaar ter vervanging van de gebruikersnaam en het mappad (eigenlijk gewoon kopiëren en plakken en vervangen in #CHANGE HIER):

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    # CHANGE HERE
    DocumentRoot /home/username/www

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    # CHANGE HERE
    <Directory /home/username/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Laten we nu het maken www map, voeg een eenvoudige Hello-wereld toe, schakel de standaardwebsite uit (/var/www), schakel onze website in mywebprojects en herstart apache.

mkdir ~/www 
echo "<html><h1>Hello World</h1></html>" > ~/www/test.html
sudo a2dissite default #
sudo a2ensite mywebprojects
sudo service apache2 restart

En dat het, nu hoeft u niet naar toe te gaan /var/www, u voegt eenvoudig bestanden toe aan uw www (of een andere naam) en het is er al :).


25
2018-01-05 11:02



precies wat ik deed. Een voordeel hiervan is dat u de directory kunt wijzigen in een gedeeld station, zodat alle bestanden beschikbaar zijn wanneer u opstart in Windows / OSX. - Jason


Methode 1: 

  • druk op ALT+F2 en voer gksudo nautilus in en klik vervolgens op Uitvoeren.

    alt text

  • Het opent nautilus met rootprivileges.
  • Ga naar het bestandssysteem  var  www en nu kunt u uw bestanden toevoegen / kopiëren / plakken.

Methode 2: 

  • Installeren nautilus-gksu  Install nautilus-gksu
  • Na het installeren van het type nautilus -q in uw terminal om rechtsklikmenu's te vernieuwen.
  • Nu vindt u het item 'Openen als beheerder' in uw nautilus-menu met de rechtermuisknop.
  • Wanneer u bestanden met rootrechten moet openen, klikt u met de rechtermuisknop op dat bestand / die map en selecteert u 'Openen als beheerder'.
  • Het opent dat bestand / die map met root-toestemming.

    alt text


9
2018-01-03 19:55



Dit is absoluut de juiste manier om te gaan! Ik vraag me af waarom dit niet het geselecteerde antwoord was. De andere methoden houden in dat je met de toestemmingen knoeit en ik zou mijn systeem niet riskeren door dit te doen. +1 voor je antwoord. - itsols
@itsols: daar ben ik het volledig mee oneens: u riskeert uw systeem door Nautilus volledige roottoegang tot uw bestandssysteem te verlenen in plaats van de juiste rechten te configureren voor toegang tot /var/www. Eén keer per ongeluk op de knop drukken [delete] sleutel en je zou kunnen eindigen met een niet-opstartbaar systeem. - Nathan Osman
@GeorgeEdison Maar dit is het enkel en alleen om de toestemming in te stellen. En nadat dit is gebeurd, sluiten we nautilus en werken we zoals gewoonlijk. Is dit echt zo slecht? Excuseer me voor mijn onwetendheid hier. Hoewel ik sinds versie 5.x een Ubuntu-gebruiker ben, vind ik het nog steeds een hele uitdaging om een ​​ontwikkelmachine op te zetten en er lijkt geen duidelijke manier te zijn om dit te doen (voor mij tenminste ... - itsols
@itsols: Het tweede deel van dit antwoord is de voorkeursmethode en is degene die ik gebruik. - Nathan Osman


Het kan zo simpel zijn als sudo usermod -a -G developers $username ACL gebruiken.

Dat vergt echter een beetje werk om te beginnen. Dit is tenminste voor Ubuntu 10.10. Monteer eerst de bestandssystemen met de acl-optie in / etc / fstab.

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 standaardinstellingen, acl 0 1

sudo mount -o remount,acl /

Maak vervolgens een groep waartoe een gebruiker kan behoren voor dit doel.

sudo groupadd developers
sudo usermod -a -G developers $username

De gebruiker moet zich opnieuw en opnieuw aanmelden om lid te worden van de ontwikkelaarsgroep.

Dit doe je natuurlijk niet als je content hebt in de / var / www directory die je wilt, maar om te illustreren dat je het hebt ingesteld om te starten:

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root:developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

Vervang vervolgens de verwijzingen naar "/ var / www" door "/ var / www / public" in een configuratiebestand en herlaad.

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

Als we verwijderen en hernoemen wilden beperken van alle gebruikers behalve de gebruiker die het bestand heeft gemaakt:

sudo chmod +t /var/www/public

Op deze manier, als we mappen willen maken voor frameworks die bestaan ​​buiten de Apache document root of misschien server-beschrijfbare mappen maken, het is nog steeds eenvoudig.

Apache-beschrijfbare logboeken map:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

Door Apache leesbare bibliotheekdirectory:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/logs
sudo chmod 0750 /var/www/logs

6
2018-01-05 02:41



Zou je kunnen uitleggen wat er met de UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-lijn? Moet het letterlijk worden toegevoegd of wil de gebruiker de regel vinden en de opties achteraan bewerken? - MadMike
Waarom sla je de sudo rm -rf /var/www-stap. Het lijkt niet echt nodig. - MadMike
@MadMike het is bedoeld om te worden gearchiveerd met hexadecimale cijfers. Als u wilt weten wat uw verschillende partities zijn gelabeld, voert u uit sudo blkid - Azendale
@Azendale Toen ik de opmerking schreef, was dit bedoeld als suggestie om het antwoord te verbeteren. Vandaag weet ik dat ik dit veel directer moet voorstellen. Zoals: voeg toe hoe u de UUID=xxxx-deel als met een sudo blkid. - MadMike


De eenvoudigste manier om te doen is de onderstaande stappen te volgen: -

  1. druk op alt + Ctrl + T en terminal zal openen en typen sudo -s en log in met uw wachtwoord.
  2. Nu bent u ingelogd als root.
  3. Typ nu in nautilus en het zal de thuismap voor u openen als root. U kunt nu eenvoudig de bestanden bewerken en doen wat u maar wilt.

Ik hoop dat dit helpt. :)


0
2018-04-08 13:49



Om een ​​root-shell geschikt te maken voor grafische toepassingen zoals Nautilus, sudo -i heeft de voorkeur boven sudo -s om dezelfde reden sudo -H heeft de voorkeur boven sudo voor het uitvoeren van een enkele grafische app. (sudo -s wordt niet gereset HOME, dus de gebruiker kan configuratiebestanden in hun homedirectory krijgen die bij hen horen maar in plaats daarvan bij root horen.) - Eliah Kagan
Ik raad het gebruik van het root-account ten zeerste af, vooral op servers. sudo biedt meer dan voldoende toegangscontroles, terwijl de sysadmin het beleid kan opstellen om ervoor te zorgen dat ontwikkelaars en ontwerpers geen pistool krijgen om hun eigen (en hun bedrijven!) voet af te schieten - Shayne


/var/www folder is eigendom van de root .. je moet het eigendom veranderen in je eigen gebruikersnaam voor het wijzigen van bestanden in deze map. Hiervoor kunt u de volgende opdrachten proberen ..

sudo -i  // om naar root-console te veranderen

sudo chown -R <username> <path> // for eg. sudo chown -R scott /var/www/html (scott is the username, -R indicates recrusive)

Nu het eigendom van de map /var/www/html will worden toegewezen aan de gebruiker scott. Nu kan Scott bestanden in deze map kopiëren / verplaatsen.


0
2017-12-16 05:31





Gebruik webmin als u de serverversie gebruikt. Het heeft een geweldige web-gebruikersinterface en bestandsbeheer. Dat of Filezilla


-1
2017-08-24 00:38



Kun je uitleggen "Als je de serverversie gebruikt"? Elk pakket dat op Ubuntu Server kan worden geïnstalleerd, kan op de desktopversie van Ubuntu worden geïnstalleerd. - Eliah Kagan