LINUX.ORG.RU
ФорумAdmin

Временно запретить запуск некоторых программ


0

1

Собственно как запретить запуск некоторых программ пользователю. Например при запуске сеанса, выполняется синхронизация профиля программы, и чтобы не возникло конфликтов желательно блокировать ее запуск, ну а по завершению синхронизации разрешить. Как?

★★★★★

Кажется я представляю, что ты имеешь в виду и тут может быть несколько альтернативных вариантов в различной степени сложности и идиотизма:

  1. блокировать всю сессию, пока синхронизация не закончится
  2. синхронизировать на заднем фоне в shadow директорию, потом mv в правильное место (атомарно) и kill -HUP софту
  3. синхронизировать не в начале, а конце сессии
  4. одноимённые врапперы программ с проверкой на lock и приоритетом по $PATH
  5. менять что-то в «консерватории», например вынести профили в NFS
  6. ...
beastie ★★★★★
()
Ответ на: комментарий от beastie

1 не подходит - я не могу ждать синхронизации профиля редактора - пока его нет я могу работать в браузере. 2 не подходит - конфликты все равно будут 3 никак не можно - сейчас ниже объясню 4 такая идея у меня у самого, но я ее не озвучивал чтобы не сбивать - пока дежурная. 5 нет - просто нет

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

Смотри, я работаю с ноута и со стационара. Профиль редактора содержит очень много барахла которое хотелось бы иметь расшаренным. Ну в частности это настройки подключения по ftp/sftp к over20 серверов, тулзы которые я к нему в процессе прикручиваю и т.п.

Кроме этого, я хочу вытащить его профиль в tmpfs для более лучшей работы, нутыпонел.

И того. При старте сессии, надо дождаться завершения синхрона с облаком, потом подбросить профиль в RAM потом переименовать папку профиля на бэкап и создать на ее месте ссылку на профиль в RAMe. После этого можно пускаться.

Как это сделать пока не соображу.

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

Что же ты такое синхронизируешь (и главное как?), что оно так долго длится?

Тот же rsync, git, whatever занимает от силы минуту, даже на больших объёмах.

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

rsync / git во все поля и блок на сессию. Ты ищешь проблемы там, где их нет. kiss.

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

Как это сделать пока не соображу.

Оберни все это в свой скрипт. в начале синхронизация, ну ты понял. и потом в конце стартует твой волшебный редактор.

MikeDM ★★★★★
()

Инкрементирую chmod. А для уверенности можно еще killall -9 перед чмодом вызвать.

Anon
()
Ответ на: комментарий от qnikst

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

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

странно, я сразу так и понял

~/bin/prog <- shell скрипт, который делает всё что надо
/usr/bin/prog <- сама прога

скрипт - синхронизует текущий профиль с тем, что в облаке, вызывая progdiff если придётся, и запускает программу, после завершения снова синхронизирует (pull -> решение конфликтов -> push).

с этим подходом не нужно думать о запрете запуска. Так же в случае если аналогичный подход нужен в рамках одного хоста, то можно ввести доп уровнь - tmpfs (который ты и так хочешь), а именно после первой синхронизации профиля класть его в tmpfs, и после завершеиня мержить tmp профиль с основным на хосте (просто pull -> решение конфликтов), потом синхронизировать с облаком..

поверх существующей VCS это хорошо ляжет.

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

Проблема в том, что пока я не ткнул в запуск программы синхронизация не началась, что я думаю плохо.

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

добавь отдельную синхронизацию по крону и проверку таймстампов

UPD. можно из того же скрипта с параметром и LOCK-файлом для блокировки

feofan ★★★★★
()
Последнее исправление: feofan (всего исправлений: 1)

а не хранить ли профиль программы на nfs c cachefs, подключая его по мере надобности через autofs?

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

Похоже на решение без костылей. Годный анон.

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

А откуда оно синхронизируется тогда? С усб? Или предполагается, что нфс-сервер может быть не всегда доступен?

Тогда подойдёт гит, которым пользователь будет пользоваться в процессе работы со своей программой — объяснить, показать, проверить знания. Ничего сложного в этом нет.

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

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

Suntechnic ★★★★★
() автор топика

zfs snapshot ...

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