Вы должны отредактировать файл /etc/pam.d/gdm-password
, закомментировав строку, содержащую проверку пользователя root,
#auth required pam_succeed_if.so user != root quiet_success
Да, вы можете делать такие вещи. Сосредоточив внимание только на вопросе о том, как разместить цветной текст в определенных позициях,один прямой, хотя и несколько низкоуровневый путь заключается в использовании утилиты tput
. tput
имеет множество команд, которые с помощью базы данных terminfo
управляют экраном терминала. Например, tput cup 23 4
переместит курсор в строку 23 столбца 4 вашего терминала. Несколько других примеров:
tput ed # clear to end of screen
tput setaf 2 # set foreground color to bright green
tput cubl # move cursor left one space
tput rev # turn on reverse video mode
tput sc # save the cursor position
tput rc # restore the cursor position
Вы также можете найти применение утилите stty
. Например, если вы хотите определить размеры текущего экрана, вы можете сделать stty size
.
Ранее я создал примерный «графический интерфейс» для одной из моих утилит, которая делила экран на две части. Верхняя часть представляла собой заголовок фиксированной высоты. Нижний раздел содержал (прокручиваемый) вывод команды. Я сделал это, используя только сценарии Bash и tput
+ stty
. Я во многом разобрался методом проб и ошибок, но в Интернете есть несколько полезных ресурсов, таких как http://linuxcommand.org/lc3_adv_tput.php
См. man tput
и man 5 terminfo
. Для последнего вам нужно прокрутить вниз, в частности, до раздела Предопределенные возможности.
Могут существовать абстракции более высокого уровня для terminfoманипулирования экраном, но если у вас относительно простые требования, tput
— хороший вариант. (Я считаю, что tput
является частью пакета ncurses, упомянутого в другом ответе здесь.)
Редактировать: Я должен добавить, поскольку похоже, что вы хотите, чтобы некоторые из этих функций были на всех ваших экранах, что вы можете сделать это, написав сценарий оболочки, который использует tput
, как описано выше. и укажите переменную окружения PROMPT_COMMAND
на этом скрипте, чтобы он вызывался каждый раз при обновлении приглашения. Если вы хотите более частое обновление, вам нужно будет запустить какой-то процесс в фоновом режиме, оставаясь при этом привязанным к вашему экрану. Это больше, чем я попытаюсь откусить в этом ответе.