Frage Was ist der einfachste Weg, Dateien zu "/ var / www" zu bearbeiten und hinzuzufügen?


Nach der Installation des Webservers können Sie auf einfache Weise festlegen, dass ein Benutzer die grafische Oberfläche zum Kopieren von Dateien und Verzeichnissen auf den lokalen Webserver / var / www verwenden kann

Ich habe mir in Ubuntu administrative Rechte gegeben, aber es erlaubt immer noch keine Kopien.


139
2018-01-03 19:49


Ursprung


Verbunden: askubuntu.com/questions/45496/ ... - Marco Ceppi♦
Verwandt (sicherer): Wie vermeidet man die Verwendung von Sudo bei der Arbeit in / var / www? - Lekensteyn
Ich habe versucht, das zu tun, was Marcos Roriz Junior gesagt hat. Ich habe kopiert und eingefügt, als Marcos den Benutzernamen in meinen Benutzernamen geschrieben und geändert hat. Aber ich kann es nicht in / etc / apache2 / sites-available speichern, da es mir nicht erlaubt, in diesem Ordner zu speichern. ???


Antworten:


Wenn Sie / var / www für seine Gruppe schreibbar machen und den Benutzer der Gruppe hinzufügen, muss dieser Benutzer nicht sudo verwenden. Versuche dies:

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

Der Benutzer sollte dann in der Lage sein, / var / www / files ohne Probleme zu bearbeiten.

Die erste Zeile fügt den Benutzer der www-Datengruppe hinzu, die zweite Zeile löscht alle Dateien mit vermischten Eigentumsrechten und die dritte Zeile macht es so, dass alle Benutzer, die Mitglieder der www-Datengruppe sind, alle Dateien lesen und schreiben können / var / www.

Wenn Sie als eingeloggt sind <username> Sie müssen sich abmelden und erneut anmelden, damit die Gruppenmitgliedschaft wirksam wird.


207
2017-07-01 01:14



Ich mache das, plus ein paar Drehungen: 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  Logout und logge dich erneut ein, um deine neue Gruppe abzuholen. Ich mache die chmod g+s um neue Dateien und Verzeichnisse zu erzwingen, um den Gruppeneigner (www-data) abzurufen, stellen Sie sicher, dass sich meine Berechtigungen ändern. - Don Faulkner
@DonFaulkner Aus Sicherheitsgründen ist es wahrscheinlich besser halt /var/www im Besitz von root: root, also statt sudo chgrp -R www-data /var/www es sollte besser sein sudo chgrp -R www-data /var/www/*. - Desmond Hume
Seltsamerweise, nach dem Ausführen dieser 3 Befehle, etwas meiner Unterordner und Dateien (wie composer.json und LICENSE) werden mit dem Binärsymbol angezeigt. Öffnen der composer.json in einem Texteditor zeigt eine leere Datei und das Schlimmste ist, dass ich nicht einige der Unterordner entweder durchsuchen kann, habe ich sogar den zusätzlichen Befehl wie von @DonFaulkner vorgeschlagen und immer noch kein Glück. Wenn ich das Terminal als root benutze, ist alles so, wie es sein sollte. Hat jemand irgendwelche Ideen, warum das passiert? - Alix Axel
@itsols müssen Sie sich abmelden und dann einloggen, damit es funktioniert. - jini
@DonFaulkner - Würde es Ihnen etwas ausmachen, herauszufinden, wie Dateien, die Root gehören, ein Angriffsvektor sein könnten? (Ich bin neu in all dem, und ich bin verwirrt, weil einige für eine Sicherheit im Zweifelsfall, von Haus zu Haus zu sprechen scheinen, während andere hartnäckig sagen, dass sie nicht von Haus aus sind. ) - Andrew Cheong


Sie können chown, das ist chAnge die owner dieses Ordners. Dadurch können Sie den Benutzer und die Gruppe des Ordners ändern, sodass Ihr Benutzer Dateien hinzufügen / entfernen kann. Um es zu tun, ersetzen yourusername mit deinem Namen und Lauf:

sudo chown yourusername.users /var/www

Und das ist es.


Allerdings ist es viel einfacher, einen virtuellen Host in meinem Home-Ordner zu erstellen.

Grundsätzlich können Sie einen beliebigen Ordner als Apache-Serving-Ordner verwenden. Um es einfacher zu machen, nehmen wir an, dass Ihr Benutzername ist Nutzername und dass der Ordner, den Sie bereitstellen möchten, ist / home / Benutzername / www

Erstellen Sie die folgende Datei (zum Beispiel mywebprojects) in / etc / apache2 / sistes-available ersetzt den Benutzernamen und den Ordnerpfad (im Grunde kopieren und einfügen und ersetzen 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>

Jetzt können wir das erstellen www Ordner, fügen Sie eine einfache Hallo Welt, deaktivieren Sie die Standard-Website (/var/www), aktivieren Sie unsere Website mywebprojects und starte Apache neu.

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

Und dass es jetzt nicht mehr nötig ist /var/www, fügen Sie einfach Dateien zu Ihrem hinzu www (oder andere gegebene) und es ist schon da :).


25
2018-01-05 11:02



genau was ich getan habe. Ein Plus dafür ist, dass Sie das Verzeichnis auf ein freigegebenes Laufwerk ändern können, so dass alle Dateien verfügbar sind, wenn sie in Windows / OSX gestartet werden. - Jason


Methode 1: 

  • Drücken Sie ALT+F2 Geben Sie gksudo nautilus ein und klicken Sie auf Ausführen.

    alt text

  • Es öffnet Nautilus mit Wurzelvorrechten.
  • Gehe zu Dateisystem  var  www und jetzt können Sie Ihre Dateien hinzufügen / kopieren / einfügen.

Methode 2: 

  • Installieren Nautilus-Gksu  Install nautilus-gksu
  • Nach der Installation des Typs nautilus -q in Ihrem Terminal, um Rechtsklick-Menüs zu aktualisieren.
  • Jetzt finden Sie den Eintrag 'Als Administrator öffnen' in Ihrem Nautilus-Kontextmenü.
  • Wenn Sie Dateien mit root-Berechtigung öffnen müssen, klicken Sie einfach mit der rechten Maustaste auf diese Datei / Ordner und wählen Sie "Als Administrator öffnen".
  • Es öffnet diese Datei / Ordner mit root-Berechtigung.

    alt text


9
2018-01-03 19:55



Das ist definitiv der richtige Weg! Ich frage mich, warum das nicht die ausgewählte Antwort war. Die anderen Methoden beinhalten das Durcheinander mit den Berechtigungen und ich würde mein System dadurch nicht riskieren. +1 für deine Antwort. - itsols
@itsols: Ich stimme überhaupt nicht zu - Sie riskieren Ihr System, indem Sie Nautilus den vollständigen Root-Zugriff auf Ihr Dateisystem gewähren, anstatt Berechtigungen ordnungsgemäß zu konfigurieren, um den Zugriff darauf zu ermöglichen /var/www. Ein zufälliger Stoß der [delete] Schlüssel und Sie könnten mit einem nicht mehr startbaren System enden. - Nathan Osman
@GeorgeEdison Aber das ist nur um die Erlaubnis zu setzen. Und nachdem dies geschehen ist, schließen wir Nautilus und arbeiten wie gewohnt. Ist das wirklich so schlimm? Entschuldige meine Unwissenheit hier. Obwohl ich seit Version 5.x ein Ubuntu-Benutzer bin, finde ich es immer noch ziemlich schwierig, einen Entwicklungscomputer einzurichten, und es scheint keine klare Methode dafür zu geben (zumindest für mich ...). - itsols
@itsols: Der zweite Teil von diese Antwort ist die bevorzugte Methode und ist diejenige, die ich verwende. - Nathan Osman


Es könnte so einfach sein wie sudo usermod -a -G developers $username Verwenden von ACL.

Das erfordert ein wenig Arbeit, um anzufangen. Dies ist zumindest für Ubuntu 10.10. Mounten Sie zunächst die Dateisysteme mit der Option acl in / etc / fstab.

sudo vim /etc/fstab

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

sudo mount -o remount,acl /

Dann erstellen Sie eine Gruppe, zu der ein Benutzer gehören kann.

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

Der Benutzer muss sich an- und abmelden, um Mitglied der Entwicklergruppe zu werden.

Natürlich tun Sie dies nicht, wenn Sie Inhalt im gewünschten Verzeichnis / var / www haben, aber nur um zu veranschaulichen, wie man es startet:

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

Dann ersetzen Sie die Verweise auf "/ var / www" durch "/ var / www / public" in einer Konfigurationsdatei und laden Sie neu.

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

Wenn wir das Löschen und Umbenennen von allen außer dem Benutzer einschränken wollten, der die Datei erstellt hat:

sudo chmod +t /var/www/public

Auf diese Weise, wenn wir Verzeichnisse für Frameworks erstellen möchten, die außerhalb der Apache Document Root oder vielleicht serverbeschreibbare Verzeichnisse erstellen, es ist immer noch einfach.

Apache-beschreibbares Protokollverzeichnis:

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

Apache-lesbares Bibliotheksverzeichnis:

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

6
2018-01-05 02:41



Kannst du erklären, was mit der UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-Linie? Soll es wörtlich hinzugefügt werden oder soll der Benutzer die Zeile finden und die Optionen dahinter bearbeiten? - MadMike
Warum überspringst du nicht die sudo rm -rf /var/www-Schritt. Es scheint nicht wirklich notwendig zu sein. - MadMike
@MadMike soll mit hexadezimalen Ziffern eingereicht werden. Um herauszufinden, wie Ihre verschiedenen Partitionen gekennzeichnet sind, führen Sie sie aus sudo blkid - Azendale
@Azendale Als ich den Kommentar schrieb, war es ein Vorschlag, wie man die Antwort verbessern kann. Heute weiß ich, dass ich das viel direkter vorschlagen sollte. Wie: Bitte fügen Sie hinzu, wie Sie die UUID=xxxx-Teil wie bei einem sudo blkid. - MadMike


Der einfachste Weg ist, die folgenden Schritte zu befolgen:

  1. Drücken Sie Alt + Strg + T und das Terminal wird geöffnet und eingegeben sudo -s und log dich mit deinem Passwort ein.
  2. Jetzt bist du eingeloggt als root.
  3. Jetzt eintippen nautilus und es öffnet den Home-Ordner für Sie als root. Jetzt können Sie die Dateien einfach bearbeiten und tun, was Sie wollen.

Hoffe das hilft. :)


0
2018-04-08 13:49



Um eine Root-Shell zu erhalten, die für die Ausführung von grafischen Anwendungen wie Nautilus geeignet ist, sudo -i ist vorzuziehen sudo -s aus dem gleichen Grunde sudo -H ist vorzuziehen sudo zum Ausführen einer einzelnen grafischen App. (sudo -s wird nicht zurückgesetzt HOME, so der Benutzer kann Konfigurationsdateien in ihrem Home-Verzeichnis erhalten, die ihnen gehören sollten, aber stattdessen zu root gehören.) - Eliah Kagan
Ich rate dringend davon ab, den root-Account zu verwenden, insbesondere auf Servern. sudo bietet mehr als adäquate Zugriffskontrollen, während der Sysadmin Richtlinien erstellen kann, um sicherzustellen, dass Entwickler und Entwickler keine Handfeuerwaffen erhalten, um ihre eigenen (und ihre Firmen!) Fuß zu schießen - Shayne


/var/www folder gehört der Wurzel .. Sie müssen den Besitz zu Ihrem eigenen Benutzernamen ändern, um Dateien in diesem Ordner zu ändern. Dafür können Sie die folgenden Befehle ausprobieren.

sudo -i  // um zur root-Konsole zu wechseln

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

Jetzt der Besitz des Ordners /var/www/html will dem Benutzer zugewiesen werden scott. Jetzt kann scott Dateien in diesem Ordner kopieren / verschieben.


0
2017-12-16 05:31





Wenn Sie die Serverversion verwenden, versuchen Sie es mit webmin. Es hat eine großartige Web-Benutzeroberfläche und einen Dateimanager. Entweder das oder Filezilla


-1
2017-08-24 00:38



Können Sie "Wenn Sie die Serverversion verwenden" erklären? Jedes Paket, das auf Ubuntu Server installiert werden kann, kann auf der Desktop-Version von Ubuntu installiert werden. - Eliah Kagan