В частности, эти строки интересуют меня больше всего:
Чтобы изменить все разрешения для каждого файла и папки в указанном каталоге сразу, используйте sudo chmod с -R
$ sudo chmod 777 -R /path/to/someDirectory$ ls -ltotal 3-rwxrwxrwx 1 user user 0 Nov 19 20:13 file1drwxrwxrwx 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/htmlmark@ubuntuserver:~$ ls -ltotal 0
Затем я проверил все изменения в sftp:
sftp> cd /sftp> cd var/www/htmlsftp> pwdRemote working directory: /var/www/htmlsftp> ls -l-rw-r--r-- 1 root root 11321 Apr 10 20:07 index.html
Из выходных данных ясно, что каталог html по-прежнему может быть изменен только root.
Как я могу изменить это таким образом, чтобы я (не root) мог загружать файлы в каталог html?
Я также проверил:
Владельца файла можно изменить с помощью команды chown. Например, чтобы изменить владельца файла foobar на tux:
В этом случае я бы оставил право собственности на каталог в покое. Чтобы изменить разрешения для этого конкретного каталога, чтобы вы могли выполнять в него запись, установите разрешения на чтение/запись, команда sudo chmod 766 -R /var/www/html. Это позволит назначить полные разрешения 7 для владельца, чтение/запись 6 для группы и чтения / записи для всех 6, рекурсивно.
Хотя приведенные выше ответы в значительной степени помогут, это более полезный подход. Скорее всего, вы хотите изменить файлы внутри /var / www / html, потому что хотите добавить веб-приложение для обслуживания в Apache2. Для достижения этой цели вам необходимо выполнить следующие действия
Добавьте пользователя в группу пользователей www-data который имеет право собственности на папку по умолчанию. Почему? Потому что, если вы собираетесь вносить какие-либо изменения в веб-приложение динамически, даже если оно находится в wordpress, вам нужно, чтобы пользователи в этой группе имели права на запись. Для этого просто напишите: sudo adduser username grouptoadd В нашем случае это будет sudo adduser username www-data.
Далее вам нужно изменить read/write permissions используя chmod команда. Помните, что теперь вы являетесь частью группы пользователей, и вам не нужно менять владельца с помощью chown. Для этого просто запустите: sudo chmod -R 766 directory, в этом случае это будет sudo chmod -R 766 html. Если вы чувствуете себя спортивно, вы можете получить полные права на запись (777), в зависимости от того, насколько безопасно ваше приложение.
То -R подразумевается рекурсивная функция, позволяющая команде применяться ко всем подкаталогам. Я надеюсь, что это поможет кому-то нуждающемуся.
В вашем случае я вижу, что файл принадлежит root, поэтому сначала мы ;
sudo chown -R www-data:www-data /var/www/html чтобы разрешить группе www-data стать владельцем папки.
2.Затем sudo adduser username www-dataэто делается для добавления вашего пользователя в группу www-data, которая теперь владеет папкой /var /www/hmtl/ (ПРИМЕЧАНИЕ: замените имя пользователя на имя пользователя вашего компьютера, если вы не знаете тип имени пользователя вашего компьютера whoami в свой терминал вы получаете имя пользователя текущего пользователя, вошедшего в систему)
sudo chmod -R 775 /var/www/html/Чтобы теперь изменить права доступа к файлам на 775, чтобы (U) пользователь / владелец мог читать, записывать и выполнять. (G) roup может читать, может записывать и может выполнять. (O) они могут читать, не могут писать и могут выполнять.
Если шаг 3 завершится неудачей, то sudo chmod -R 777 /var/www/html/ чтобы освободить всех пользователей для чтения, записи и выполнения в этой папке. Но я настоятельно не рекомендую делать это на живом сервере, если он локальный или у вас нет другого выбора, сделайте это и не забудьте изменить разрешения обратно на гораздо более безопасные настройки или рискуйте быть взломанным, если это онлайн.
В этом случае я бы оставил право собственности на каталог в покое, чтобы изменить разрешения для этого конкретного каталога, чтобы вы могли записывать в него, установите разрешения на чтение / запись, команда sudo chmod 766 -r / var / www/html
Как уже отмечали ребята, “chmod” меняет разрешения, “chown” меняет владельца. 755 первая цифра (7) означает, что “владелец” имеет все разрешения, в то время как вторая и последняя цифры (5) означают, что “группа” и “другие” имеют права на чтение и выполнение. Вы можете добавить своего пользователя в группу и предоставить полные права доступа к группе, чтобы вам не приходилось вносить так много изменений.
Вам не хватает параметра -r для рекурсивного. И 777 никогда не является правильным изменением для внесения (если только вы также не установите параметр t (sticky bit). Вопрос: почему каталог пуст во 2-й команде и заполнен index.html в 3-й команде? Эти команды НЕ выдаются в одинаковых ситуациях. “владелец метки sudo chown”, что это должно делать? Как получилось, что вы ввели там файл или каталог с именем “владелец”?
Чтобы стать владельцем файла или каталога, вы должны указать, кто является новым владельцем, группу (необязательно) и файл или каталог. Например, “sudo chown user:user mydocs”, где новым владельцем и группой является “пользователь”, а каталог, которым вы становитесь владельцем, - mydocs
@Rinzwind выглядит так, как будто он выдал команду ls -l из их домашнего каталога. @Mark Если вы не находитесь в каталоге, который пытаетесь просмотреть / обработать, вам необходимо указать путь, в этом случае вы должны были выдать команду как ls -l /var/www/html
sudo chown mark /var/www/html/ это правильно? Потому что я проверил, и он по-прежнему принадлежит root. Да, я использовал команду ls -l в каталоге html, чтобы избежать каких-либо глупых ошибок.
sudo chmod 766 -r /var/www/html кажется неправильным синтаксисом. В нем говорится >chmod: не удается получить доступ к ‘766’: Нет такого файла или каталога>
он рассматривает 766 не как правило разрешений, а как целевой каталог.
100% моя вина, синтаксис команды был неправильным. Рекурсивный флаг должен быть написан с заглавной буквы sudo chmod 766 -R /var/www/html извините за это
хамихайм, не могли бы вы, пожалуйста, опубликовать свое решение “sudo chmod 766 -r / var / www / html” в качестве ответа, чтобы я мог его использовать? Мне просто нужно было поставить верхний регистр в R, и это сработало! Я попытался загрузить тестовый файл, и он там! Опубликуйте это!
Я действительно не понимаю, почему нежелательно, чтобы люди благодарили других за помощь в решении проблемы. Вы все внесли очень полезный вклад, и я благодарен вам за помощь!