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


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

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


139
2018-01-03 19:49


происхождения


Связанный: askubuntu.com/questions/45496/... - Marco Ceppi♦
Связанный (более безопасный): Как избежать использования sudo при работе в / var / www? - Lekensteyn
Я попытался сделать то, что сказал Маркос Рориз Младший. Я скопировал и вставил, когда Маркос написал и изменил имя пользователя на свое имя пользователя. Но я не могу сохранить его в / etc / apache2 / sites-available, потому что он не позволит мне сохранять в этой папке. ???


ответы:


Если вы делаете / 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> вам необходимо выйти из системы и войти в систему, чтобы членство в группе вступило в силу.


207
2017-07-01 01:14



Я делаю это, плюс несколько поворотов: 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  выйдите из системы и снова войдите в систему, чтобы забрать свою новую группу. Я делаю chmod g+s чтобы новые файлы и каталоги забирали владельца группы (www-data), следя за тем, чтобы мои разрешения менялись. - Don Faulkner
@DonFaulkner По соображениям безопасности, вероятно, лучше сохранить /var/www принадлежит root: root, поэтому вместо sudo chgrp -R www-data /var/www лучше sudo chgrp -R www-data /var/www/*, - Desmond Hume
Как ни странно, после запуска этих трех команд, некоторые моих подпапок и файлов (например, composer.json а также LICENSE) отображаются с помощью бинарного значка. Открытие composer.json в текстовом редакторе отображается пустой файл, а самое худшее - я не могу просматривать некоторые из подпапок. Я даже попробовал дополнительную команду, как это предложил @DonFaulkner, и до сих пор не повезло. Если я использую терминал как root, все так, как должно быть. У кого-нибудь есть идеи, почему это происходит? - Alix Axel
@itsols вам нужно выйти из системы, а затем войти в систему, чтобы он работал. - jini
@DonFaulkner - Не могли бы вы рассказать о том, как файлы, принадлежащие root, могут быть вектором атаки? (Я новичок во всем этом, и я в замешательстве, потому что некоторые, похоже, выступают за подход, основанный на неуверенности, по принципу «один за другим» для обеспечения безопасности, в то время как другие категорически говорят «не по-своему». ) - Andrew Cheong


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

sudo chown yourusername.users /var/www

Вот и все.


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

В основном это позволяет вам использовать любую папку в качестве папки обслуживания apache. Чтобы показать, как это просто, предположим, что ваше имя пользователя имя пользователя и что папка, которую вы хотите обслуживать, / Главная / имя пользователя / 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 (или другое имя), и оно уже есть :).


25
2018-01-05 11:02



точно, что я сделал. Один плюс для этого - вы можете изменить каталог на общий диск, чтобы все файлы были доступны при загрузке в Windows / OSX. - Jason


Способ 1: 

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

    alt text

  • Он откроет наутилус с корневыми преувеличениями.
  • Перейти к файловой системе  вар  www, и теперь вы можете добавлять / копировать / вставлять файлы.

Способ 2: 

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

    alt text


9
2018-01-03 19:55



Это, безусловно, правильный путь! Интересно, почему это был не выбранный ответ. Другие методы включают беспорядок с разрешениями, и я не буду рисковать своей системой, делая это. +1 за ваш ответ. - itsols
@itsols: Я полностью не согласен - вы рискуете своей системой, предоставив Nautilus полный доступ к вашей файловой системе вместо правильной настройки разрешений, чтобы разрешить доступ к /var/www, Один случайный толчок [delete] и вы можете оказаться в непригружаемой системе. - Nathan Osman
@GeorgeEdison Но это только для установки разрешения. И после этого мы закрываем наутилус и работаем как обычно. Неужели это так плохо? Извините меня за мое невежество. Несмотря на то, что пользователь Ubuntu с версии 5.x, несмотря на то, что я все еще нахожу установку машины разработки довольно сложной и, похоже, нет четкого способа ее выполнения (для меня, по крайней мере ... - itsols
@itsols: Вторая часть этот ответ является предпочтительным методом и является тем, который я использую. - Nathan Osman


Это может быть так просто, как 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 document root или, возможно, создавать каталоги, доступные для записи на сервер, все равно легко.

Каталог журналов, записываемых в 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

6
2018-01-05 02:41



Не могли бы вы объяснить, что случилось с UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-линия? Должен ли он быть добавлен буквально или хотите, чтобы пользователь нашел строку и отредактировал параметры? - MadMike
Почему бы вам не пропустить sudo rm -rf /var/www-ступенно. Это действительно не кажется необходимым. - MadMike
@MadMike предназначен для подачи шестнадцатеричных цифр. Чтобы узнать, что обозначены ваши различные разделы, выполните sudo blkid - Azendale
@Azendale Когда я написал комментарий, это подразумевалось как предложение о том, как улучшить ответ. Сегодня я знаю, что я должен предлагать это гораздо более прямо. Например: добавьте, как заполнить UUID=xxxx-части как с sudo blkid, - MadMike


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

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

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


0
2018-04-08 13:49



Чтобы получить корневую оболочку, подходящую для запуска графических приложений, таких как Nautilus, sudo -i предпочтительнее sudo -s по той же причине sudo -H предпочтительнее sudo для запуска одного графического приложения. (sudo -s не сбрасывается HOME, поэтому пользователь могут получать файлы конфигурации в своем домашнем каталоге, которые должны принадлежать им, но принадлежат root.) - Eliah Kagan
Я категорически отвергаю использование учетной записи root, особенно на серверах. sudo обеспечивает более чем достаточный контроль доступа, позволяя системному администратору разрабатывать политику, чтобы разработчики и дизайнеры не получали пистолет, чтобы стрелять в свои собственные (и их компании!), ногами - Shayne


/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, Теперь scott может копировать / перемещать файлы в этой папке.


0
2017-12-16 05:31





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


-1
2017-08-24 00:38



Можете ли вы объяснить «Если вы используете версию сервера»? Любой пакет, который может быть установлен на сервере Ubuntu Server, может быть установлен на настольной версии Ubuntu. - Eliah Kagan