LINUX.ORG.RU
ФорумAdmin

Запуск проги вместо логина в CentOS 7?

 , ,


1

1

Всем привет.

Задача такая. Есть машина с CentOS 7. Нужно сделать из неё тонкого клиента. Нужно, чтобы вместо обычного логина запускалась моя прога и перезапускалась, если она вдруг упала или завершилась. Раньше помню такая тема делалась в /etc/inittab. А как такое сделать в systemd?

И второе. Хочу запретить логины на всех консолях, которые доступны по Alt-F*. Как это сделать в systemd?

Спасибо.

запретить логины на всех консолях, которые доступны по Alt-F*

systemctl mask autovt@
systemctl disable getty@tty1

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

Т. е. она должна быть доступна из консоли (вместо agetty) или как демон? Если первое, то как mironov_ivan сказал:

  • Смотришь /usr/lib/systemd/system/getty@.service
  • Копируешь в /etc/systemd/system/mygetty@.service и в копии правишь, что нужно
  • Делаешь:
    systemctl daemon-reload
    systemctl enable mygetty@tty1
    
intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 6)
Ответ на: комментарий от Deleted

Заработался. Померещилось «вместе с логином».

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

А если сменить login shell в /etc/passwd на нужную программу? Вроде должно взлететь.

а если подменить файлы /usr/bin/uname — на файл нужной тебе программы..

наверно тоже сработает, ведь пользователь будет логиниться, набирать uname -a (чтобы посмотреть какая версия ядра у него) — а тут БАЦ будет запускаться требуемая программа :-)

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

Но ведь оно специально для этого задумано было. Вот из man 5 passwd

· optional user command interpreter

The command interpreter field provides the name of the user's command language interpreter, or the name of the initial program to execute. The login program uses this information to set the value of the $SHELL environmental variable. If this field is empty, it defaults to the value /bin/sh.

/bin/bash, /bin/sh, /bin/false, /usr/bin/nologin, /bin/sync в нем обычное дело. Не вижу чем например /usr/bin/nano будет хуже.
А ты в ответ какую-то толстую windows-way хрень предлагаешь.

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

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

А ты в ответ какую-то толстую windows-way хрень предлагаешь.

ну пошутил слегка я..., да :-)

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

Цель у ТС запретить логин, и вместо него запускать программу. И man 5 passwd говорит что имеет поле _специально_ для этого. Единственная проблема - перезапускать программу в случае ее падения. Но тут можно while :; do something; done воткнуть.

entefeed ☆☆☆
()

Всем спасибо. Сейчас буду пробовать. Как сделаю, отпишусь.

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

Вы на русский перевидите ту цитату на англ, что привели раньше. Там ведь чётко написано, эту информацию из /etc/passwd использует ″The login program″, которую ТС и хочет запретить.

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