Я использую веб-сервер и FTP-сервер, к которому /var/www
привязан /home/user/www
.
Я установил обе директории chmod 777
(это нормально, так как это только для тестирования).
Я могу загружать файлы в /home/user/www
, но всякий раз, когда я создаю новый каталог, мне всегда приходится работать chmod 777
в этой папке.
В противном случае, когда я пытаюсь просмотреть его, я получаю сообщение об ошибке
У вас нет прав доступа к / test / на этом сервере.
Есть ли способ сделать все подпапки внутри /var/www
доступными для кого-либо? Или их разрешения могут быть автоматически установлены 777
? Раздражает, что мне приходится chmod 777
каждый раз печатать .
permissions
apache2
chmod
user1645034
источник
источник
Ответы:
Это плохая практика, но, надеюсь, вы просто используете это для разработки, или у вас есть другая веская причина. Вы можете указать разрешения при создании каталога, используя
-m
опцию:Или вы можете установить разрешения рекурсивно.
Перед использованием любого из них действительно подумайте, хотите ли вы, чтобы ваша файловая система была настолько доступна.
Редактировать: Как уже упоминал Ринзвинд, вот лучший способ выполнить то, что вы хотите.
Проверьте, какой группе принадлежит ваш
/var/www
каталог, и добавьте своего пользователя в эту группу.Группа вероятно
www-data
.Тогда вы будете в порядке с настройкой разрешений на 775.
источник
Файлы и каталоги в Unix могут иметь три типа разрешений: read (
r
), write (w
) и execute (x
). Каждое разрешение может бытьon
илиoff
для каждой из трех категорий пользователей: владелец файла или каталога; другие люди в той же группе, что и владелец; и все остальные. Чтобы изменить режим файла, используйте команду chmod. Общая форма: chmod X @ Y file1 file2 ...источник
для ftp, создающего все файлы с разными разрешениями, вы можете посмотреть umask ftpd, как запускается этот демон
Взгляните на этот сайт https://linuxaria.com/article/linux-shell-understanding-umask-with-examples
источник
Объявление о государственной службе:
Никогда не используйте chmod 777 для устранения проблем
Это серьезный риск для безопасности, если вы запускаете какие-либо общедоступные службы, особенно веб-приложения (например, PHP).
Модель безопасности ОС предполагает, что многие службы (например, ваш веб-сервер) работают с ограниченными привилегиями, чтобы они не могли изменять файлы. Установка 777 для файлов нарушает этот дизайн.
Удаленный пользователь может записывать или загружать файлы, а затем обманывать сервер (или какой-либо другой процесс в вашей системе), чтобы читать или выполнять их. Сценарии или программное обеспечение могут иметь недостатки, которые позволяют это. Очень трудно заблокировать все возможные пути, если существуют доступные для записи каталоги.
Используемый в определенных системных каталогах (/ usr, / etc, / var и т. Д.), Он может неожиданно сломать вашу систему.
Некоторые важные системные файлы требуют специальных разрешений, таких как setuid / setgid для запуска. Например, sudo. Избегайте изменения каких-либо прав доступа к файлам для каталогов и файлов, установленных самой системой.
Там нет никакого способа отменить это и вернуть все старые разрешения.
То есть, если раньше у вас были файлы и папки с различными разрешениями, нет способа вернуться к этим конкретным разрешениям - только изменить их все на одно и то же, что может привести к потере любых определенных настроек разрешений, которые были необходимы для определенных файлов.
Всегда есть более подходящий способ достижения того, чего вы хотите достичь.
В этом случае, похоже, вы хотите, чтобы ваш веб-сервер мог читать каталог. Предоставить доступное для записи разрешение - это гораздо больше, чем нужно.
Выясните, почему веб-сервер не может прочитать этот каталог (подсказка: возможно, это потому, что ваш домашний каталог не доступен для чтения во всем мире. Доступен для чтения во всем мире намного безопаснее, чем доступный для записи в мире - установите для своего домашнего каталога значение, например 755, переместите этот www каталог за пределы вашего дома куда-нибудь вроде / var / www или / srv).
источник
Это не работает для меня.
Я должен использовать
-f
также.источник
Если вы хотите скопировать разрешения и / или права собственности из другого файла, который вас устраивает, вы можете сделать это с помощью sudo chmod --reference = path / to / file / to / reference path / to / file / you / want / к / изменения / permissino / к
И вы можете сделать то же самое для владения файлами.
источник