Online video hd

Смотреть 365 видео

Официальный сайт circ-a 24/7/365

Смотреть видео бесплатно

SIO 08.08.2010 12:35

Tips & tricksПользователям, отказавшимся от *dm, посвящается

Представьте ситуацию: вы отошли от компьютера, конечно же, заблокировав экран. В это время неизвестный нехороший человек подошел к компьютеру. Этот нехороший человек переключается в консоль, из которой вы запустили иксы - и легко получает шелл с вашими привилегиями. Способов это сделать великое множество: нажать ctrl+c или ctrl+\ - и иксы умрут, ctrl+z - и иксы уйдут в фоновый режим.. Что может сделать дальше этот человек - ограничено лишь его фантазией, его совестью, и привилегиями вашего пользователя.

Такой бреши в безопасности легко избежать: не надо оставлять залогиненный шелл, когда запускаете иксы. Выглядеть это будет примерно так:
1
setsid startx; exit;


Ну и на десерт: автозапуск иксов при логине вашим пользователем в первой консоли
--
Заметка написана по следам обсуждения в [email protected]. Благодарности в алфавитном порядке получают: ixti@laptop, koctep, kostix, sceptic, teo1. Если кого забыл, поправьте, пожалуйста. За петлянием коллективной мысли следить здесь


Тэги:
+ 13 -
Похожие Поделиться

cppmm 08.08.2010 14:04 #
+ 1 -
Раньше тоже так делал. Потом узнал про slim. Но вообще, совет правильный, да.
Dr.X 24.10.2010 17:40 #
+ 0 -
Т.е. те, кто использует slim среди демонов это не касается? И кстати я получить шелл с моими привилегиями никак не могу (Ctrl+Alt+*)
muhas 08.08.2010 14:21 #
+ 1 -
а один буком пользуюсь и запускаю иксы через пятый ранлевел как
x:5:once:/bin/su muhas -l -c "/bin/bash --login -c startx >/dev/null 2>/dev/null"
при выходе из иксов кидает на tty1 где уже ждет login

а нафига setsid? (только не надо рассказывать что это такое, я про то нафига он тут?)
SIO 08.08.2010 14:55 #
+ 0 -
setsid для совместимости с zsh. В отличие от баша он по дефолту убивал детей при выходе
muhas 08.08.2010 15:07 #
+ 1 -
не понял, детей иксов? так они и так помирают при выходе с иксов, не?
assaron 08.08.2010 15:33 #
+ 0 -
сами иксы убиваются
SIO 08.08.2010 16:00 #
+ 0 -
Сами иксы умирают. Они ж дочерний процесс относительно шелла
muhas 08.08.2010 17:43 #
+ 0 -
так как они умрут если exit отработает только после того как из иксов выедет(упадут и прочее)?
SIO 08.08.2010 17:46 #
+ 0 -
Не, альтернативой этому подразумевалось
startx&; exit

Сработает в баше, не прокатит в zsh
dfx 08.08.2010 20:01 #
+ 0 -
Для zsh есть опция соответсвующая, ЕМНИП...
SIO 08.08.2010 20:05 #
+ 0 -
Наши костыли - самые костылеватые костыли в мире. Сделал тем способом, который раньше нашел. В том, что опция есть - я не сомневался, не подскажете, что именно искать в мане?
dfx 08.08.2010 20:57 #
+ 0 -
Вот это вроде (из man zshoptions):
CHECK_JOBS
Report the status of background and suspended jobs before exiting a shell with job control; a second attempt to exit the shell will succeed. NO_CHECK_JOBS is best used only in combination
with NO_HUP, else such jobs will be killed automatically.

The check is omitted if the commands run from the previous command line included a `jobs' command, since it is assumed the user is aware that there are background or suspended jobs. A `jobs'
command run from one of the hook functions defined in the section SPECIAL FUNCTIONS in zshmisc(1) is not counted for this purpose.
assaron 08.08.2010 15:37 #
+ 0 -
а как-нибудь реально просто заблочить виртуальный терминал?
т.е. видимо надо какую-то хрень, которая будет спрашивать пароль, при этом по Ctrl-C и ctrl-Z ничего происходить не должно
С ctrl-c еще ничего — на SIGTERM можно наплевать, а вот на SIGSTOP наплевать нельзя, следовательно, надо уметь говорить shell'у, чтоб он перестал слать сигнал по ctrl-z
assaron 08.08.2010 15:45 #
+ 0 -
а, есть замечательная программа vlock
pavel-g 08.08.2010 15:57 #
+ 0 -
и ещё одна замечательная программа: screen
Там надо жать CTRL+A,X
Username 08.08.2010 16:50 #
+ 1 -
Паранойи тред. Господа, если человек имеет физический доступ к компьютеру, логический доступ он сможет заиметь всегда.
SIO 08.08.2010 16:59 #
+ 1 -
"То, что у вас паранойя, еще не значит, что за вами не следят"

А вообще, любой замок ломается, но это ведь не повод оставлять дверь дома открытой?
jh 08.08.2010 17:18 #
+ 0 -
а если kdm/xdm используется?
SIO 08.08.2010 17:26 #
+ 0 -
То этот пост вам не нужен
Minoru 09.08.2010 01:54 #
+ 0 -
Вообще говоря, сия дыра не нова — на позиксе, например, её обсуждали ещё год назад. Другое дело, что решение, аналогичное твоему, показали только недавно, и оно годится только для bash. Не возражаешь, если я опишу твой вариант (со ссылками, конечно)?

Ну и за setsid отдельное спасибо — интересная утилитка.
SIO 09.08.2010 07:40 #
+ 0 -
Не возражаю, конечно
kstep 09.08.2010 09:18 #
+ 1 -

TTYNAME=`basename $TTY`
case $TTYNAME in
tty<5-9>) exec /usr/bin/startx -- vt${TTYNAME#tty} ;;
esac


1. Попробуй переключится в тот же самый терминал (исксы юзает тот же терминал, на котором запущен startx),
2. попробуй вызвать шелл, которого уже нет в памяти (exec...).
albibek 09.08.2010 10:20 #
+ 0 -
Наш путь - vlock
vkapas 10.08.2010 13:33 #
+ -2 -
как вариант

startx && clear && exit
kstep 10.08.2010 14:38 #
+ 2 -
А что будет, если startx завершится с ошибкой? Тогда clear и exit не выполнятся и юзер вывалится в шел. Элементарный exec решает любые подобные проблемы на корню.
SIO 10.08.2010 18:58 #
+ 1 -
Как правильно заметили выше, такой метод запуска не спасает не только от ^Z, но и от ^C и ^\, а следовательно, ничем не лучше обычного startx. Только писанины больше =)
vkapas 11.08.2010 01:09 #
+ -1 -
Объясните, пожалуйста, этот момент:
не спасает не только от ^Z, но и от ^C и ^\
vkapas 11.08.2010 01:13 #
+ -1 -
(видимо, я не понимаю некоторые тонкости, т.к. использую xdm; например, мне не понятно, как, убив после startx && clear && exit иксы, можно попасть в шелл с правами пользователя)
SIO 11.08.2010 07:41 #
+ 1 -
При && следующая команда выполняется только после успешного завершения предыдущей. Если предыдущую прервать по ^c - часть после && не будет выполнена
vkapas 11.08.2010 15:22 #
+ -2 -
Ну так.
1. (если) startx завершается успешно
2. после && clear && exit пользователь разлогинивается
3. остаются только запущенные под пользователем иксы

И как после этого попасть в шелл с правами пользователя??
philosoft 11.08.2010 15:51 #
+ 0 -
Если хотите попробуйте, нет поверьте на слово, я пробовал не раз. Если жать ^C достаточно быстро то спокойно можно успеть убить и иксы, и клир, и экзит. Так что вариант с exec самый правильный, логичный и надёжный.
SIO 11.08.2010 18:31 #
+ 2 -
Завершение по ^C не считается успешным. Это раз. startx висит на переднем плане пока запущены иксы. Это два.

Вы хотите прийти к решению вида startx&; exit, которое из коробки работает только в баш. Это три. И да, я написал про это решение и почему мне оно не нравится гораздо выше.
vkapas 12.08.2010 01:42 #
+ 0 -
Всем спасибо за ответы :-)

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн