Мне нужно, чтобы мои пользователи telnet и ssh использовали byobu в качестве оболочки для входа. Я хотел бы избежать использования .login / .profile / .bashrc и лайков для порождения byobu. Я хотел бы иметь byobu в качестве оболочки, определенной в / etc / passwd. Я уже провел несколько тестов, но не смог заставить его работать должным образом. Есть идеи?
добавить это в / etc / profile
echo $- | grep -qs i && byobu-launcher && exit 0
Я использую Byobu с tmux в различных системах, но я просто сделал новый пользовательский тест на Debian 8 перед регистрацией.
То, что, кажется, работает на меня:
set -g default-shell /usr/bin/fish set -g default-command /usr/bin/fish
У меня также есть пользователи, начинающие Рыбу сначала и Byobu через fish.config, обе работы, но я думал, что оболочка входа в систему может также быть чем-то более простым.
Бёбу не является оболочкой, как таковой. Это программа, которую вы запускаете в своей оболочке. Утилиты, byobu-enable и byobu-disable , помещают строку в конец вашего ~/.profile
, которая запускает byobu (при необходимости), когда вы появляетесь новый логин. Скрипт-обёртка делает некоторую проверку работоспособности и предотвращает рекурсию.
Теперь, как говорится, я расскажу вам, как вы могли бы делать то, что вы просили, но я настоятельно советую против этого. Вы вполне можете оказаться в какой-нибудь неприятной рекурсии или бесконечном цикле. Осторожно!
Поместите это в свои ~/.screenrc
:
source /usr/share/byobu/profiles/byoburc
Это отвечает не на детали вопроса, а на его название. Итак, если ваша проблема в том, что byobu не запускает источник /etc/profile
при запуске, это можно исправить следующим образом. В ~/.byobu/.tmux.conf
добавьте:
set -g default-command '/bin/bash --login'
Это будет использовать bash в качестве оболочки входа в систему, поэтому при запуске byobu /etc/profile
будет получен источник.
Перед настройкой оболочки вы, вероятно, должны убедиться, что любая необходимая программа будет работать в качестве оболочки. «Действительные» оболочки предварительно сконфигурированы в / etc / shells; если то, что вы хотите использовать в качестве оболочки, отсутствует в этом списке, я бы тщательно продумал, хотите ли вы использовать его в качестве оболочки или нет. Вы можете сначала попробовать это с тестовым пользователем, чтобы убедиться, что вы можете войти в систему, используя его в качестве оболочки.
Но о том, как изменить оболочку по умолчанию.
Для отдельных пользователей вы можете изменить их оболочку входа в систему с помощью команды chsh .
chsh примет полный путь к любому исполняемому файлу в системе. Однако он выдаст предупреждение, если оболочка не указана в файле / etc / shells. С другой стороны, он также может быть настроен так, что он будет принимать только оболочки, перечисленные в этом файле, если вы не являетесь пользователем root.
blockquote>Изменение оболочки по умолчанию для всех пользователей будет зависеть от того, как вы добавляете пользователей. Например, если вы используете команду
adduser
, вы можете настроить оболочку по умолчанию в /etc/adduser.conf:$ grep -i dshell /etc/adduser.conf # The DSHELL variable specifies the default login shell on your DSHELL=/bin/bash