Как я могу иметь одну экранную сессию на пользователя и установить ее как оболочку входа в систему?

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

1
задан 8 August 2011 в 09:04

2 ответа

Выполнение screen -xR сделает в основном то же как выполнение screen -xr || screen.

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

Так, что мы сделаем, установлен удар как наша оболочка входа в систему. Затем мы добавим в конец .bashrc (удар файла работает при запуске его), код, который выполняет экран. Экран будет затем работать, любая оболочка указана в .screenrc.

Мы сделаем его так, чтобы эта команда работала только под особым условием: Только если текущий рабочий удар копии не был запущен (возможно косвенно) другой копией удара. Это сделает его так, чтобы, если Вы пользователь хотите удар как их оболочку, и экран запустил удар в нем, пользователь не получит российский взрыв кукол удара в экране в ударе в экране в ударе, пока компьютер не исчерпает память.

Во-первых, измените оболочку на/bin/bash путем выполнения chsh, затем вводя Ваш пароль, затем вводя /bin/bash и нажатие Enter.

Затем отредактируйте скрытое .bashrc файл в Вашей домашней папке, добавляя следующее в конец:

if [ ${SHLVL} -eq 1 ]; then
    ((SHLVL+=1)); export SHLVL
    exec screen -xR
fi

Теперь, редактирование (создают, если оно не выходит), скрытый файл .screenrc в домашней папке. Добавьте или измените следующие настройки:

shell /bin/zsh
startup_message off

(Конечно, если Вы хотите некоторую другую оболочку, чем Zsh, разрешение и вставляете это вместо этого. Это должно даже работать с ударом.)

0
ответ дан 7 December 2019 в 17:51

Во-первых, для пользователей Вы собираетесь сделать это для, удостоверьтесь их ~/.screenrc имеет строку

shell /bin/bash

(или безотносительно другой оболочки Ваш пользователь в настоящее время использует). Если у Вас не будет этого набора установки, и Вы изменяете их оболочку как, то мы будем, пользователь не смочь войти в систему. Вы могли бы также рассмотреть то, чтобы заставлять экранное сообщение запуска уйти с этой строкой

startup_message off

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

sudo nano /bin/screenlogin.sh

Вставьте два после строк:

#!/bin/bash
screen -x -r || screen

Нажмите Ctrl x и затем y, чтобы сохранить файл. Выполненный

sudo chmod 755 /bin/screenlogin.sh

Наконец, выполненный chsh на целевом пользователе и вставленный /bin/screenlogin.sh для оболочки при выяснении.

1
ответ дан 7 December 2019 в 17:51

Другие вопросы по тегам:

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