Каковы различные коды разрешения файла и что они имеют в виду?

Я работаю со сценарием загрузки файла. Я в настоящее время загружаю файл и затем пытаюсь повторить привязку, связывающуюся с тем файлом, но так как я использовал mkdir () с 0700 полномочиями загрузить файл, это не предоставит мне доступ для просмотра файла.

Я вполне уверен проблема, которую я испытываю, из-за кода разрешения файла, который я использовал. Проблема, я просто не знаю то, что все различные коды разрешения файла и что они имеют в виду.

Кто-то может перечислить все различные полномочия файла и что каждый из них делает?

1
задан 06.06.2010, 01:33

2 ответа

Полномочиями в подобных Unix системах управляют в трех отличных классах. Эти классы известны как пользователь, группа и другие.

Классы

Файлы и каталоги принадлежат пользователю. Владелец определяет класс владельца файла. Отличные полномочия относятся к владельцу.

Файлам и каталогам присваивают группа, которые определяют класс группы файла. Отличные полномочия относятся к членам элементов группы файла. Владелец не должен быть членом группы файла.

Пользователи, которые не являются владельцем, ни членом группы, включают класс других файла. Отличные полномочия относятся к другим.

Эффективные полномочия определяются на основе класса пользователя. Например, пользователю, который является владельцем файла, дадут полномочия классу владельца независимо от полномочий, присвоенных классу группы или классу других.

Полномочия

Существует три определенных полномочий в подобных Unix системах, которые относятся к каждому классу:

  • Разрешение чтения, которое предоставляет способности считать файл. Когда установлено для каталога, это разрешение предоставляет способности считать названия файлов в каталоге (но не узнать дальнейшую информацию о них, такую как содержание, тип файла, размер, владение, полномочия, и т.д.)

  • Разрешение записи, которое предоставляет способности изменить файл. Когда установлено для каталога, это разрешение предоставляет способности изменить записи в каталоге. Это включает файлы создания, удаление файлов и переименование файлов.

  • Выполнить разрешение, которое предоставляет способности выполнить файл. Это разрешение должно быть установлено для исполняемых двоичных файлов (например, скомпилированная программа C++) или сценарии оболочки (например, программа Perl), чтобы позволить операционной системе выполнять их. Когда установлено для каталога, это разрешение предоставляет способности пересечь ее дерево, чтобы получить доступ к файлам или подкаталогам, но не видеть файлы в каталоге (если считанный не установлен).

Эффект установки полномочий на каталоге (а не файл) является "одной из наиболее часто недооцененных проблем разрешения файла".

Когда разрешение не установлено, права, которые оно предоставило бы, отклонены. Файлы, созданные в рамках каталога, будут не обязательно иметь те же полномочия как тот каталог. Полномочия, которые будут присвоены, определяются с помощью umasks.

Восьмеричная нотация

Восьмеричная нотация состоит из трех - или четырехразрядная основа 8 значений.

С трехразрядной восьмеричной нотацией каждая цифра представляет различный компонент набора полномочий: пользовательский класс, класс группы и класс "других" соответственно.

Каждая из этих цифр является суммой своих битов компонента (см. также Двоичную систему счисления). В результате определенные биты добавляют к сумме, поскольку она представлена цифрой:

  • Чтение укусило, добавляет 4 к его общему количеству (в двоичных 100),

  • Запись укусила, добавляет 2 к ее общему количеству (в двоичных 010), и

  • Выполнить бит добавляет 1 к своему общему количеству (в двоичном 001).

Эти значения никогда не производят неоднозначные комбинации; каждая сумма представляет определенный набор полномочий.

Вот сводка значений для отдельных восьмеричных значений цифры:

0 --- no permission
1 --x execute 
2 -w- write 
3 -wx write and execute
4 r-- read
5 r-x read and execute
6 rw- read and write
7 rwx read, write and execute

Также обратите внимание, что Ваш файл мог бы принадлежать пользователю foo, Apache обычно работает как другой пользователь (давайте назовем его bar). Это означает, что, если Вы хотите, чтобы Apache считал его, необходимо дать group или other (в зависимости от Вашей установки) разрешение считать Ваш файл.

Можно найти больше информации о полномочиях Файловой системы POSIX на Википедию.

8
ответ дан 12.12.2019, 07:45

Походит на serverfault вопрос.

Чтобы у несистемных пользователей был доступ для чтения на каталоге, необходимо установить каталог как исполняемый файл.

Что касается того, что означают числа, это - восьмеричный номер кода, устанавливающий все три группы полномочий сразу.

R W X  Code
0 0 0  0 No Permission
0 0 1  1 Executable
0 1 0  2 Write
0 1 1  3 Write and execute
1 0 0  4 Read
1 0 1  5 Read and execute
1 1 0  6 Read and write
1 1 1  7 read, write, execute

Просто заблокируйте эти три числа вместе с владельцем, являющимся первым числом, при этом группа будь вторым, и другие, являющиеся третьим, и у Вас есть самостоятельно восьмеричный код разрешения.

Обычно с долями файла, Вы устанавливаете файлы на 744 и каталоги к 755, потому что владельцу нужно разрешить сделать что-либо с ним, но пользователи и гости (такие как анонимные интернет-пользователи) должны были просто прочитать полномочия.

http://catcode.com/teachmod/numeric.html

2
ответ дан 12.12.2019, 07:45

Теги

Похожие вопросы