Сценарий для изменения владения файлов

Виртуализация обычно является лучшим выбором, а не «два рабочего стола». Но это может не всегда быть правдой.

Сначала вы должны определить, может ли то, что вы хотите сделать, может быть виртуализированным. Офисные продукты и другие такие низкие нагрузки вещи должны быть просто в порядке. Высокие задачи CPU обычно работают нормально. Высокие задачи оперативной памяти обычно в порядке, но могут быть проблема, если у вас нет головок, чтобы запустить как ОС, так и для жевания ОЗУ, одновременно. Задачи, требующие определенного оборудования , могут работать , но обычно не требуют сложных конфигураций. Если вы можете виртуализировать, то это вопрос в каком пути.

Я вентилятор хоста Linux и Windows Guest. Однако это может быть не правильно. Вообще говоря, Linux лучше в том, чтобы быть хостом виртуализации, если вы делаете нормальный Офисные вещи. Если вы пытаетесь получить несколько специальных аппаратных средств, работающих в VM, особенно если он должен взаимодействовать с некоторым аппаратным обеспечением (как уже упоминалось), Windows может быть лучшим хостом. Я также думаю, что хосты Windows имеют крошечный бит лучшего поддержки эмуляции GPU для 3D-рендеринга, но я никогда не видел, что это имеет значение.

Так что вы действительно оставили, это то, что является лучшим инструментом для работы? Вы тратите больше «времени» в Windows или Linux? Это должен быть хозяин, другой гость. Единственное, что должно переопределить, что (предпочтение на основе времени) - это специальные аппаратные потребности.

Некоторые быстрые примечания по методам:

  1. , вероятно, правильный выбор на основе вашего вопроса. Можно поделиться буфером обмена, и обычно проще доступ к ресурсам Host Linux в гостевых гостях Windows, чем наоборот. Никакой недостаточности (особенно если у вас есть аппаратное обеспечение с поддержкой виртуализации)

  2. Windows не такая же стабильная, как Linux в большинстве случаев, и если ваш хост-ОС сбивает, вы ослабляете как хост, так и все гостей. То, что сказал, Linux очень «используется для» начать виртуализированным, и, вероятно, работает лучше, как гость, затем Windows. Однако это вряд ли будет иметь значение для офисной работы. (Например, Windows Guest OSES, похоже, всегда имеет проблемы с сетью в условиях высокой нагрузки)

  3. , вероятно, худший способ пойти в эти дни на основе вашего вопроса. Тем не менее, это испытанный и истинный метод. Кроме того, это единственный выбор, если вам нужен доступ на уровне оборудования к чему-то, что вы не можете работать над гостевой ОС.

-1
06.01.2019, 15:31
2 ответа

Предполагая, что вы также хотите изменить группу файла (если нет, просто отбросьте :newuser).

find /dir/with/files -type f -user root -exec chown newuser:newuser {} + 2>>logfile

Очевидно, что для изменения файлов, принадлежащих root, вам нужно быть root, поэтому не забывайте запускать их с sudo или после su. Также, если вы хотите работать и с каталогами (я полагаю, что вы, вероятно, так и делаете), просто отбросьте -type f.

0
28.01.2020, 05:13

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

find . [or other directory] -type f -user 0 -exec chown <newusername> '{}' +

, где -type f используется, чтобы не касаться каталогов или других нестандартных типов файлов (удалите, если не требуется).

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

#!/bin/sh
if [ "$#" -lt 1 ]; then #check if username was given
  echo >&2 "provide user name"
  exit 1
fi
find . -type f -user 0 -exec chown "$1" '{}' +

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

0
28.01.2020, 05:13

Теги

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