Вы вообще не можете, если вы заранее не знаете, какой SID будет у вашего пользователя при новой установке Windows (, что непредсказуемо, как UID в системах UNIX ).
Предполагая, что у вас есть какой-то способ узнать, какой у вас будет SID, вы можете функционально воспроизвести права собственности и базовые ACE, используя обычные команды UNIX и функцию сопоставления имен пользователей NTFS -3G. См. раздел «Сопоставление пользователей» справочной страницы NTFS -3G для получения информации о том, как это настроить. После того, как это настроено, вы можете использовать обычные команды UNIX для управления владельцем и основными разрешениями файлов (IIRC, разрешение на чтение POSIX преобразуется в разрешения Windows «Чтение» и «Чтение и выполнение», а запись POSIX преобразуется в «Изменить»., но больше ничего не помню ).
Насколько мне известно, из Linux невозможно скопировать все Windows ACE.
Небольшое замечание: возможно, вы также захотите скопировать альтернативные потоки данных NTFS. Вы можете легко сделать это с помощью инструментов UNIX, которые поддерживают Linux xattrs (при условии, что вы не укажете параметр streams-interface
для NTFS -3G, по умолчанию они будут отображаться как xattrs ).
Можно использовать цикл for
:
#!/bin/bash
for fruit in apple banana grape; do
cp "/${fruit}/test.txt" "/fruits/${fruit}_test.txt"
done
Цикл выполняется три раза; каждый раз, когда переменная fruit
принимает одно из трех значений apple
, banana
и grape
. Для каждого фрукта он копирует исходный файл в файл назначения.