Блокирование комнаты-rf для приложения

На самом деле легче просто goto хост-машина в VIC под сводной вкладкой и просмотреть хранилище данных. Затем создайте папку для нового vm, скопируйте vmdk файл со своего источника vm копией и вставкой в браузере хранилища данных и затем создайте пользовательский VM для нового vmdk файла. Удостоверьтесь свой VM и соответствие имен папок, и это берет 1/10-й из времени, чтобы сделать.

Пример для меня был:

VM на 7 ГБ:

  • Преобразователь: 13 минут
  • Прямой: 3 минуты
  • Копия через браузер Хранилища данных: 1 минута

Я сделал копии 17 VM's в Под 20 минутами, которые сохранили тонну времени от преобразователя.

3
задан 1 May 2015 в 14:51
2 ответа

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

Если Вы можете удалить/tmp каталог или все в в нем как некорневой пользователь, то Ваши полномочия кажутся неправильными.

Полномочия, которые я имею в своей системе:

drwxr-xr-x 26 root root 4096 2009-10-14 12:00 /
drwxrwxrwt 27 root root 12288 2009-10-19 16:10 /tmp

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

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

Создайте unlink.c, содержащий:

int unlink(const char *pathname) {
   return 0; 
}

int unlinkat(int dirfd, const char *pathname, int flags) {
   return 0;
}

Мы также переопределяем функцию unlinkat также в случае, если она использует это. Можно теперь работать:

% gcc unlink.c --shared -o unlink.so
% file unlink.so
unlink.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), 
dynamically linked, not stripped
% touch foo
% LD_PRELOAD=./unlink.so rm foo
% ls foo 
foo

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

10
ответ дан 3 December 2019 в 04:48

Две мысли приходят на ум:

  1. Можно попытаться добавить неизменный флаг к каталогу. +i

    болтайте +i/path/to/files /*

  2. Если программа является сценарием, удалите связь с командой комнаты для этого пользователя. Создайте псевдоним, который 'ничего не делает' для комнаты:

    комната псевдонима ='echo'

Я думаю, что первое препятствовало бы тому, чтобы файлы были удалены, но не произойдет автоматически. Второе препятствовало бы тому, чтобы приложение удалило любые файлы, с помощью команды RM, по крайней мере. Если это использует вызов файловой системы затем, Вы собираетесь быть нелегко предотвращать удаление этот путь.

2
ответ дан 3 December 2019 в 04:48
  • 1
    болтовня потребовала бы корневого доступа. Псевдоним только влиял бы на сценарии оболочки и даже затем I' m не убежденный. –  David Pashley 19 October 2009 в 18:28

Теги

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