Как Linux гарантирует восстановление бесполезных «буферов» из кэширования записей журнала ext4 прежде всего (, например. перед обменом вообще)

Проблема здесь, вероятно, связана со списком управления доступом (ACL )папки «Музыка». ACL — это отдельная система разрешений для обычных POSIX-систем, которые обычно перечислены в ls -l. Некоторые другие каталоги в домашней папке и в других местах также имеют ACL.

Чтобы просмотреть списки ACL в домашнем каталоге, используйте:

/bin/ls -le ~

Скорее всего, вы увидите правило типа 0: group:everyone deny deleteдля музыкального каталога. Как вы заметили, вы можете обойти проблему с sudo. Если вы не хотите этого делать (или не можете ), у вас есть другие варианты, учитывая, что вы являетесь владельцем файла. Вы можете удалить оскорбительную запись из ACL музыкального каталога на основе ее индекса (0 в примере, который я привел выше ):

.

/bin/chmod -a# 0 Music

Либо можно удалить все записи в ACL:

/bin/chmod -N Music

Теперь вы можете перемещать каталог (в соответствии с обычными разрешениями POSIX ). Если вы хотите вернуть ACL обратно после перемещения, вы можете использовать:

/bin/chmod +a "group:everyone deny delete" Music_tmp

И снова нажмите /bin/ls -le, чтобы подтвердить, что ACL соответствует вашим требованиям. Ознакомьтесь с примерами ACL в man chmodдля получения дополнительной информации. В частности, это введение полезно:

Each file has one ACL, containing an ordered list of entries. Each entry refers to a user or group, and grants or denies a set of permissions. In cases where a user and a group exist with the same name, the user/group name can be prefixed with "user:" or "group:" in order to specify the type of name.

Приказ ACL

Я не думаю, что эта справочная страница объясняет правила порядка следования, но эта страница ясно объясняет правила порядка для ACL. В частности, явное правило denyбудет применяться перед явным правилом allow. Таким образом, пока существует запись group:everyone deny delete, невозможно дать пользователю разрешение на удаление с помощью правила allow. Это связано с тем, что доступ запрещен для группы everyone, в которую входит и вы, и это правило будет применено первым.

4
29.10.2018, 12:39
1 ответ

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

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

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

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

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

1
27.01.2020, 21:01

Теги

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