Domanda Qual è il modo più semplice per modificare e aggiungere file a "/ var / www"?


Dopo aver installato il server Web c'è un modo semplice per impostare un utente in grado di utilizzare l'interfaccia grafica per copiare file e directory sul server web locale / var / www

Mi sono concesso privilegi amministrativi in ​​Ubuntu, ma ancora non sono consentite le copie.


139
2018-01-03 19:49


origine


Relazionato: askubuntu.com/questions/45496/... - Marco Ceppi♦
Correlato (più sicuro): Come evitare di usare sudo quando si lavora in / var / www? - Lekensteyn
Ho provato a fare quello che ha detto Marcos Roriz Junior. Ho copiato e incollato quando Marcos ha scritto e cambiato nome utente con il mio nome utente. Ma non posso salvarlo in / etc / apache2 / sites-available perché non mi consente di salvare in quella cartella. ???


risposte:


Se rendi / var / www scrivibile dal suo gruppo e aggiungi l'utente al gruppo, quell'utente non dovrà usare sudo. Prova questo:

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

L'utente dovrebbe quindi essere in grado di modificare / var / www / files senza problemi.

La prima riga aggiunge l'utente al gruppo www-data, la seconda riga cancella tutti i file con proprietà incasinate e la terza fa in modo che tutti gli utenti membri del gruppo www-data possano leggere e scrivere tutti i file in / var / www.

Se hai effettuato l'accesso come <username> è necessario disconnettersi e riconnettersi affinché l'appartenenza al gruppo abbia effetto.


207
2017-07-01 01:14



Lo faccio, più alcuni colpi di scena: 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  disconnettiti e accedi di nuovo per prendere il tuo nuovo gruppo. Faccio la chmod g+s forzare nuovi file e directory a raccogliere il proprietario del gruppo (www-data), assicurandosi che le mie autorizzazioni cambino. - Don Faulkner
@DonFaulkner Per motivi di sicurezza, è probabilmente meglio mantenere /var/www di proprietà di root: root, quindi anziché sudo chgrp -R www-data /var/www è meglio sudo chgrp -R www-data /var/www/*. - Desmond Hume
Stranamente, dopo aver eseguito quei 3 comandi, alcuni delle mie sottocartelle e file (come composer.json e LICENSE) vengono visualizzati utilizzando l'icona binaria. Aprendo il composer.json in un editor di testo mostra un file vuoto e la cosa peggiore è che non riesco nemmeno a sfogliare alcune sottocartelle, ho anche provato il comando aggiuntivo come suggerito da @DonFaulkner e ancora senza fortuna. Se uso il terminale come root tutto è come dovrebbe essere. Qualcuno ha qualche idea del perché questo accada? - Alix Axel
@itsols devi disconnetterti e quindi accedere per farlo funzionare. - jini
@DonFaulkner - Ti dispiacerebbe approfondire come avere i file di proprietà di root potrebbe essere un vettore di attacco? (Sono nuovo di tutto questo, e sono confuso perché alcuni sembrano sostenere un approccio alla sicurezza quando in dubbio, da capo a piedi, mentre altri affermano categoricamente di non farlo da soli. ) - Andrew Cheong


Puoi chown, questo è change the owner di quella cartella. Ciò ti consentirà di modificare l'utente e il gruppo della cartella, consentendo all'utente di aggiungere / rimuovere file su di esso. Per farlo, sostituisci yourusername con il tuo nome ed esegui:

sudo chown yourusername.users /var/www

E questo è tutto.


Tuttavia, preferisco creare un virtualhost nella mia cartella home, è molto più semplice.

Fondamentalmente ti permette di usare qualsiasi cartella come una cartella di servizio Apache. Per dimostrarlo in modo semplice, assumiamo che il tuo nome utente sia nome utente e che la cartella che vuoi servire sia / Home / nomeutente / www

Crea il seguente file (per esempio mywebprojects) in / etc / apache2 / sistes-available sostituendo il nome utente e il percorso della cartella (in pratica solo copia e incolla e sostituisci in #CHANGE QUI):

<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>

Ora creiamo il www cartella, aggiungi un semplice mondo Hello, disabilita il sito web predefinito (/var/www), abilita il nostro sito web mywebprojects e riavvia apache.

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

E questo, ora non hai bisogno di andare a /var/www, semplicemente aggiungi file al tuo www (o altro dato) ed è già lì :).


25
2018-01-05 11:02



esattamente quello che ho fatto Un vantaggio in più è che puoi cambiare la directory in un'unità condivisa in modo che tutti i file siano disponibili all'avvio in Windows / OSX. - Jason


Metodo 1: 

  • stampa ALT+F2 e inserisci gksudo nautilus e quindi fai clic su Esegui.

    alt text

  • Aprirà nautilus con i privilegi di root.
  • Vai al filesystem  var  www e ora puoi aggiungere / copiare / incollare i tuoi file.

Metodo 2: 

  • Installare nautilus-gksu  Install nautilus-gksu
  • Dopo aver installato il tipo nautilus -q nel terminale per aggiornare i menu del tasto destro.
  • Ora troverai la voce "Apri come amministratore" nel menu del tuo clic con il tasto destro del nautilus.
  • Quando è necessario aprire qualsiasi file con i permessi di root, è sufficiente fare clic con il tasto destro del mouse su quel file / cartella e selezionare "Apri come amministratore".
  • Si aprirà quel file / cartella con il permesso di root.

    alt text


9
2018-01-03 19:55



Questa è sicuramente la strada giusta da percorrere! Mi chiedo perché questa non sia stata la risposta selezionata. Gli altri metodi implicano problemi con le autorizzazioni e non rischierei il mio sistema facendo così. +1 per la tua risposta. - itsols
@itsols: Non sono affatto d'accordo - rischiate il vostro sistema concedendo a Nautilus il completo accesso di root al vostro filesystem invece di configurare correttamente le autorizzazioni per consentire l'accesso a /var/www. Una spinta accidentale del [delete] chiave e potresti finire con un sistema non avviabile. - Nathan Osman
@GeorgeEdison Ma questo è solo per impostare il permesso. E dopo questo, chiudiamo il Nautilus e lavoriamo come al solito. E 'davvero così male? Scusami per la mia ignoranza qui. Nonostante sia un utente Ubuntu dalla versione 5.x, trovo ancora molto difficile creare una macchina di sviluppo e non sembra esserci un modo chiaro per farlo (almeno per me ... - itsols
@itsols: la seconda parte di questa risposta è il metodo preferito ed è quello che uso. - Nathan Osman


Potrebbe essere semplice come sudo usermod -a -G developers $username usando ACL.

Ciò richiede un piccolo lavoro, tuttavia, per iniziare. Questo è almeno per Ubuntu 10.10. Innanzitutto monta i file system con l'opzione acl in / etc / fstab.

sudo vim /etc/fstab

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

sudo mount -o remount,acl /

Quindi crea un gruppo a cui un utente può appartenere per questo scopo.

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

L'utente deve disconnettersi e rientrare per diventare un membro del gruppo di sviluppatori.

Ovviamente, non farlo se hai contenuto nella directory / var / www che vuoi, ma solo per illustrare la configurazione per iniziare:

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

Quindi sostituire i riferimenti a "/ var / www" con "/ var / www / public" in un file di configurazione e ricaricare.

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

Se volessimo limitare l'eliminazione e la rinomina da tutti tranne l'utente che ha creato il file:

sudo chmod +t /var/www/public

In questo modo, se vogliamo creare directory per quadri esistenti al di fuori del Apache root del documento o forse creare directory scrivibili dal server, è ancora facile.

Directory dei registri scrivibili in Apache:

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

Directory della libreria leggibile con Apache:

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

6
2018-01-05 02:41



Potresti spiegare cosa succede con il UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-linea? E 'pensato per essere aggiunto alla lettera o vuoi che l'utente trovi la linea e modifichi le opzioni? - MadMike
Perché non salti il sudo rm -rf /var/www-passo. Non sembra davvero necessario. - MadMike
@MadMike è destinato ad essere archiviato con cifre esadecimali. Per scoprire quali sono le etichette delle varie partizioni, esegui sudo blkid - Azendale
@Azendale Quando ho scritto il commento è stato pensato come un suggerimento su come migliorare la risposta. Oggi so che dovrei suggerire questo molto più direttamente. Mi piace: per favore aggiungi come compilare il UUID=xxxx-parte come con a sudo blkid. - MadMike


Il modo più semplice per fare è seguire i passaggi indicati di seguito: -

  1. stampa alt + Ctrl + T e il terminale si aprirà e digiterà sudo -s e accedi con la tua password.
  2. Ora hai effettuato l'accesso come root.
  3. Ora digita nautilus e aprirà la cartella home per te come root. Così ora puoi facilmente modificare i file e fare quello che vuoi.

Spero che questo ti aiuti. :)


0
2018-04-08 13:49



Per ottenere una shell di root adatta per l'esecuzione di applicazioni grafiche come Nautilus, sudo -i è preferibile a sudo -s per la stessa ragione sudo -H è preferibile a sudo per l'esecuzione di una singola app grafica. (sudo -s non resetta HOME, quindi l'utente può ottenere i file di configurazione nella loro home directory che dovrebbe appartenere a loro ma che invece appartengono a root.) - Eliah Kagan
Sconsiglio vivamente di usare l'account di root, particolarmente sui server. sudo fornisce più di un adeguato controllo degli accessi, consentendo al sysadmin di creare una politica per garantire che gli sviluppatori e i progettisti non abbiano una pistola per sparare alle proprie (e alle loro aziende!) - Shayne


/var/www folder è di proprietà della root .. devi modificare la proprietà sul tuo nome utente per modificare i file in questa cartella. Per questo puoi provare i seguenti comandi ..

sudo -i  // per passare alla console di root

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

Ora la proprietà della cartella /var/www/html will essere assegnato all'utente scott. Ora scott può copiare / spostare file in questa cartella.


0
2017-12-16 05:31





Se stai utilizzando la versione del server, prova a webmin. Ha un'ottima interfaccia utente web e file manager. O quello o Filezilla


-1
2017-08-24 00:38



Puoi spiegare "Se stai usando la versione del server"? Qualsiasi pacchetto che può essere installato su Ubuntu Server può essere installato sulla versione desktop di Ubuntu. - Eliah Kagan