LINUX.ORG.RU
ФорумAdmin

Запуск временных скриптов

 , ,


0

3

Есть скрипт, который генерит «временный» и запускает его. Думаю, создавать его в /tmp/$USER. Выставлять права на папку, и сам скрипт, только для пользователя (даже без группы). Из этого каталога запускать сам временный скрипт (FILE_NAME=`uuidgen | tr -d \\n`), потом удалять.

Не знаю насколько это правильно, может моветон, может не секурно, может все давно делают по другому.

Критика и рекомендации приветствуются.

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

zolden ★★★★★ ()

Не знаю насколько это правильно

ИМХО нинасколько, если генерируемый скрипт не является целью работы основного скрипта. Зачем это вообще могло понадобиться?

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

Есть утилиты, которые принимают команду как параметр. В другом топике, я пытался для gnome-session-inhibit --inhibit idle [cmd] передать эту самую команду. И нивкакую, ни кавычки, ни sh -c «cmd» не помагают. А команда, что-то типа «pv $1 | mencoder - -cache 2048 ...», перекодирование видео с прогрессом pv, взамен встроенного в mencoder.

Из всего, что я искал и придумывал, помогло указание временного скрипта, как команды. Т.е. временный скрипт нужен для выполнения основного.

Если бы там pid можно было указывать, наверное проще было, а так гном хочет команду.

barberry ★★ ()
Последнее исправление: barberry (всего исправлений: 1)
Ответ на: комментарий от pod

Для создания имени временного файла? Мне кажется, uuidgen понадежнее будет.

barberry ★★ ()
Ответ на: комментарий от barberry

Тогда для секурности еще можно первой командой в скрипте

rm $0

anonymous ()

100500 так делал, создавал mktemp-ом, но это на вкус и цвет.

Иногда действительно удобно создавать скрипт из скрипта.

Вот только каталог /tmp/$USER ты тоже создавать будешь или создашь заранее? А имя у него будет всегда одинаковое? А если кто-нибудь другой создаст каталог или файл с таким же именем, то твой скрипт перестанет работать?

Имхо, лучше либо не создавать каталог, либо создавать с генерируемым случайным именем и удалять каждый раз.

anto215 ★★ ()
Ответ на: комментарий от anto215

Про каталог я не подумал, хорошее замечание.

Удаление есть после работы, но не каталога, а скриптов.

Я думаю, можно и без каталога, сделать touch, проставить права, а после вписать текст скрипта, запустить и удалить.

barberry ★★ ()
Ответ на: комментарий от anto215

А если кто-нибудь другой создаст каталог

if [ -d "/tmp/$USER" ] ; then
  DIR_EXISTS=1
else
  DIR_EXISTS=0
  mkdir "/tmp/$USER"
fi
…
if [ $DIR_EXISTS -eq 0 ] ; then
  rm -rf "/tmp/$USER"
fi

файл с таким же именем

Там uuidgen же, исключено.

redgremlin ★★★★★ ()
Ответ на: комментарий от redgremlin

Гладко было на бумаге.

Имеется ввиду, что юзер redgremlin создаст файл или каталог /tmp/barberry с правами не допускающими -запись -чтение -удаление -поиск для юзера barberry.

anto215 ★★ ()

Скрипт можно лить башу в stdin.

bash -s

Я бы даже сказал нужно

redixin ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.