Я пытаюсь добавить разрешения для моей папки nginx html, используя следующее:
sudo chown -R my-user:www-data /webdirectory
sudo chmod -R 0755 /webdirectory
Это работает для существующих файлов в каталоге, однако любые добавленные файлы мне нужно выполнить эти строки снова.
Какие-нибудь решения?
Вы ищете umask
. umask
оболочка builin, который решит то, что будет разрешение по умолчанию недавно созданного файла. Значение umask
может варьироваться от пользователя пользователю.
Проверять umask
значение текущего пользователя, выполненного umask
в терминале:
$ umask
0002
Первое 0
указывает, что отсутствие SUID/SGID/Sticky укусило, это - первое битовое значение по умолчанию поэтому, если мы не должны устанавливать ни один из тех трех битов, мы обычно не используем этот бит.
umask
значение на самом деле вычитается от 777 (в случае каталога) и от 666 (В случае файла) для получения разрешения недавно созданного файла/каталога. Так, если umask
0002
недавно созданный файл этим пользователем будет иметь разрешение (666 - 002)=664
и каталог будет иметь (777 - 002)=775
.
Для изменения значения umask только для текущего пользователя постоянно поместите umask
значение в конце ~/.bashrc
из пользователя. Например:
echo "umask 022" >> ~/.bashrc
Для изменения временно, выполненный:
$ umask 022
Глобальное umask
значение может быть найдено и изменено от /etc/login.defs
:
$ grep "^UMASK" /etc/login.defs
UMASK 022
**** Отметьте, чем Вы не должны использовать chmod
/chown
случайным образом, если Вы не абсолютно уверены в результате.
umask корректен, но только покрывает chmod часть Вашего вопроса, существует более изящный способ сделать это.
Для проверки, который Вы не имеете к показанному или chmod снова, помещают Вашего пользователя в группу www-данных апачского веб-сервера, как так:
useradd -G my-user www-data
С этим добавляют, что Вы можете записать в этой папке и имени пользователя, и группа будет точно, что Вы попросили. Также с этим, Вам даже не нужно к chmod снова, потому что веб-сервер может считать его, и таким образом, содержание может быть поставлено без каких-либо ограничений.