Подтвердить что ты не робот

Понимание аргументов в разрешении каталога Linux

Привет У меня есть 2 вопроса о разрешениях каталога Linux, которые я не понимаю.

Я удалил флаг выполнения из папки с именем Documents. После этого я не могу использовать cd, но я все еще могу делать "ls Documents" из родительского каталога, и он по-прежнему перечисляет мне файлы в каталоге "Документы". Я, хотя отсутствующий флаг x запрещает читать этот каталог?

Затем я хочу знать, почему был изобретен липкий бит в каталогах. Я слышал, что он использовался, чтобы пользователи не могли удалять временные файлы другими пользователями. Но это IMO нарушает правило, что для удаления файлов нам просто нужны права для этого каталога. Почему бы просто не дать каждому пользователю отдельный каталог/tmp/вместо того, чтобы вводить исключения в систему правил? Я знаю, что делает флаг, но я хочу знать, почему было придумано, почему это было изобретено.

4b9b3361

Ответ 1

Выполнять бит: Бит выполнения необходим для трассировки каталога. Разрешение читать директория контролируется бит чтения.

См. этот диалог оболочки для примера этой разницы:

Как root:

# find foo/ -ls
drwxr-xr--   3 root     root         4096 Apr 27 12:57 foo/
drwxr-xr-x   2 root     root         4096 Apr 27 12:57 foo/bar
-rw-r--r--   1 root     root            0 Apr 27 12:57 foo/bar/file

как пользователь:

$ ls foo/
bar
$ find foo/ -ls
drwxr-xr--   3 root     root         4096 Apr 27 12:57 foo/
find: foo/: Permission denied
$

Обычное использование - наоборот: удаление разрешений на чтение, но разрешение обхода, например. чтобы веб-сервер в ~/public_html, но не позволял ему делать список индексов по умолчанию, установив --x.

Липкий бит:. Это было изобретено, чтобы избежать стандартных правил удаления в каталоге, поэтому /tmp работает. /tmp может находиться на другом томе, чем /home и/или управляться разными квотами.

FHS кодирует /tmp "для программ, требующих временных файлов", в то время как "[они] не должны предполагать, что любые файлы или каталоги в /tmp сохраняются между вызовами".

Лично я считаю /tmp устаревшим из языческих дней, когда vi globals.h && make install считался процедурой установки. В настоящее время программы должны оценивать $TMPDIR, которые должны указывать на каталог, управляемый пользователем, с системой, который следует очистить, по крайней мере, при перезагрузке. Даже стандартные функции, такие как tmpfile (3), не задают фактический путь. Хотя, похоже, важны проблемы совместимости и безопасности, говорящие для /tmp. Обратите внимание, что последнее сообщение с 1999 года, поэтому с тех пор все может измениться.

Ответ 2

Просто наткнулся на это, потому что он получил высокий рейтинг Google. На вопрос о выполнении бит на самом деле не ответил, поэтому...

Если бит выполнения не задан в каталоге, то он не "обходит", что означает, что оболочки и файловые браузеры должны быть предназначены для того, чтобы запретить вам устанавливать этот каталог как текущий, хотя эта функция не может быть применена самой файловой системой. То, что файловая система запрещает в директории no-execute, - это любая информация, отличная от имени файла, содержащегося в этом файле, - так что никаких датстопов или прав доступа к файлам этих файлов и чтения этих файлов, даже если они были прочитаны.

Ответ 3

Липкий бит

Самое распространенное использование липкого бита сегодня - в каталогах, где, когда установлено, элементы внутри каталога могут быть переименованы или удалены только владельцем элемента, владельцем каталога или суперпользователем; без установленного липкого бита любой пользователь с правами на запись и выполнение для каталога может переименовывать или удалять содержащиеся файлы независимо от владельца. Обычно это устанавливается в каталоге /tmp, чтобы обычные пользователи не могли удалять или перемещать файлы других пользователей. Эта функция была введена в 4.3BSD в 1986 году, и сегодня она встречается в большинстве современных Unix-систем.

Кроме того, Solaris (как и Solaris 2.5) определяет особое поведение, когда липкий бит устанавливается на неисполняемые файлы: эти файлы при доступе не будут кэшироваться ядром. Обычно это устанавливается в файлах подкачки, чтобы предотвратить доступ к файлу из потока более важных данных из системного кеша. Он также иногда используется для тестирования бенчмаркинга.

Ключ-бит также устанавливается автомонтиром, чтобы указать, что файл еще не установлен. Это позволяет программам, например, ls игнорировать удаленные удаленные файлы.

Ответ 4

Для CD-каталогов должен быть режим 0555 и файлы 0444. Группу Unix можно рассматривать как роль. Ваши роли - ваши дополнительные группы. Элементы управления являются обязательными, если вы не являетесь владельцем. Они являются дискреционными, если вы. Вы можете перемещаться по пути только в том случае, если у вас есть разрешение eXecute/search для каждого элемента пути. Это отличается от Microsoft Windows, которая уязвима для обхода каталога. Было изобретено внедрение серии Rainbow "Доверенные критерии оценки компьютерной системы DoD".