Вы, кажется, понимаете понятие полномочий, но я думаю, что Вы становитесь схваченными на user/group/other и что они имеют в виду в различных контекстах.
Кратко,
Файл на диске имеет двух владельцев. user
владелец и group
владелец. Для какого-то конкретного файла, other
любая учетная запись пользователя, которая не соответствует user
ни член group
. Другими словами, other
любой пользователь, который не является пользовательским владельцем и не является членом владельца группы.
Далее, каждый процесс работает под определенным идентификатором пользователя (или UID) и является членом одного или нескольких идентификатор Группы (GID). Используйте команду ps -ef
(на Linux и Солярисе, или ps -ej
на OS X или *BSD), чтобы видеть, что пользователь выполняет каждый процесс. Вы будете видеть, что апач и ws_ftp также выполняются пользователями.
Когда процесс пытается получить доступ к файлу на диске, следующее происходит:
UID
из процесса соответствует user
владелец файла затем user
полномочия осуществляются.GID
s процесса соответствуют group
владелец файла затем group
полномочия осуществляются.other
полномочия осуществляются.Отвечать на Ваши вопросы конкретно:
То, когда я вхожу в систему с WS_FTP, является мной Владелец?
Технически да, потому что всегда существует владелец, но это зависит от Вашего определения "I".
Если Вы входите в систему как настоящий пользователь POSIX в системе затем файлы, Вы создаете/получаете доступ, будет как пользователь, Вы вошли в систему как. При входе анонимно затем файлов, Вы создаете/получаете доступ, будет файл UID WS FTP. Это, вероятно, будет также ftp
или nobody
.
Действительно ли веб-браузер - Другой?
Веб-браузер - ничто, потому что он не выполняется на сервере. Но браузер получает доступ к веб-серверу. Веб-сервер работает как некоторый определенный пользователь (точно так же, как WS_FTP). Тот пользователь вероятен www-data
, apache
или nobody
.
Сами Сценарии PHP попадают в один из этих классов?
Сценарии PHP выполняются модулем механизма выполнения сценариев веб-сервера. Они будут выполняться как тот же пользователь, выполняющий веб-сервер.
Существует ли различие между чтением, и выполнитесь на .php файле?
Да. Считайте средства, что пользователь может считать содержание файла. Выполните средства, что содержание может быть выполнено как абсолютный процесс.
Так как Сценарии PHP выполняются в механизме выполнения сценариев веб-сервера (т.е. они - часть пространства памяти и поток выполнения сервера), они не должны быть установлены исполняемый файл.
Так как я понятия не имею, кто "inetuser", я был бы корректен в не предоставлении Группе каких-либо полномочий? Что, если дело было не так (т.е. имя пользователя сайта также использовался для Группы - который это находится на моем dev сайте на другом хосте)?
inetuser
учетная запись пользователя в системе, точно так же, как Ваша учетная запись. Это может также быть группа. Надо надеяться, можно ответить на этот вопрос сами после прочтения этого.
В каких полномочиях каждый вид файла/dir нуждается при этих обстоятельствах?
Обычно Вы хотите, чтобы файлы данных принадлежали учетным записям пользователей, которые используются фактическими людьми (т.е. Вы). Другими словами, Ваш веб-контент не должен принадлежать апачскому пользователю.
paste -d
берет обязательный аргумент.
См. страницу справочника
-d, --delimiters=LIST
reuse characters from LIST instead of TABs
Этот формат действительно означает
-d LIST or --delimiters=LIST
reuse characters from LIST instead of TABs
Таким образом с paste -d file1
, Вы устанавливаете LIST
кому: file1
, и никакое имя файла не указано. И поскольку в странице справочника говорится:
With no FILE, or when FILE is -, read standard input.
С paste -ds file1
, Вы устанавливаете разделитель на s
. Необходимо было бы предоставить несколько файлов для наблюдения эффекта.
Выдержать сравнение
$ paste <(printf 'foo\nbar\n') <(printf 'one\ntwo\n')
foo<TAB>one
bar<TAB>two
$ paste -ds <(printf 'foo\nbar\n') <(printf 'one\ntwo\n')
foosone
barstwo
Я нахожу, что он обычно путающий смотрит на существующий корпус инструментов, чтобы попытаться получить понимание того, как работают параметры командной строки.
Почему Вы могли бы спросить?
Хорошо существует много ситуаций, где автор данного инструмента командной строки представляет параметры командной строки пользователю в том, что имеет большую часть смысла для их инструмента. Таким образом, следовательно, опции могут быть довольно сложными и сбивать с толку, пока Вы не получаете голову вокруг них.
Не понимайте меня превратно, хорошо получить оценку для различных способов, которыми опции могут быть представлены, но когда начинающийся, вероятно, лучше запуститься с фактического инструмента, который можно было бы использовать для парсинга параметров командной строки, такой как getopts
.
Таким образом, я предложил бы смотреть на getopts
, это включено в Bash, если бы Вы хотите получить оценку для того, как можно было бы проанализировать их собственные параметры командной строки, если бы они создавали сценарий оболочки, который потребовал аргументов парсинга.
#!/bin/sh
# Initialize our own variables:
output_file=""
verbose=0
OPTIND=1 # Reset is necessary if getopts was used previously in the script.
# It is a good idea to make this local in a function.
while getopts "hvf:" opt; do
case "$opt" in
h)
show_help
exit 0
;;
v) verbose=1
;;
f) output_file=$OPTARG
;;
'?')
show_help >&2
exit 1
;;
esac
done
shift $((OPTIND-1)) # Shift off the options and optional --.
echo "verbose=$verbose, output_file='$output_file', Leftovers: $@"
# End of file