fsck
уже выполняется в initrd / initramfs (после нечистого завершения работы требуется на несколько секунд больше при большой активности диска на этом этапе, когда кажется, что журнал воспроизводится повторно), и, таким образом, когда обычные, более подробные проверки файловой системы выполняются из основной системы, она уже чиста.
Вы можете (как user1
) что-то делать как
sudo -u website cat ~website/somefile > ~user1/somefile
Обратите внимание, что ~ user1 / somefile
сначала будет создан пользователем, запустившим оболочку ( user1
), а cat
будет выполняться как ] website
Вы можете использовать tar (1) с тем же трюком для нескольких файлов:
sudo -u website tar cf - ~website/foo ~website/bar | tar xf -
Запустите как user1
в его каталоге, который «создаст» tar-архив на stdout как website
, а другой tar (без sudo, поэтому запущенный от имени того же пользователя, что и тот, у кого запущена оболочка, то есть user1
) распакует этот виртуальный tar-файл в текущий каталог (в который user1
может писать).
ОБНОВЛЕНИЕ Обратите внимание, что tar создаст подкаталоги, ведущие к файлу, вы можете уменьшить это поведение, указав -C
, чтобы tar входил в указанный каталог перед запуском:
sudo -u website tar -C ~website -cf - foo bar | tar xf -
Таким образом, ] foo
и bar
будут созданы в текущем каталоге без ведущих подкаталогов (но если вы добавите blah / baz
, это создаст blah
как подкаталог в который baz
находится)