понедельник, 25 ноября 2013 г.

Запуск приложения с правами администратора (gksu)

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

К счастью есть программа gksu, которая позволяет запускать приложение из ярлыка с правами администратора, пароль при этом спрашивается в стандартном графическом окне. Использовать так же как sudo т.е. подставлять перед приложением.

Подсветка строки приглашения

Для того чтобы настроить приглашение под себя нужно будет прописать в файле ~/.bashrc необходимые изменения.
Лично у меня это сделано так:

COLOR="\[\e[1;33m\]"
DEF="\[\e[m\]"

export PS1="$COLOR\u$DEF@$COLOR\h$DEF\w$COLOR\$DEF> "


PS1 - это переменная отвечающая за вид обычного приглашения, так же есть PS2, PS3, PS4 и PROMPT_COMMAND

Для того, чтобы применить изменения:
source .bashrc

Символы со специальными значениями для строки приглашения:
  • \d дата в формате "День_недели Месяц Число" (т.е., "Tue May 26")
  • \e управляющий символ ASCII (033)
  • \h имя хоста вплоть до первого символа '.'
  • \H имя хоста
  • \n перевод строки
  • \r возврат каретки
  • \s имя командного интерпретатора - базовое имя из параметра $0 (часть полного имени после последней косой черты)
  • \t текущее время в 24-часовом формате ЧЧ:ММ:СС
  • \T текущее время в 12-часовом формате ЧЧ:ММ:СС
  • \@ текущее время в 12-часовом формате am/pm (утра/вечера)
  • \u имя текущего пользователя
  • \v версия командного интерпретатора bash (например, 2.00)
  • \V релиз командного интерпретатора bash, версия + уровень исправлений (например, 2.00.0)
  • \w текущий рабочий каталог
  • \W базовое имя текущего рабочего каталога
  • \! порядковый номер данной команды в списке истории
  • \# порядковый номер данной команды
  • \$ если эффективный идентификатор пользователя - 0, то #, иначе - $
  • \nnn символ, соответствующий восьмеричному числу nnn
  • \\ обратная косая
  • \[ начало последовательности непечатных символов, которая может использоваться для включения в приглашение управляющих символов терминала
  • \] завeршение последовательности непечатных символов 
Взято отсюда
Так же можно использовать цвета. Для этого я использую переменные COLOR но это исключительно для наглядности и чтобы можно было легко сменить цвет (для другого сервера).
Цвет формируется следующим образом - \e[<стиль текста>;<цвет текста>;<цвет фона>m
Причем ненужные значения можно опускать, поэтому значение по умолчанию выглядит - \e[m
Значения стиля текста:
  • 0 - по умолчанию
  • 1 - жирный
  • 4 - подчеркнутый
  • 5 - мерцающий
  • 7 - обратный
  • 8 - скрытый
Цвета формируются следующим образом - <насыщенность><цвет>
Основные значения цветов:
  • 0 - черный
  • 1 - красный
  • 2 - зеленый
  • 3 - желтый
  • 4 - синий
  • 5 - пурпурный
  • 6 - голубой
  • 7 - белый
  • 9 - по умолчанию
Насыщенность:
  • 3 - обычная для текста
  • 9 - повышенная для текста
  • 4 - обычная для фона
  • 10 - повышенная для фона

На долго задумывается при подключении по ssh перед вводом пароля

При подключении по ssh подвисает перед выдачей приглашения для ввода пароля.
Решил посмотреть на каком этапе затыкается:
 ssh -v <server>
Задумался на строчке:
Next authentication method: gssapi-with-mic
Решение нашел здесь

Решение:
В файле ~/.ssh/config (если нет то создаем) прописываем:
GSSAPIAuthentication=no
И тем самым отключаем этот тип авторизации.

Игнорирование Bash’ем ~/.bashrc

При подключении по ssh выдает стандартное приглашение т.е. не читает файл ~/.bashrc.

Решение нашел тут
Собственно решение:
в файле .bash_profile прописать следующий код:
if [ -s /home/alexk/.bashrc ] ; then
 . /home/alexk/.bashrc
fi
Оказалось, что файл .bash_profile dc` же читается и пр его прочтении необходимо заставить Bash прочитать-таки наш .bashrc