Изменение разрешений для / var / www / html

12

Я изучал эту тему https://help.ubuntu.com/community/FilePermissions некоторое время и не могу заставить его работать по какой-то причине.

В частности, эти строки интересуют меня больше всего:

Чтобы изменить все разрешения для каждого файла и папки в указанном каталоге одновременно, используйте sudo chmod с -R

$ sudo chmod 777 -R /path/to/someDirectory
$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

Вот что я напечатал:

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0

Затем я проверил любые изменения в sftp:

sftp> cd /
sftp> cd var/www/html
sftp> pwd
Remote working directory: /var/www/html
sftp> ls -l
-rw-r--r--    1 root     root        11321 Apr 10 20:07 index.html

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

Как я могу изменить это так, чтобы я (не root) мог загружать файлы в каталог html?

Я также проверил:

Владелец файла может быть изменен с помощью команды chown. Например, чтобы изменить владельца файла foobar на tux:

$ sudo chown tux foobar

Я набрал с сервера:

sudo chown mark owner

нет эффекта.

Марк Алекса
источник
Вам не хватает опции -r для рекурсии. И 777 -не всегда правильное изменение (если вы не установили опцию t (sticky bit). Вопрос: почему dir пуст во 2-й команде и заполнен index.html в 3-й команде? Эти команды НЕ являются выпущены с теми же ситуациями. sudo chown mark ownerЧто это должно делать? Как вы можете представить там файл или каталог с именем "владельца"?
Rinzwind
Чтобы стать владельцем файла или каталога, необходимо указать, кто является новым владельцем, группу (необязательно) и файл или каталог. Например, sudo chown user:user mydocsгде находится новый владелец и группа, userа каталог, в который вы mydocs
вступаете,
1
В этом случае я бы оставил владельца каталога в покое, чтобы изменить разрешения для этого конкретного каталога, чтобы вы могли писать в него, установить разрешения на чтение / запись, командаsudo chmod 766 -r /var/www/html
Gansheim
@Rinzwind выглядит так, как будто он дал ls -lкоманду из их домашнего каталога. @Mark Если вы не находитесь в каталоге, который вы пытаетесь просмотреть / манипулировать, вам нужно указать путь, в этом случае вы должны были ls -l /var/www/html
выполнить
1
Как уже отметили ребята, chmodменяются разрешения, chownменяется владелец. 755 первая цифра (7) означает, что «владелец» имеет все разрешения, а вторая и последняя цифры (5) означают, что «группа» и «другие» имеют разрешения на чтение и выполнение. Вы можете добавить своего пользователя в группу и дать ему полные права, чтобы вам не пришлось вносить столько изменений.
Самуил

Ответы:

11

В этом случае я бы оставил право собственности на каталог. Чтобы изменить разрешения для этого конкретного каталога, чтобы вы могли писать в него, установите разрешения на чтение / запись, для этой команды sudo chmod 766 -R /var/www/html. Это назначит полные права 7для владельца, чтение / запись 6для группы и чтение / запись для всех 6, рекурсивно.

Gansheim
источник
9

Вы можете сделать себя владельцем этого каталога

sudo chown pi /var/www/html

Но вы определенно хотите установить разрешения

chmod 755 -R /var/www/html

Использование опции -R (рекурсивный) гарантирует, что ваши файлы сценариев и ваш файл .htaccess настроены одинаково.


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

chmod 755 /var/www/html/cgi-bin/newscript.cgi

Обратите внимание, что некоторые программы CGI имеют свои собственные требования, такие как

Регистратор посетителей сайта Bestdam + Счетчик посещений

Выдержка:

Откройте файл bdlogger.pl в текстовом редакторе и при необходимости измените строку shebang.

На сервере создайте подкаталог bdlogger в вашей директории cgi-bin и перешлите в него файлы сценариев и данных в режиме ASCII

Если вы используете сервер UNIX / Linux, выполните команду chmod:

bdlogger.pl to 755
all other files to 666

Добавьте следующий тег директивы SSI на свои веб-страницы:

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->
SDsolar
источник
5

Вам нужно установить владельца папки www с «root» на «Me».

С вашего терминала запустите команду:

sudo chown -R your_system_username /var/www

Надеюсь, что это работает!!

гениальность
источник
2

Хотя приведенные выше ответы в значительной степени помогут, это более полезный подход. Скорее всего, вы хотите изменить файлы в / var / www / html, потому что вы хотите добавить веб-приложение для обслуживания Apache2. Для этого вам понадобятся следующие шаги

  1. Добавьте пользователя в группу пользователей, www-dataкоторая по умолчанию владеет этой папкой. Почему? Потому что, если вы собираетесь динамически вносить какие-либо изменения в веб-приложение, даже если оно wordpressвключено, пользователям этой группы понадобятся разрешения на запись. Для этого просто напишите: sudo adduser username grouptoaddв нашем случае так и будет sudo adduser username www-data.
  2. Далее вам нужно изменить с read/write permissionsпомощью chmodкоманды. Помните, что теперь вы являетесь частью группы пользователей и вам не нужно менять владельца, используя chown. Для этого просто запустите:, sudo chmod -R 766 directoryв этом случае это будет sudo chmod -R 766 html. Если вы чувствуете себя спортивно, вы можете получить полное разрешение на запись (777), в зависимости от того, насколько безопасно ваше приложение.

-RИмеется в виду рекурсивную функцию, позволяя команде применить ко всем подкаталогов. Я надеюсь, что это помогает кому-то нуждающемуся.

AntonyMN
источник