Если я хочу добавить в файл журнала следующим образом:
file_put_contents("ip.txt", $ip, FILE_APPEND);
какими должны быть права доступа к файлу (UNIX)? Нужно ли изменять разрешения для каталога, или достаточно корректировки прав доступа к файлу?
Наиболее распространенное разрешение для файлов — 644, которое дает владельцу право на чтение и запись, а также на чтение для группы и других пользователей.
Чтобы записать файлы в каталог, вам нужно предоставить ему доступ для выполнения, поэтому вам нужен 7xx. Что касается разрешений для группы и других, это зависит от ситуации.
Наиболее распространенные разрешения для каталогов — 755; что означает (помимо того, что сказано выше), что группа и другие имеют разрешение на чтение и выполнение.
Разрешение на выполнение в каталоге означает, что вы можете ввести, что вам нужно написать файл в нем.
РЕДАКТИРОВАТЬ:
Why would the Group and World fields not be set, if this will be executed from a
website? Why not 666 instead of 644? (I might be misunderstanding what Group and
World mean.)
Группа и другие должны интерпретироваться в контексте системы, в которой находится файл, как в группах Unix. Другие пользователи в системе не входят в группу и не являются ее владельцами.
Однако все это почти не играет роли в контексте веб-приложения, потому что именно веб-сервер (т. Е. Apache) всегда выполняет сценарии, управляющие файлами. Таким образом, единственное действительно важное разрешение на данный момент — это первые три.
Если у вас был доступ к вашему серверу через консоль, и вы пытались получить доступ к этому ip.txt
файл; тогда вам нужно будет войти в систему как пользователь с достаточными правами доступа к файлу. Вот где в игру вступают вторая и третья цифры.
Итак, допустим, что разрешения вашего файла установлены как 666: тогда любой пользователь, вошедший в систему, сможет читать и записывать этот файл (при условии, что у него также есть разрешение на выполнение для каталога, содержащего файл). Если файл имеет разрешения 644, тогда только владелец будет иметь права на запись, а пользователи группы и другие пользователи будут иметь только права на чтение.
Но опять же, в контексте веб-приложения единственное разрешение, которое вас действительно волнует, — это первое.
Других решений пока нет …