Какой самый простой способ редактировать и добавлять файлы в "/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
каталог для передачи каталогов и файлов в графическом интерфейсе с необходимыми разрешениями:
Назначьте право собственности на рассматриваемый каталог:
sudo chown -R $USER:$USER /var/www/your_domain
Теперь проверьте разрешения
/your_domain
:cd /var/www && ls -l
Из вывода здесь мы можем ясно видеть, что
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
Перезагрузите Апач:
sudo systemctl reload apache2
Как только это будет сделано, вот «простой» способ добавления файлов в:
Установите vsftpd на свой сервер и FileZilla на клиентскую машину:
Вы можете следовать этому руководству , чтобы установить и настроить vsftpd и FileZilla.
Просто замените
/home/username/ftp/files
чтобы удовлетворить ваши потребности и заменить, где это необходимоusername
(в руководстве имя пользователяsammy
) сyour_username
.Примечание. Возможно, вам потребуется добавить эту запись
pasv_enable=Yes
на ваш/etc/vsftpd.conf
файл для клиента Windows.После завершения настройки vsftpd мы создаем каталог и монтируемся в этот каталог.
- Создайте каталог монтирования:
mkdir /home/username/ftp/files/www
- Редактировать
/etc/fstab
чтобы добавить точку монтирования:
/var/www/your_domain /home/username/ftp/files/www none defaults,bind 0 0
Источник : здесь
Перезагрузите сервер.
Теперь предыдущий метод создания постоянного монтирования будет работать с минимальным образом (т.е. 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
:
Отредактируйте файлы на своем компьютере для разработки.
Остановите свой веб-сервер, например:
sudo service apache2 stop
или же .Добавьте файлы с помощью FileZilla с протоколами SFTP(метод символической ссылки) или FTP(метод монтирования).
Перезапустите веб-сервер:
sudo service apache2 start
или жеsudo service nginx stop
.
Самый простой способ сделать это, выполните следующие действия:-
- Нажмите Alt + Ctrl + T, и терминал откроется и введите
sudo -s
и войдите под своим паролем. - Теперь вы вошли как
root
, - Теперь введите
nautilus
и он откроет домашнюю папку для вас как root. Так что теперь вы можете легко редактировать файлы и делать все, что захотите.
Надеюсь это поможет.:)
Если вы используете версию сервера, попробуйте webmin. Он имеет отличный веб-интерфейс и файловый менеджер. Либо это, либо Filezilla