LINUX.ORG.RU

Индикация статуса sudo в $PS1 или нечто подобное

 , ,


0

3

ЛОР, помоги. Хочется каким-то образом узнавать о истечении тайм-аута sudo в рамках текущей сессии (желательно, чтобы возможность повышения привилегий была видна прямо в приглашении шелла). Максимум, что у меня получилось придумать, это сделать в .bashrc вот так:

PROMPT_COMMAND='history -a ; sudo -n /bin/true > /dev/null 2>&1 ; if [ $? = "0" ]; then export __sudo_prompt_color=31 ; else __sudo_prompt_color=32 ; fi'

PS1='[$?]\n${debian_chroot:+($debian_chroot)}\[\033[01;${__sudo_prompt_color}m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Очевидные минусы понятны:

  • срёт в /var/auth.log (sudo -n)
  • выполнение любой команды до истечения тайм-аута сбрасывает таймаут в максимум

Кто-нибудь может предложить более цивилизованные способы решить задачу?

Ответ на: комментарий от avallach2000

Нет, не безопаснее. Аддон для vim'а может прописать тебе в .bashrc/.zshrc/whatever `alias sudo=log-passwd-and-run-sudo'. Так что нет, не безопаснее.

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

Btw, если ты боишься аддонов для vim'а — скорее всего, все интересные кому-то данные лежат в твоем хомяке. И тебе это не поможет.

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

Это можно решить с помощью apparmor, например. Правда, на каждую собственную глупость профиль не напишешь =).

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

Нет, это тебе тоже не поможет. Просто успокойся и смирись с тем, что у тебя не такой уровень безопасности и мандатного доступа, как в архивах КГБ. Потому что тебе и не нужно.

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

Это не защита от дурака. Это бесполезный хак, для которого никто не делал интерфейсы по причине редкостной бесполезности.

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

И чо? Это внутреннее состояние программы. Тебе никто не дал опцию команды, которая покажет тебе оставшееся время.

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

man tty man stat

Никакой проблемы нет. Разве что каталог может разнится в зависимости от дистрибутива (/var/run/sudo/, /var/db/sudo и т.п.).

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

Ещё раз — у меня там ничего нет. Этот интерфейс не является публичным и может меняться хоть в минорных релизах.

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

Это не защита от дурака. Это бесполезный хак, для которого никто не делал интерфейсы по причине редкостной бесполезности.

ППКС

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