Упомянутые вами команды используются для настройки используемого образа диска, например от qemu
или bochs
для запуска гостевой операционной системы. Я сделал это для запуска очень старых версий 386bsd или Linux в демонстрационных целях. Или вы можете манипулировать изображением на (быстром) диске, чтобы позже записать его на (медленный) USB-накопитель.
Если вы хотите поэкспериментировать с потенциально опасными операциями на каком-либо устройстве, вы можете скопировать содержимое в файл на диске и поваляться с копией.
Для компьютерной криминалистической экспертизы крайне важно не трогать исходные данные. Скопируйте содержимое устройства в файл с помощью обратной связи, чтобы затем проанализировать, сколько душе угодно.
Вы можете создать ISO-образ на диске и отправить его, не записывая его.
Создание файловой системы в файле позволяет вам сломать его и протестировать на нем инструменты восстановления.
Как видите, для этого есть много потенциальных применений.
Экспорт переменных:
export artifact=archive.tar.gz
export workdir=/home/user
Вы можете использовать zsh
вместо bash
, который поддерживает изменение uid и gid (при условии, что он запущен с привилегиями супер -пользователя):
#! /bin/zsh -
id
echo "Original user: $SUDO_USER"
var=test
(
USERNAME=$SUDO_USER
echo "Runing as $(id -un) in this subshell var=$var"
)
(USERNAME=nobody; echo and now:; id; echo $var)
Работает как:
$ sudo./that-script
uid=0(root) gid=0(root) groups=0(root)
Original user: stephane
Runing as stephane in this subshell var=test
and now:
uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
test
Параметр USERNAME
устанавливает uid, euid, gid, egid и дополнительные gid, как при входе в систему или использовании sudo
. Вы также можете установить переменные UID
/ EUID
/ GID
... по отдельности.