Какой самый простой способ редактировать и добавлять файлы в "/var/www"?

После установки веб-сервера существует простой способ настроить пользователя, который может использовать графический интерфейс для копирования файлов и каталогов на локальный веб-сервер /var/www

Я дал себе административные привилегии в Ubuntu, но он все еще не позволяет копировать.

8 ответов

Если вы сделаете /var/www доступным для записи по своей группе и добавите пользователя в группу, этому пользователю не придется использовать sudo. Попробуй это:

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

Затем пользователь должен иметь возможность редактировать /var/www/ files без хлопот.

Первая строка добавляет пользователя в группу www-data, вторая строка очищает любые файлы с ошибочным владельцем, а третья делает так, чтобы все пользователи, которые являются членами группы www-data, могли читать и записывать все файлы в / вар / WWW.

Если вы вошли как <username> вам нужно выйти и снова войти, чтобы членство в группе вступило в силу.

Вы можете chown, то есть chгнев ownиз этой папки. Это позволит вам изменить пользователя и группу папки, позволяя пользователю добавлять / удалять файлы в ней. Для этого замените yourusername с вашим именем и запустите:

sudo chown yourusername.users /var/www

И это все.


Однако я предпочитаю создать виртуальный хост в моей домашней папке, это гораздо проще.

В основном это позволяет вам использовать любую папку в качестве папки Apache. Чтобы показать, как это просто, давайте предположим, что ваше имя пользователя - это имя пользователя, а папка, которую вы хотите обслуживать, - /home/username/www

Создайте следующий файл (например, mywebprojects) в /etc/apache2/sistes-available с заменой имени пользователя и пути к папке (в основном просто скопируйте, вставьте и замените в #CHANGE ЗДЕСЬ):

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

Теперь давайте создадим www папку, добавить простой привет мир, отключить веб-сайт по умолчанию (/var/www), включите наш сайт mywebprojects и перезапустите Apache.

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

И что это, теперь вам не нужно идти в /var/wwwВы просто добавляете файлы в свой www (или другое имя), и это уже там:).

Способ 1:

  • Нажмите ALT + F2 и введите gksudo nautilus, а затем нажмите "Выполнить".

    альтернативный текст

  • Это откроет наутилус с корневыми преимуществами.
  • Перейдите в Файловая система var www и теперь вы можете добавлять / копировать / вставлять ваши файлы.

Способ 2:

  • Установить наутилус-гксу Установить наутилус-гксу
  • После установки типа nautilus -q в вашем терминале, чтобы обновить меню правой кнопкой мыши.
  • Теперь вы найдете запись "Открыть как администратор" в меню правой кнопки мыши nautilus.
  • Когда вам нужно открыть какие-либо файлы с правами суперпользователя, вам просто нужно щелкнуть правой кнопкой мыши по этому файлу / папке и выбрать "Открыть как администратор".
  • Он откроет этот файл / папку с правами root.

    альтернативный текст

Это может быть так просто, как sudo usermod -a -G developers $username используя ACL.

Это требует небольшой работы, чтобы начать. Это как минимум для Ubuntu 10.10. Сначала смонтируйте файловые системы с опцией acl в / etc / fstab.

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 по умолчанию,acl 0 1

sudo mount -o remount,acl /

Затем создайте группу, к которой пользователь может принадлежать для этой цели.

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

Пользователь должен выйти из системы и войти снова, чтобы стать членом группы разработчиков.

Конечно, не делайте этого, если у вас есть содержимое в каталоге / var / www, которое вы хотите, но просто для иллюстрации настройки его для запуска:

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

Затем замените ссылки на "/ var / www" на "/ var / www / public" в файле конфигурации и перезагрузите.

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

Если мы хотим ограничить удаление и переименование для всех, кроме пользователя, который создал файл:

sudo chmod +t /var/www/public

Таким образом, если мы хотим создать каталоги для каркасов, которые существуют вне корневого каталога документов Apache, или, возможно, создать каталоги, доступные для записи на сервере, это все еще просто.

Каталог журналов, доступных для записи в Apache:

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

Apache-читаемый каталог библиотеки:

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

/var/www folder принадлежит пользователю root. Вы должны изменить владельца на свое имя пользователя для изменения файлов в этой папке. Для этого вы можете попробовать следующие команды..

sudo -i // перейти в корневую консоль

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

Теперь владение папкой /var/www/html will быть назначенным пользователю scott, Теперь Скотт может копировать / перемещать файлы в этой папке.

Хотя этот вопрос старый, ответ необходимо обновить.

Рассмотрим следующее :

Вы заявляете, что дали себе « административные привилегии ». И, согласно принятому здесь ответу, пользователь и группа теперь имеют разрешения на запись в рассматриваемый каталог.

По умолчанию, когда вы устанавливаете стек LAMP, каталоги и файлы рекурсивно принадлежат пользователю и группе, если вы не изменили владельца/разрешения по умолчанию. Что в вашем случае верно. Подтвердить :


Вывод с установкой стека LAMP по умолчанию:

      drwxr-xr-x 2 root root 4096 Sep  1 19:53 html

Выше есть причина, по которой /var/wwwи каталоги принадлежат пользователю и группе root:rootна уровне по умолчанию он дает разрешения на чтение/исполнение только othersкоторая включает в себя . Это соответствует аспекту безопасности наименьших привилегий . Мы бы не хотели, чтобы злоумышленник получил доступ к наиболее уязвимому пользователю/группе с разрешениями на writeскрипт и захват сервера!

Это должно помочь понять разрешения по умолчанию для htmlкаталог, созданный при установке apache/nginx:

Что мы можем сделать, чтобы безопасно использовать your_domainкаталог для передачи каталогов и файлов в графическом интерфейсе с необходимыми разрешениями:

  1. Назначьте право собственности на рассматриваемый каталог:

            sudo chown -R $USER:$USER /var/www/your_domain
    
  2. Теперь проверьте разрешения /your_domain:

            cd /var/www && ls -l
    
  3. Из вывода здесь мы можем ясно видеть, что your_userявляется владельцем и группой, а другие ( www-data) имеют права только на чтение/выполнение. Какой безопасный способ не скомпрометировать веб-сервер и другие каталоги пользователей:

            drwxr-xr-x 2 root root 4096 Sep  1 19:53 html
    drwxr-xr-x 2 your_user  your_user  4096 Sep  2 10:49 your_domain
    
  4. Перезагрузите Апач:

            sudo systemctl reload apache2
    

Как только это будет сделано, вот «простой» способ добавления файлов в:

Установите vsftpd на свой сервер и FileZilla на клиентскую машину:

  1. Вы можете следовать этому руководству , чтобы установить и настроить vsftpd и FileZilla.

  2. Просто замените /home/username/ftp/filesчтобы удовлетворить ваши потребности и заменить, где это необходимо username(в руководстве имя пользователя sammy) с your_username.

    Примечание. Возможно, вам потребуется добавить эту запись pasv_enable=Yesна ваш /etc/vsftpd.confфайл для клиента Windows.

  3. После завершения настройки vsftpd мы создаем каталог и монтируемся в этот каталог.

    1. Создайте каталог монтирования:
            mkdir /home/username/ftp/files/www
    
    1. Редактировать /etc/fstabчтобы добавить точку монтирования:
            /var/www/your_domain /home/username/ftp/files/www none defaults,bind 0 0
    

    Источник : здесь

  4. Перезагрузите сервер.

Теперь предыдущий метод создания постоянного монтирования будет работать с минимальным образом (т.е. Container), где он fstabфайл указывает UNCONFIGURED FSTAB FOR BASE SYSTEM, это НЕ будет работать с физическими серверами.

Итак, если вы все еще настаиваете на FTP , временным подходом будет привязка каталогов (этот метод не может выдержать перезагрузку системы), например:

      sudo mount --bind /var/www/your_domain /home/username/ftp/files/www

Другой и постоянный подход — просто использовать символическую ссылку. Имейте в виду, что при использовании этого метода вам нужно будет выбрать, где протокол: в FileZilla -> Протокол передачи файлов SFTP-SSH. Для создания символической ссылки мы не можем использовать абсолютный путь (т.е.). Мы будем использовать относительный путь от /home/username/ftp/files/wwwк . Команда будет:

      sudo ln -s ../../../../../var/www/your_domain /home/username/ftp/files/www

Руководство по настройке SFTP вы найдете здесь.

И, наконец, вот простой способ редактирования файлов в /var/www/your_domain:

  1. Отредактируйте файлы на своем компьютере для разработки.

  2. Остановите свой веб-сервер, например: sudo service apache2 stopили же .

  3. Добавьте файлы с помощью FileZilla с протоколами SFTP(метод символической ссылки) или FTP(метод монтирования).

  4. Перезапустите веб-сервер: sudo service apache2 startили же sudo service nginx stop.

Самый простой способ сделать это, выполните следующие действия:-

  1. Нажмите Alt + Ctrl + T, и терминал откроется и введите sudo -s и войдите под своим паролем.
  2. Теперь вы вошли как root,
  3. Теперь введите nautilus и он откроет домашнюю папку для вас как root. Так что теперь вы можете легко редактировать файлы и делать все, что захотите.

Надеюсь это поможет.:)

Если вы используете версию сервера, попробуйте webmin. Он имеет отличный веб-интерфейс и файловый менеджер. Либо это, либо Filezilla

Другие вопросы по тегам