перенаправление справа налево в кодовый блок

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

.
chmod 111 a.txt
cp a.txt b.txt

Но при запуске от имени не -пользователя root, cpзавершается ошибкой, поскольку не может прочитать a.txt. Чтобы этого избежать, chmodпод fakeroot не удаляет разрешения у пользователя.

Fakeroot делает вид, что вносит изменения в запущенную программу.

$ stat -c "Before: %A" a.txt; fakeroot sh -c 'chmod 111 a.txt; stat -c "In fakeroot: %A" a.txt'; stat -c "After: %A" a.txt
Before: -rwx--x--x
In fakeroot: ---x--x--x
After: -rwx--x--x

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

0
24.10.2021, 16:18
0 ответов

Теги

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