Question Quel est le moyen le plus simple d'éditer et d'ajouter des fichiers à / var / www?


Après avoir installé le serveur Web, existe-t-il un moyen simple de configurer un utilisateur capable d'utiliser l'interface graphique pour copier des fichiers et des répertoires sur le serveur Web local / var / www

Je me suis donné des privilèges administratifs dans Ubuntu mais cela n'autorise toujours pas les copies.


139
2018-01-03 19:49


origine


En relation: askubuntu.com/questions/45496/… - Marco Ceppi♦
Connexes (plus sécurisées): Comment éviter d'utiliser sudo lorsque vous travaillez dans / var / www? - Lekensteyn
J'ai essayé de faire ce que Marcos Roriz Junior a dit. J'ai copié et collé quand Marcos a écrit et changé le nom d'utilisateur à mon nom d'utilisateur. Mais je ne peux pas l'enregistrer dans / etc / apache2 / sites-available car cela ne me permettra pas d'enregistrer dans ce dossier. ???


Réponses:


Si vous inscrivez / var / www en écriture par son groupe et ajoutez l'utilisateur au groupe, cet utilisateur n'aura pas à utiliser sudo. Essaye ça:

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

L'utilisateur devrait alors pouvoir éditer / var / www / files sans problème.

La première ligne ajoute l'utilisateur au groupe de données www, la deuxième ligne efface tous les fichiers avec une propriété endommagée, et la troisième fait en sorte que tous les utilisateurs membres du groupe www-data puissent lire et écrire tous les fichiers. / var / www.

Si vous êtes connecté en tant que <username> vous devez vous déconnecter et vous reconnecter pour que l'appartenance au groupe prenne effet.


207
2017-07-01 01:14



Je le fais, plus quelques torsions: 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  Déconnectez-vous et connectez-vous à nouveau pour récupérer votre nouveau groupe. Je fais la chmod g+s pour forcer les nouveaux fichiers et répertoires à récupérer le propriétaire du groupe (www-data), en veillant à ce que mes autorisations changent. - Don Faulkner
@DonFaulkner Pour des raisons de sécurité, il vaut probablement mieux garder /var/www appartenant à root: root, donc au lieu de sudo chgrp -R www-data /var/www il vaut mieux être sudo chgrp -R www-data /var/www/*. - Desmond Hume
Assez bizarrement, après avoir exécuté ces 3 commandes, certains de mes sous-dossiers et fichiers (comme composer.json et LICENSE) sont affichés à l’aide de l’icône binaire. Ouvrir le composer.json dans un éditeur de texte affiche un fichier vierge et le pire est que je ne peux pas non plus parcourir certains des sous-dossiers, j'ai même essayé la commande supplémentaire suggérée par @DonFaulkner et toujours pas de chance. Si j'utilise le terminal comme root, tout est comme il se doit. Quelqu'un a des idées pourquoi cela se produit? - Alix Axel
@itsols vous devez vous déconnecter, puis vous connecter pour que cela fonctionne. - jini
@ DonFaulkner - Voulez-vous préciser comment avoir des fichiers appartenant à root pourrait être un vecteur d'attaque? (Je suis nouveau dans tout cela, et je suis confus parce que certains semblent préconiser une approche de la sécurité basée sur le doute, par-le-monde, alors que d'autres disent catégoriquement ne pas posséder par la racine. ) - Andrew Cheong


Vous pouvez chown, C'est change le owner de ce dossier. Cela vous permettra de modifier l'utilisateur et le groupe du dossier, ce qui permettra à votre utilisateur d'ajouter / de supprimer des fichiers. Pour le faire, remplacez yourusername avec votre nom et courir:

sudo chown yourusername.users /var/www

Et c'est tout.


Cependant, je préfère créer un virtualhost dans mon dossier personnel, c'est beaucoup plus facile.

Fondamentalement, il vous permet d'utiliser n'importe quel dossier comme dossier de service Apache. Pour montrer comment c'est simple, supposons que votre nom d'utilisateur est Nom d'utilisateur et que le dossier que vous voulez servir est / home / nom d'utilisateur / www

Créez le fichier suivant (par exemple mywebprojects) dans / etc / apache2 / sistes-available en remplaçant le nom d'utilisateur et le chemin du dossier (en gros, copiez et collez et remplacez dans #CHANGE HERE):

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

Maintenant, permet de créer le www dossier, ajoutez un simple monde Bonjour, désactivez le site Web par défaut (/var/www), activer notre site web mywebprojects et redémarrer apache.

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

Et ça, maintenant vous n'avez plus besoin d'aller à /var/www, vous ajoutez simplement des fichiers à votre www (ou autre prénom) et c'est déjà là :).


25
2018-01-05 11:02



exactement ce que j'ai fait. Un plus pour cela est que vous pouvez changer le répertoire en lecteur partagé afin que tous les fichiers soient disponibles au démarrage sous Windows / OSX. - Jason


Méthode 1: 

  • presse ALT+F2 et entrez gksudo nautilus puis cliquez sur Exécuter.

    alt text

  • Il ouvrira nautile avec les pré-racines des racines.
  • Aller au système de fichiers  var  www et maintenant vous pouvez ajouter / copier / coller vos fichiers.

Méthode 2: 

  • Installer nautilus-gksu  Install nautilus-gksu
  • Après avoir installé le type nautilus -q dans votre terminal pour actualiser les menus contextuels.
  • Maintenant, vous trouverez l'entrée «Ouvrir en tant qu'administrateur» dans votre menu contextuel nautilus.
  • Lorsque vous avez besoin d'ouvrir des fichiers avec la permission root, il vous suffit de cliquer avec le bouton droit sur ce fichier / dossier et de sélectionner "Ouvrir en tant qu'administrateur".
  • Il ouvrira ce fichier / dossier avec la permission root.

    alt text


9
2018-01-03 19:55



C'est certainement la bonne façon de faire! Je me demande pourquoi ce n'était pas la réponse choisie. Les autres méthodes impliquent de jouer avec les autorisations et je ne risquerais pas mon système en le faisant. +1 pour votre réponse. - itsols
@itsols: Je suis complètement en désaccord - vous risquez votre système en accordant à Nautilus un accès root complet à votre système de fichiers au lieu de configurer correctement les autorisations pour autoriser l'accès à /var/www. Une poussée accidentelle du [delete] clé et vous pourriez vous retrouver avec un système qui ne démarre plus. - Nathan Osman
@ GeorgeEdison Mais c'est seulement pour définir la permission Et après cela, nous fermons nautilus et travaillons comme d'habitude. Est-ce vraiment si mauvais? Excusez-moi pour mon ignorance ici. En dépit d'être un utilisateur d'Ubuntu depuis la version 5.x, je trouve toujours difficile de mettre en place une machine de développement et il ne semble pas y avoir de méthode claire (pour moi, au moins ... - itsols
@itsols: la deuxième partie de cette réponse est la méthode préférée et c'est celle que j'utilise. - Nathan Osman


Cela pourrait être aussi simple que sudo usermod -a -G developers $username en utilisant ACL.

Cela prend un peu de travail, cependant, pour commencer. Ceci est pour Ubuntu 10.10 au moins. Montez d'abord les systèmes de fichiers avec l'option acl dans / etc / fstab.

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 par défaut, acl 0 1

sudo mount -o remount,acl /

Créez ensuite un groupe auquel un utilisateur peut appartenir à cette fin.

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

L'utilisateur doit se déconnecter et se reconnecter pour devenir membre du groupe de développeurs.

Bien sûr, ne le faites pas si vous avez du contenu dans le répertoire / var / www que vous voulez, mais juste pour illustrer la mise en place pour commencer:

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

Remplacez ensuite les références à "/ var / www" par "/ var / www / public" dans un fichier de configuration et rechargez.

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

Si nous voulions restreindre la suppression et le renommage de tous sauf l'utilisateur qui a créé le fichier:

sudo chmod +t /var/www/public

De cette façon, si nous voulons créer des répertoires pour les frameworks qui existent en dehors du Apache document root ou peut-être créer des répertoires inscriptibles sur le serveur, c'est toujours facile.

Répertoire de journaux Apache-writable:

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

Répertoire de bibliothèque lisible par 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



Pourriez-vous expliquer ce qui se passe avec le UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-ligne? Est-il destiné à être ajouté littéralement ou voulez-vous que l'utilisateur trouve la ligne et modifie les options derrière? - MadMike
Pourquoi ne sautez-vous pas le sudo rm -rf /var/www-étape. Cela ne semble pas vraiment nécessaire. - MadMike
@MadMike est destiné à être enregistré avec des chiffres hexadécimaux. Pour savoir ce que vos différentes partitions sont étiquetées, exécutez sudo blkid - Azendale
@Azendale Quand j'ai écrit le commentaire, c'était comme une suggestion pour améliorer la réponse. Aujourd'hui, je sais que je devrais suggérer cela beaucoup plus directement. Comme: S'il vous plaît ajouter sur comment remplir le UUID=xxxx-part comme avec un sudo blkid. - MadMike


La manière la plus simple de faire est de suivre les étapes ci-dessous: -

  1. presse Alt + Ctrl + T et le terminal va ouvrir et taper sudo -s et connectez-vous avec votre mot de passe.
  2. Maintenant, vous êtes connecté en tant que root.
  3. Maintenant tapez nautilus et il va ouvrir le dossier d'accueil pour vous en tant que root. Alors maintenant, vous pouvez facilement éditer les fichiers et faire ce que vous voulez.

J'espère que cela t'aides. :)


0
2018-04-08 13:49



Pour obtenir un shell root adapté à l'exécution d'applications graphiques telles que Nautilus, sudo -i est préférable à sudo -s pour la même raison sudo -H est préférable à sudo pour exécuter une application graphique unique. (sudo -s ne réinitialise pas HOME, donc l'utilisateur peut obtenir des fichiers de configuration dans leur répertoire personnel qui devrait leur appartenir mais qui appartiennent plutôt à root.) - Eliah Kagan
Je déconseille fortement d'utiliser le compte root, notamment sur les serveurs. sudo fournit plus que des contrôles d'accès adéquats tout en permettant à l'administrateur système d'élaborer des règles pour garantir que les développeurs et les concepteurs ne reçoivent pas d'arme de poing pour lancer leurs propres pieds (et ceux de leur entreprise!) - Shayne


/var/www folder appartient à la racine .. vous devez changer le propriétaire de votre propre nom d'utilisateur pour modifier les fichiers dans ce dossier. Pour cela, vous pouvez essayer les commandes suivantes.

sudo -i  // pour passer à la console racine

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

Maintenant la propriété du dossier /var/www/html will être attribué à l'utilisateur scott. Maintenant scott peut copier / déplacer des fichiers dans ce dossier.


0
2017-12-16 05:31





Si vous utilisez la version du serveur, essayez Webmin. Il a une excellente interface utilisateur Web et un gestionnaire de fichiers. Soit ça ou Filezilla


-1
2017-08-24 00:38



Pouvez-vous expliquer "Si vous utilisez la version du serveur"? Tout paquet pouvant être installé sur Ubuntu Server peut être installé sur la version de bureau d'Ubuntu. - Eliah Kagan