Как сохранить переменные оболочки в скрипте после смены пользователя

Упомянутые вами команды используются для настройки используемого образа диска, например от qemu или bochs для запуска гостевой операционной системы. Я сделал это для запуска очень старых версий 386bsd или Linux в демонстрационных целях. Или вы можете манипулировать изображением на (быстром) диске, чтобы позже записать его на (медленный) USB-накопитель.

Если вы хотите поэкспериментировать с потенциально опасными операциями на каком-либо устройстве, вы можете скопировать содержимое в файл на диске и поваляться с копией.

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

Вы можете создать ISO-образ на диске и отправить его, не записывая его.

Создание файловой системы в файле позволяет вам сломать его и протестировать на нем инструменты восстановления.

Как видите, для этого есть много потенциальных применений.

0
23.01.2019, 11:24
2 ответа

Экспорт переменных:

export artifact=archive.tar.gz
export workdir=/home/user
0
28.01.2020, 05:05

Вы можете использовать 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... по отдельности.

-1
28.01.2020, 05:05

Теги

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