В контексте файловых систем Unix или Linux "метаданные" являются информацией о файле: идентификатор пользователя того, кто владеет им, полномочия, тип файла (специальный, регулярный, именованный канал, и т.д.) и который используют дисковые блоки файл. Это все обычно сохраняется в дисковой структуре, названной "inode". Одно из сведений в inode - то, сколько "ссылок" на файл существует. Регулярный файл обычно имеет 1, но каталог (который является главным образом файлом со специальным предложением, "я - каталог" метка типа файла) имеет по крайней мере 2 ссылки. Все видимое в файловой системе имеет одну ссылку из каталога, в котором это появляется, но так как каждый каталог имеет имя a".", а также его обычное имя, у них есть 2 ссылки.
fsck
может просканировать файловую систему "inode блоки" (дисковые блоки, которые содержат inode структуры данных) найти inodes, которые имеют число каналов, больше, чем 0. Файл, представленный inode с числом каналов, больше, чем 0, должен появиться в каталоге где-нибудь. Если это inode не появляется в каталоге, fsck
помещает файл в известный каталог, обычно "lost+found" наверху файловой системы. Обратите внимание, что файловые системы Unix/Linux обычно не имеют никаких метаданных в inode, о котором каталоге inode принадлежит, только информация в файле каталога, о котором регистрирует каталог, содержит.
fsck
может использовать другие метаданные, как которые дисковые блоки содержит данные файла. fsck
может проверить, появляются ли дисковые блоки, которые, как inode говорит, принадлежат файлу, в "освобожденном списке файловой системы" дисковых блоков. Потенциально fsck
мог проверить, содержат ли два или больше inodes те же дисковые блоки, которые указали бы на некоторое повреждение нескольких-выделений.
Выделение дисковых блоков в файлы появляется в дисковом inodes. Древовидная структура членства в каталоге файловой системы появляется в каталогах. inodes не появляются и не выделяются, каталоги. fsck
использует в своих интересах это разделение, чтобы сделать восстановления. Это очень отличается от систем как MS-DOS или ранний Windows, где "таблица размещения файлов" содержала обе древовидных структуры (членство в каталоге) и выделение дискового блока. Повредите "FAT", и необходимо пойти дисковые блоки сканирования для наблюдения то, что они содержат, и как они могли бы совместиться.
Создайте пользователя, это выделено запуску этого приложения. Дайте это пользовательское разрешение записи на notRestricted
каталог и больше нигде. Так как Вы не возражаете, если приложение может читать отовсюду, Вам не нужно ничто более сложное.
Приложение все еще сможет записать в публично перезаписываемые каталоги: /tmp
и /var/tmp
на большинстве установок. Если это - проблема, настроило список управления доступом на этих каталогах и отклоняет разрешение записи к приложению, например, на Linux
setfacl -m user:testUser:0 /tmp /var/tmp
Удостоверьтесь, что пользователь не находится в группе, которая имеет разрешение записи к некоторому каталогу, где Вы не хотите, чтобы приложение записало.
Это - то, что делает система песочницы хинду. Это не особенно хорошо документируется, и я не уверен, как трудный это должно было бы получить работу нехинду системы, но это, вероятно, выполнимо.
Можно получить текущую стабильную версию здесь и посмотреть в etc/sandbox.conf, чтобы видеть, как настроить его.
useradd
,adduser
, или безотносительно утилиты Ваш вариант Unix должен создать пользователя. Самый легкий способ управлять доступом к каталогу состоит в том, чтобы сделать его и его файлы (но ничто иное) принадлежавший недавно созданной группе, и сделать нового пользователя членом той группы (и никакой другой группы). – Gilles 'SO- stop being evil' 16.06.2011, 16:59