Хорошо, позволяет, помещает некоторый свет на самые основы полномочий файла, и затем мы переместимся в Ваш конкретный случай.
Основные полномочия файла:
В случае каталогов имена являются тем же, но у них есть немного отличающееся значение:
Каждый файл и каталог имеют атрибут владельца и группы. Можно проверить их путем вызова ls -l
команда или путем рассмотрения индикаторов в программном обеспечении как клиент FTP. Давайте посмотрим пример:
-rwxr-xr-- 1 jdoe zeppelins 0 08-29 21:50 example_file
Здесь Вам назвали файл example_file
, это было создано в 21:50 на 29-08 и имеет длину 0 байтов. Его владелец является пользователем с именем username
, и это принадлежит группе zeppelins
.
Теперь позволяет взгляду на полномочия файла -rwxr-xr--
.
-
средства, что это - регулярный файл (не ссылка или каталог).rwx
указывает, что пользователь jdoe может читать, запишите и выполните этот файл.r-x
средства, что все члены группы zeppelins
может читать и выполниться, но не изменить этот файлr--
указывает, что пользователи, которые не являются jdoe
и не принадлежите группе zeppelins
может только считать этот файл.При входе на пути WS_FTP, Вы идентифицируетесь как пользователь с именем пользователя, которое Вы ввели при входе в систему. Можно быть владельцем некоторых файлов, но Вам не нужно к (могут быть файлы, которым указали другого владельца).
Веб-браузер не получает доступ к файлам. То, что получает доступ к ним, является веб-сервером, который читает файл и затем подает Ваш браузер с его содержанием. Веб-сервер может работать под именами как apache
httpd
или подобный, но если Вы используете хостинг, он может также идентифицировать себя как inetuser
. Если это не имеет место, это получает доступ к файлу как к другому пользователю.
Сценарии PHP должны быть читаемы и перезаписываемы человеком, который изменяет их (по всей вероятности владелец), и читаемый, но не перезаписываемый веб-сервером.
Для простого Сценария PHP, отредактированного jdoe
, под предположением тот веб-сервер работает под webserver
имя, соответствующие полномочия были бы -rwxr-----
. В некоторых случаях это может также быть потребность быть читаемым некоторыми другими пользователями - в этом случае -rwxr--r--
может быть более соответствующим.
Поскольку файл PHP читал, полномочия достаточно.
Лучшая идея состояла бы в том, чтобы сделать быстрый тест - удаляют все полномочия для группы для определенного файла и проверку, если можно все еще получить доступ к нему. Моя ставка - это inetuser
псевдоним для веб-сервера, и таким образом, Ваши файлы должны иметь доступ для чтения для этой группы.
Для загрузки файлов необходимо создать отдельный каталог, без чтения или выполнить права, но с доступом для записи.
Другая опция состоит в том, чтобы передать Ваш текст по каналу в grep и сократить:
grep -o ' at .*$' foo.txt | cut -c5-
Это извлечет самую длинную строку для каждой строки, которая запускается с 'в'. Сокращение затем обрежет продвижение 'в'.
Иначе должен был бы заменить первое вхождение at
с вкладкой поэтому теперь у Вас есть файл с разделением табуляцией, и можно использовать awk
правильно:
$ sed 's/ at /\t/' foo.txt | awk -F'\t' '{print $1" :: "$2}'
Assistant director :: Hollywood studios
Student :: University of Texas at Arlington
Или, то же самое в Perl:
$ perl -ne '/(.+?) at (.+)/; print "$1 :: $2\n"' foo.txt
или даже
$ perl -F'\sat\s' -lane 'print "$F[0] :: @F[1..$#F]"' foo.txt
Можно использовать at
как разделитель столбцов в awk
. Следующее должно работать:
awk -F'at' '{print $2}' foo.txt
at
Арлингтон.
– jasonwryan
11.02.2014, 01:04