Astra linux скрипт при запуске

Astra linux скрипт при запуске

Команды, запускаемые с привелегиями root

В Astra Linux имеется следующий файл:

(не следует его путать с /etc/X11/fly-dm/Xsetup ).

В данном файле прописываются команды, которые будут выполнены перед тем, как сессия X11 запустится для конкретного пользователя. Команды, прописанные в этом файле, выполняются под пользователем root . При этом в переменной среды USER будет прописано имя логинещегося пользователя.

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

Команды, запускаемые от логинещегося пользователя

Чтобы выполнить команды после того, как создаются файлы пользователя, настраивающие рабочий стол, можно воспользоваться каталогом /etc/X11/Xsession.d . В нем можно размещать файлы с нужным Bash-кодом, желательно начиная имя файла на цифру 98 , так как цифра 99 — это финишный шаг перед запуском графической сессии пользователя. Особенности скриптов, размещаемых в данном каталоге следующие:

  1. Код в этих скриптах выполняется под логинещимся пользователем. Системные настройки, для которых необходимы root-права сделать не получится.
  2. Данные скрипты — это не отдельные скрипты как таковые. Из файлов, лежащих в каталоге /etc/X11/Xsession.d как бы собирается один большой скрипт. Поэтому в них нет bang-заголовков (хотя они и не запрещены), и в них нет досрочного завершения через команду exit , так как в этом случае код, который расположен в последующих скриптах этого каталога просто не будет выполнен.

Если быть более точным, то последовательность сриптов, выполняющихся от логинещегося пользвателя, следующая:

  • Соответствие версий Astra Linux Смоленск и Debian, таблица версий библиотек
  • Как понять, к какой версии Astra Linux относятся файлы документации
  • Восстановление пользователя root в Astra Linux 1.6 Смоленск
  • Отключение блокировки экрана паролем в Astra Linux 1.6
  • Как отменить гашение экрана в Astra Linux 1.6 через конфиги
  • Как в Astra Linux 1.3 установить разрешение экрана через конфиги?
  • Какие пакеты ПО устанавливаются при выборе пунктов «Средства работы в сети» и «Сетевые сервисы» в инсталляторе?
  • Как прописать команды, которые должны выполниться перед появлением окна логина FLY DM
  • Как прописать команды, которые выполнятся перед стартом X-сессии
  • Как в Astra Linux 1.3 ограничить возможности рабочего стола
  • Проблема запуска скрипта на сервере ALD домена при логине пользователя с нулевой мандатной меткой
  • Как войти в домен ALD Astra Linux на рабочей станции, если вход не работает
  • Как настроить видеодрайвер в Astra Linux 1.6 для Орион ПК 103 (ПК-Э-103-02)
  • Как пользоваться мандатным флагом ccnr, чтобы не менялась мандатная метка в Astra Linux 1.6
  • Управление безопасностью ОССН с использованием мандатного управления доступом в Astra Linux
  • Мандатный контроль целостности в Astra Linux
  • Структура мандатной метки в Astra Linux 1.6 (инфографика)
  • Как предоставить доступ пользователю к COM-порту /dev/ttyS0 в ALD
  • Понижение классификационной мандатной метки в Astra Linux 1.6
  • Какие секции репозитария есть в Astra Linux
  • Как в Astra отключить монитор печати при отключении области уведомлений
  • Известные проблемные пакеты Astra Linux, которые блокируют установку обновлений и не только
  • Почему не виден ярлык на рабочем столе Astra Linux 1.6 Update 10?
  • Как включить NumLock при старте рабочего стола в Astra Linux 1.6
  • Что не работает в Astra Linux 1.6
  • Восстановление загрузчика Grub после применения обновлений в Astra Linux 1.6
  • Как выйти/разлогиниться из FLY WM — опции команды fly-wmfunc в Astra Linux 1.6
  • Как запустить SSH-сервер в Astra Linux 1.6
  • Установка обновленного ejabberd в Astra Linux 1.6 Update 10. Как выкачивать ПО из репозитариев
  • Загрузка X-сервера в Debian и Astra Linux 1.6. Какие скрипты в какие моменты времени срабатывают?
  • Как загрузить и подключить диск со средствами разработки для Astra Linux SE 1.7
  • Что означает аббревиатура МРОСЛ ДП
  • Как обозначаются версии релизов Astra Linux в файлах etc-директории
Читайте также:  Linux mint поворот экрана

Источник

Автозапуск скрипта после входа пользователя

Доброго дня!
Подскажите куда положить скрипт, что бы он запускался после входа пользователя в систему?
Сейчас этот скрипт лежит в «etc/network/if-ip.d» и запускается после инициализации сетевого интерфейса.
Скрипт удаляет и копирует файлы из смонтированных сетевых папок, и у пользователя нет доступа к этим файлам.
Подскажите, как решить проблему.

CrashBldash

New member

blackrook

New member
  1. хардкорно-олдвейный: создать ~/.xsessionrc и поместить туда имя скрипта. Только не забудьте в конце команды поставить амперсанд («&»), чтобы она выполнялась фоново — иначе загрузка компонентов рабочего стола и панели зависнет, т.к. будет ждать завершения команды, и может вовсе зависнуть, если скрипт по какой-то причине не отработает успешно;
  2. няшно-современный, т.е. через GUI: «Панель управления» → «Система» ⇒ «Автозапуск».

UPD: Если скрипт должен запускаться при логине у всех пользователей, то сам скрипт, если он работоспособен, можно закинуть в папку /etc/X11/Xsession.d .

blackrook

New member

Перечитал Ваш пост, и, может быть, я чего-то не понимаю: т.е. Вы хотите, чтобы пользователь логинился, а файлы тёрлись от имени другого пользователя (скажем, от root’а)? Или наоборот, Вы хотите этого варианта избежать? От чьего имени должен запускаться Ваш скрипт — от рута или от логинящегося пользователя? И чьи файлы будут удаляться? Может быть, Вам вообще нужно службу писать?

Saltoon

New member

Перечитал Ваш пост, и, может быть, я чего-то не понимаю: т.е. Вы хотите, чтобы пользователь логинился, а файлы тёрлись от имени другого пользователя (скажем, от root’а)? Или наоборот, Вы хотите этого варианта избежать? От чьего имени должен запускаться Ваш скрипт — от рута или от логинящегося пользователя? И чьи файлы будут удаляться? Может быть, Вам вообще нужно службу писать?

Читайте также:  Нет драйвера принтера linux

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

oko

New member

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

На этом модуль экстрасенсорики перегрелся.
Раскройте мысль, а то пока суть проблема не ясна (+1 к тов. blackrook в тему демона-службы).

Saltoon

New member

Saltoon

New member

Есть скрипт. Он удаляет из 3 папок все файлы. Далее копирует из смонтированных сетевых папок файлы взамен тех, что удалил.
Все это делаться под root.
Поэтому user не имеет доступа к этим файлам.

Saltoon

New member
chmod -R 777 /home/user/нужная папка/

blackrook

New member

Я, честно говоря, всё равно задумку понял не до конца, но просто на всякий случай: может быть, Вам стоит посмотреть в сторону программы «rsync»? Она позволяет синхронизировать папки, сохраняя бэкап-копии изменяемых файлов, и много чего другого. Кстати, есть вариант демона/сжубы — она запускается автоматически и фоново синхронизирует содержимое папок.

oko

New member

to Saltoon
Вместо chmod -R 777 полный_путь_к_каталогу (дать дискреционные права Запись+Чтение+Исполнение всем и вся) лучше уж chown -R имя_пользователя полный_путь_к_каталогу
В противном случае рискуете нарваться на «лихие руки» оконечных пользователей.
Вообще, ваш способ мало чем отличается (в контексте озвученной задачи) от создания systemd-сервиса (Гугл в помощь по части systemd). Как бы раньше, до systemd, большинство способов и сводилось к тому, чтобы sh-скрипт подкинуть какому-нибудь существующему сервису, стартующему при загрузке системы (например, /etc/rc.local). Сейчас это несколько «окультурилось», хотя для мелких задач, imho, писать полноценные systemd-сервисы куда муторнее, чем подсунуть в нужное место sh-скрипт.
И да, rsync больше для инкрементального копирования или синхронизации расхождений, чем для задачи «полной перезаписи».
И вообще, золотое правило: если нет времени/возможности изучить нечто неизведанное ранее, лучше использовать те инструменты, которые знаешь и понимаешь. Во всяком случае, в «боевой обстановке», ага.

Читайте также:  Linux copy to ram

Saltoon

New member

Не думаю, что такое возможно. Пользователи впервые увидят это систему (пока идет стадия настроек, обкатка) и вряд ли смогут что либо повредить. Файлы нужны для DOS приложения и кроме него, приложения, к этим папкам никто не ходит. Приложение запускается под user.
Даже в случае повреждения этих файлов, запускается скрипт, и с сервера копируются новые файлы. Обновление происходит ежедневно в конце рабочего дня.

oko

New member

to Saltoon
Даже самый долгий дорог начинается с первый шаг (с)
Так что я бы не брезговал юзать chown вместо chmod в вашем случае. Тем более, что трудозатраты по настройке не сильно различаются, ага.

Saltoon

New member

Я, честно говоря, всё равно задумку понял не до конца, но просто на всякий случай: может быть, Вам стоит посмотреть в сторону программы «rsync»? Она позволяет синхронизировать папки, сохраняя бэкап-копии изменяемых файлов, и много чего другого. Кстати, есть вариант демона/сжубы — она запускается автоматически и фоново синхронизирует содержимое папок.

Проблема решена, но я попробую объяснить как организован процесс.
Есть программа с базой данных. Программа старая, написана пот DOS еще в мохнатом году. На сегодняшний день внедряется новая и по плану этот процесс растянут на 3 года, но не в этом дело. Еще 3 года нужно будет поддерживать работоспособность старой программы, а возможно и больше.
Теперь собственно к процессу работы с программой и БД к ней.
В течении дня вносятся изменения в базу данных, которые сохраняются в буфере. В конце дня с машины администратора вносятся изменения в БД на сервере. В начале следующего дня при включении компов заменяются файлы БД на локальных дисках. (Удаляются старые и копируются новые с сервера). Для этого на компах в автозагрузке есть батник (батник в Windows под Астру переделал его в «bash»), который все это делает. Все это придумано не мной, я лишь поддерживаю эту систему в работоспособном состоянии.)) Задача была внедрить новые компы под Астрой в эту систему. Компы поставляются централизованно, не моя прихоть. Программа «rsync» как я понял синхронизирует нужные папки в реальном времени. В этом нет необходимости. У пользователя обновленная (вчерашняя) база. А все изменения за сегодня, он увидит на следующий день, т.к. обновление БД производится вручную в конце рабочего дня. В автоматическом режиме обновлять БД нет технической возможности, так построена работа с этой программой. Как то так. Надеюсь все понятно изложил.

Источник

Оцените статью
Adblock
detector