LINUX.ORG.RU
 

С какими правами вы запускаете проприетарные программы?


0

2

Интересно ли Dropbox'у содержимое ваших .ssh и .gnupg? А любителям поломать дырявый Flash Plugin? Что вы отвечаете человеку, предлагающему созвониться по Skype?

Не флэшем единым живы дыры в браузерах. Виндовые трояны, запущенные под wine, успешно шифруют фотографии и музыку и крадут пароли из оказавшегося под боком Qip.

Какой баланс между безопасностью и удобством выработали для себя вы? Интересуют рецепты, истории успеха и неуспеха.

Своего пользователя 498
 ********************
Своего пользователя и root (например, официальный deb-пакет) 344
 *************
Не запускаю 167
 ******
В виртуальном окружении 57
 **
Дополнительного пользователя для небезопасных задач) 45
 *
Выделенного для данного приложения пользователя 37
 *
Своего пользователя, ограничивая приложение (SELinux, AppArmor…) 30
 *
В chroot 28
 *
На отдельной машине 22
 *
Другой вариант 16
 *
В специальной песочнице 14
 *
Всего голосов: 1258
Всего проголосовавших: 981

>>> Проголосовать

СКАЖИ СВОЕМУ КОМПЬЮТЕРУ, ЧТОБЫ ЗАПЕР ДВЕРЬ

любительская автоматизация; устройство с открытой прошивкой
исходные тексты всех программ, открытые библиотеки
http://www.unicontrollers.com/products/unc01x

[#]  
unikum
>>-----Цитата---->>

Своего пользователя

<<-----Цитата----<<
*** ()
[#]  
snefjyent

Флеш в google-chrome под юзером конечно.

А так проприетарный софт не использую.

()
[#]  
Suntechnic

Skype от другого пользователя. (Вообще написал скрипт для этих целей)

Dropbox заменил на Wuala.

Opera, Prey и Osmos от юзера.

* ()
[#]  
megabaks

паранойи тред
с необходимыми

** ()
[#]  
MaZy

от юзера

** ()
[#]  
>>-----Цитата---->>

Интересно ли Dropbox'у содержимое ваших .ssh и .gnupg?

<<-----Цитата----<<

облака не нужны. совсем.

>>-----Цитата---->>

А любителям поломать дырявый Flash Plugin?

<<-----Цитата----<<

ололо

>>-----Цитата---->>

Что вы отвечаете человеку, предлагающему созвониться по Skype?

<<-----Цитата----<<

отвечаю, что созвонимся

>>-----Цитата---->>

Виндовые трояны, запущенные под wine

<<-----Цитата----<<

дай мне хоть один рабочий

>>-----Цитата---->>

успешно шифруют фотографии и музыку

<<-----Цитата----<<

какой идиот хранит фото и музыку в WINE_PREFIX?

>>-----Цитата---->>

и крадут пароли из оказавшегося под боком Qip.

<<-----Цитата----<<

не думаю, что нормальный человек будет юзать это убожество, да еще и в линуксе?

()
[#]  
neocrust

Тред-детектор параноиков =]

**** ()
[#] Ответ на: комментарий от Suntechnic 02.01.2012 23:05:55  
bk_

>> Skype от другого пользователя. (Вообще написал скрипт для этих целей)

Можешь показать скрипт?

* ()
[#] Ответ на: комментарий от feinsbot 02.01.2012 23:14:25  
Suntechnic

> дай мне хоть один рабочий

Как-то удалось запустить порнобанер. Он был полноэкранным изображением рабочего стола, такого как если бы он был под вендой из префикса wine. С alt его можно было сдвинуть в сторону.

* ()
[#] Ответ на: комментарий от bk_ 02.01.2012 23:16:50  
Suntechnic
#!/bin/bash
# Коды завершения
UA_REQUEST=60		# Прервано пользователем
NO_REQUEST=61		# Нет одного или нескольких параметров
NU_REQUEST=62		# Указан несуществующий пользователь
NEH_REQUEST=63		# Не удалось создать папку пользователя
FCXA_REQUEST=64		# Не удалось создать файл авторизации
SUDOFAIL_REQUEST=65	# Ошибка авторизации супер-пользователя
UE_REQUEST=69		# Непредвиденная ошибка
HELP_REQUEST=70		# HELP


# Справка
if [ "$1" = "-h"  -o "$1" = "--help" ]     # Request help.
then
	echo; echo "Порядок использования:	$0 user [option] command"
	echo "			$0 [-h|--help] - выводит эту справку"; echo
	sed --silent -e '/DOCUMENTATIONHELP$/,/^DOCUMENTATIONHELP/p' "$0" |
	sed -e '/DOCUMENTATIONHELP/d';
	exit $HELP_REQUEST;
fi

: << DOCUMENTATIONHELP
Запускает GUI-приложение от имени другого пользователя
Для правильной работы ваша система должна пробрасывать переменную XAUTHORITY через sudo
и вы должны иметь права на sudo - вам потребуется ввести свой пароль
	user - пользователь от имени которого необходимо выполнить command
	option - однобуквенный ключ указывающий в каком домашнем каталоге выполнять command
	если ключ опущен, то для пользователей с uid < 1000 будет созданн временный каталог в /tmp,
	а для пользователей с uid > 999 будет использоваться каталог указанный в /etc/passwd,
		h - выполнить в домашнем каталоге пользователя указанном в /etc/passwd
		t - создать временныый каталог для выполнения этой задачи
Коды завершения:
	60 - Прервано пользователем
	61 - Нет одного или нескольких параметров
	62 - Указан несуществующий пользователь
	63 - Не удалось создать папку позьзователя
	64 - Не удалось создать файл авторизации
	65 - Ошибка авторизации супер-пользователя
	69 - Непредвиденная ошибка
	70 - HELP
		
by dr.Faust aka Suntechnic
GNU/GPL 3 (2010)
DOCUMENTATIONHELP

# Обработка естественных ошибок
# Проверка параметров
if [ "$1" = "" -o "$2" = "" ]
then
	echo "$0: пропущен операнд"
	echo "Попробуйте '$0 --help' для получения более подробного описания."
	exit $NO_REQUEST
fi
# Проверка пользователя
PSWDNT=`cat /etc/passwd | grep "$1:x:"`	# Запись о пользователе в /etc/passwd
if [ "$PSWDNT" = "" ]
then
	echo "$0: неизвестный пользователь: $1"
	exit $NU_REQUEST
fi

# Получаем переменные и устанавливаем home
# Окружение
DSPL=$DISPLAY
MYXA=$XAUTHORITY

TMPUSER=$1	# Пользователь
PLACE=$2	# Предположительно ключ home
# CMND=$3	# Команда

# Устанавливаем переменные
case $PLACE in
	["h"])
		# Выполняем операцию в домашнем каталоге из /etc/passwd
		# Получаем информацию о пользователе
		CMNDAWK=`echo 'BEGIN{ FS = ":" }{ print $6 }'`
			LCHOME=`echo $PSWDNT | awk "$CMNDAWK"`
		CMNDAWK=`echo 'BEGIN{ FS = ":" }{ print $3 }'`
			LCUID=`echo $PSWDNT | awk "$CMNDAWK"`
		if [ "$LCUID" -lt "1000" ]
		then
			# Операция в домашнем каталоге пользователя с UID < 1000
			echo "Вы пытаетесь выполнить '$CMND' от имени пользователя '$TMPUSER' (UID: $LCUID) в его домашнем каталоге: $LCHOME"
			read -p "Всё равно продолжить? (Да - только 'y') [y/n]: " myyn
			if [ "$myyn" != "y" ]
			then
				echo "Прервано пользователем"
				exit $UA_REQUEST
			fi
		fi
		shift
		shift
		CMND=$@
	;;
	["t"])
		# Выполняем операцию во временном домашнем каталоге
		LCHOME=/tmp/tudo-$TMPUSER
		shift
		shift
		CMND=$@
	;;
	*)
		# Выполняем операцию в каком-то домашнем каталоге... ;)
		# Получаем UID
		CMNDAWK=`echo 'BEGIN{ FS = ":" }{ print $3 }'`
		LCUID=`echo $PSWDNT | awk "$CMNDAWK"`
		if [ "$LCUID" -lt "1000" ]
		then
			PLACE="t"
			LCHOME=/tmp/tudo-$TMPUSER
		else
			PLACE="h"
			CMNDAWK=`echo 'BEGIN{ FS = ":" }{ print $6 }'`
			LCHOME=`echo $PSWDNT | awk "$CMNDAWK"`
		fi
		shift
		CMND=$@
esac
# Проверяем теперь уже окончательную команду
if [ "$CMND" = "" ]
then
	echo "$0: пропущен операнд"
	echo "Попробуйте '$0 --help' для получения более подробного описания."
	exit $NO_REQUEST
fi

# Собственно рабочий код
# Тут нам потребуется судо
sudo true
if [ "$?" != "0" ]
then
	echo "$0: провал авторизации"
	exit $SUDOFAIL_REQUEST
fi

if [ "$PLACE" = "t" ]
then
	# Необходима временная домашняя папка
	# Создаём временный домашний каталог
	sudo mkdir $LCHOME
	if [ "$?" = "0" ]
	then
		# Если мы действительно создали временный домашний каталог, запишем путь к нему в файл - это потребуется в дальнейшем для безопасного его удаления
		LCLCHOME="$LCHOME""_lc"
		# Указатель на удачное создание каталога
		sudo echo "$LCHOME" >> $LCLCHOME
		sudo chmod 0777 $LCLCHOME
	fi	
	sudo chown $TMPUSER $LCHOME
else
	if [ ! -d $LCHOME ]
	then
		# а каталога-то и нет...
		sudo mkdir $LCHOME
		if [ "$?" = "0" ]
		then
			$PLACE="ht"
		else
			echo "Домашний каталог '$LCHOME' не существует, а попытка его создания завершилась провалом"
			exit $NEH_REQUEST
		fi
		sudo chown $TMPUSER $LCHOME
	fi
fi
# Проверяем получили ли мы каталог
if [ ! -d $LCHOME ]
then
	echo "Домашний каталог '$LCHOME' не существует или его не удалось создать"
	exit $NEH_REQUEST
fi

# Отдаём файл авторизации
LXA=$LCHOME/.xauthority-tudo
sudo cp $MYXA $LXA
sudo chown $TMPUSER $LXA
# Проверяем получили ли файл авторизации
if [ ! -e $LXA ]
then
	echo "Не удалось создать файл авторизации"
	exit $FCXA_REQUEST
fi
# На всякий случай проверяем переменные
# Так как хомяк и файл авторизации будут удалятся, да ещё и от root - проверим что путь к хомяку не "" и не "/"
if [ "$LCHOME" = "" -o "$LCHOME" = "/" ]
then
	echo "Что-то пошло не так..."
	exit $UE_REQUEST
fi
# Экспортируем переменные
export XAUTHORITY=$LXA
export DISPLAY=$DSPL
export HOME=$LCHOME
# Запускаемся
echo "'$CMND' выполняется в следующем окружении:"
sudo -u $TMPUSER env
echo "------------ далее следует вывод выполняемой команды ------------"
sudo -u $TMPUSER $CMND
CMDEXIT_REQUEST=$?
echo "---------------- конец вывода выполняемой команды ----------------"
echo "'$CMND' завершилась с кодом: $CMDEXIT_REQUEST"
# Удаляем файл авторизации
# Тут нам потребуется судо
sudo true
if [ "$?" != "0" ]
then
	echo "$0: провал авторизации"
	echo "Файл авторизации X-сервера ($LXA) не будет удалён"
	if [ "$PLACE" = "t" ]
	then
		echo "Временная домашняя директория ($LCHOME) не будет удалёна"
		echo "Файл-указатель ($LCLCHOME) не будет удалён"
	fi
	exit $SUDOFAIL_REQUEST
fi
sudo rm -f "$LXA"

if [ "$PLACE" = "t" ]
then 
	# Удаляем домашний каталог
	sleep 8
	# Мы должны быть уверены что:
		# 1 Переменная $LCHOME всё ещё указывает на созданный нами каталог
		# 2 Нет больше ни одной копии tudo которая его использует
	if [ -e "$LCLCHOME" -a  -e "$LCHOME" ]
	then
		LCLCHOMECNT=`cat "$LCLCHOME"`
		if [ "$LCHOME" = "$LCLCHOMECNT" -a "$LCHOME" != "" ]
		then
			sudo rm -rf "$LCHOME"
			rm -f "$LCLCHOME"
		else
			echo "Что-то пошло не так при попытке удалить временный домашний каталог '$LCHOME' ..."
			echo "Удалите '$LCHOME' вручную если он действительно не нужен."
			exit $UE_REQUEST
		fi
	else
		echo "Что-то пошло не так при попытке удалить временный домашний каталог '$LCHOME' ..."
		echo "Удалите '$LCHOME' вручную если он действительно не нужен."
		exit $UE_REQUEST
	fi
fi
exit $CMDEXIT_REQUEST 
* ()
[#] Ответ на: комментарий от Suntechnic 02.01.2012 23:19:37  
bk_

За скрипт спасибо.

Но я не понял, почему бы просто не создать тестового пользователя и запускать скайп от его имени. Тогда процесс просто не сможет вылезти в домашнюю директорию настоящего пользователя.

* ()
[#]  
bloodredfrog
>>-----Цитата---->>

С какими правами вы запускаете проприетарные программы?

<<-----Цитата----<<

Флеш от своего пользователя. Хотя сам флеш использую довольно редко (flashblock с ручным разрешением везде). Проприетарные игрушки из бэндлов — от созданного для этих целей пользователя. Иногда на работе требуется win-софт — запускаю в виртуалке.

>>-----Цитата---->>

Что вы отвечаете человеку, предлагающему созвониться по Skype?

<<-----Цитата----<<

Говорю ему, что видеозвонки не нужны.

>>-----Цитата---->>

Виндовые трояны, запущенные под wine, успешно шифруют фотографии и музыку

<<-----Цитата----<<

Вы храните фотографии и музыку в каталоге вайн-префикса?

>>-----Цитата---->>

Qip

<<-----Цитата----<<

А это-то зачем? 0_o

* ()
[#]  
radg

Своего пользователя

** ()
[#] Ответ на: комментарий от bk_ 02.01.2012 23:28:54  
Suntechnic

Хм... Так он и создан заранее. Точнее у меня их несколько. И от их имени запускается skype например, вот этим скриптом.

Еще от другого юзера у меня на ноуте запускается htop в шестой консоле с рутправами. Этому юзеру запрещено вообще все кроме запуска htop от рута.

Ну и другие задачи бывают.

* ()
[#]  
x3al

С правами ядра на реальном железе. Ну и закрытый код в ring -2.

**** ()
[#] Ответ на: комментарий от feinsbot 02.01.2012 23:43:32  
Suntechnic

Не помню - давно было.

Помню что это было какое-то видео размером килобайт в 140, в exe файле. Ссылку кинули то ли в почту, то ли в джабер. Что-то меня насторожило - то ли то, что от неизвестного чела пришло, то ли название... Но я сразу подумал - что-то тут не то. И конечно очень захотелось посмотреть. ;)

* ()
[#] Ответ на: комментарий от Suntechnic 02.01.2012 23:42:42  
bk_

Я это понял. Имею ввиду, для чего такая простыня. Почему бы не сделать rm -rf ~tmpuser при запуске или выключении компьюетра и вместо скрипта сделать sudo -u tmpuser skype ?

* ()
[#] Ответ на: комментарий от bk_ 02.01.2012 23:49:25  
Suntechnic

Для универсальности. Например экран gdm настроить. Для этого надо запустить настройку внешнего вида от юзера gdm.

Кроме того, sudo -u tmpuser skype - не прокатит. Он не сможет подключится к иксам. Тут обычно советуют, разрешить доступ к иксам другим пользователям. Ну что-то вроде совета подпереть окно, чтобы вор через него не забрался, выломанной входной дверью. То-есть по любому надо пробросить файл авторизации иксов.

* ()
[#]  
rigiy

Не смог вспомнить ни одной проп. софтины который бы были нужны права рута.
Так что от юзера.

* ()
[#] Ответ на: комментарий от feinsbot 02.01.2012 23:14:25  
>>-----Цитата---->>

какой идиот хранит фото и музыку в WINE_PREFIX?

<<-----Цитата----<<
file  ~/.wine/drive_c/users/$USER/* | grep "symbolic link"                                                   
/home/vadim/.wine/drive_c/users/vadim/Рабочий стол:      symbolic link to `/home/vadim/Desktop'
/home/vadim/.wine/drive_c/users/vadim/Мои документы:     symbolic link to `/home/vadim'
/home/vadim/.wine/drive_c/users/vadim/Мои рисунки:       symbolic link to `/home/vadim/'
/home/vadim/.wine/drive_c/users/vadim/Мои фильмы:        symbolic link to `/home/vadim/'
/home/vadim/.wine/drive_c/users/vadim/Моя музыка:        symbolic link to `/home/vadim/'
()
[#] Ответ на: комментарий от Felagund 03.01.2012 0:22:16  

Довелось как-то помогать товарищу, запустившему «интересный» экзешник из файлообменника. Оказался винлокер. Музыку оно просто попереименовывало, а вот сканы конспектов (дело было в сессию) пропали безвозвратно.

()
[#] Ответ на: комментарий от Suntechnic 02.01.2012 23:58:05  
bk_

>> Кроме того, sudo -u tmpuser skype - не прокатит

Да, ты прав, я забыл. А вот так - gksu -u tmpuser skype - сработает.

* ()
[#] Ответ на: комментарий от bloodredfrog 02.01.2012 23:32:59  
>>-----Цитата---->>

А это-то зачем? 0_o

<<-----Цитата----<<

Не знаю, не пробовал. Байку мне такую рассказали.

()
[#] Ответ на: комментарий от rigiy 03.01.2012 0:06:52  

Например, скайп под Debian предлагается скачать в виде пакета. Он как минимум добавляет в систему свой репозиторий. Это значит, что при каждом обновлении у него при желании могут быть права рута.

()
[#] Ответ на: комментарий от bk_ 03.01.2012 0:26:15  
Suntechnic

Там есть какая-то заковыка, при таком запуске - уже и не помню, что именно помешало. Как-то тоже связано с доступом к иксам.

* ()
[#] Ответ на: комментарий от x3al 02.01.2012 23:44:18  

Про драйверы тоже интересно. Но вопрос был про пользовательские приложения.

()
[#] Ответ на: комментарий от Felagund 03.01.2012 0:35:11  
rigiy

Либо у меня криокамера течет, либо скайп есть в репозиториях дебиана.

* ()
[#] Ответ на: комментарий от Felagund 03.01.2012 0:22:16  

убей мейнтрейнера твоего дистрибутива

()
[#] Ответ на: комментарий от Felagund 03.01.2012 0:28:27  
bloodredfrog

Ужас. Вот чего никогда не понимал — так это зачем ставить линукс, если всё равно тащишь за собой фубары, квипы, мютерренты и ещё охапку виндовс-софта.

* ()
[#] Ответ на: комментарий от feinsbot 02.01.2012 23:14:25  
x3al
>>-----Цитата---->>

какой идиот хранит фото и музыку в WINE_PREFIX?

<<-----Цитата----<<

Напоминаю: любой запущенный под вайном софт может ВНЕЗАПНО воспользоваться линуксовыми сисколлами и делать всё то же, что и нативный софт. Потому, что вайн не является эмулятором. Это документировано.

**** ()
[#] Ответ на: комментарий от Felagund 03.01.2012 0:35:11  
bloodredfrog
>>-----Цитата---->>

Например, скайп под Debian предлагается скачать в виде пакета. Он как минимум добавляет в систему свой репозиторий. Это значит, что при каждом обновлении у него при желании могут быть права рута.

<<-----Цитата----<<

Так это, бинарники бинарниками, а служебные файлы пакета (control, postinst, preinst — или как они там в дебиане называются) вполне можно же посмотреть и, при необходимости, поправить.

* ()
[#]  
timur_dav

skype - apparmor

Тут вообще-то надо и с линуксовыми бинарниками под gpl поосторожнее - запутил тут как-то unetbootin сборку с оф. сайта (требует root), а при аудите фс (да, я страдаю паранойей) обнаружил срань от него в /usr/bin/*

##### ()
[#]  
ZenitharChampion

> например, официальный deb-пакет

Или RPM-пакет. А как же вариант "а ещё неофициальные и непонятно кем сделанные бинарники, потому что мне начихать"? Я такого не нашёл. Но мой ответ другой.

** ()
[#]  
mopsene

Драйвера от nvidia от рута конечно, df и flash от юзера, а остальная проприетарщина не нужна.

* ()
[#]  
lmtea

Вообще стараюсь не запускать.

* ()
[#] Ответ на: комментарий от neocrust 02.01.2012 23:16:20  
segfault
>>-----Цитата---->>

Тред-детектор параноиков =]

<<-----Цитата----<<

Ну тогда уж счетчик, раз голосование.

* ()
[#]  

Понятия не имею, что такое dropbox, не пользуюсь flash, скайпом тоже не пользуюсь (но есть желание прикупить веб-камеру - а там, глядишь, и firefox начнет поддерживать input с камеры, а гугол "запилит" свой скайп на html5).

**** ()
[#]  
Rzhepish

Отдельный пользователь

* ()
[#] Ответ на: комментарий от Felagund 03.01.2012 0:26:10  
ZenitharChampion

Есть программа восстановления удалённых файлов. Можно было попробовать ей.

** ()
[#] Ответ на: комментарий от timur_dav 03.01.2012 9:01:55  
lmtea

А что конкретно он оставил?

* ()
[#] Ответ на: комментарий от lmtea 03.01.2012 16:57:33  
timur_dav

После него в моей системе появились новые /usr/bin/ubnnelnx и /usr/bin/ubnsylnx, хотя он поставлялся статич. бинарником. Я так понимаю, что это он зачем-то мне засунул syslinux. Поведение как у вендовой проги, бл...дь.

##### ()
[#] Ответ на: комментарий от timur_dav 03.01.2012 17:55:43  
lmtea

Ааа... Я уж думал троян какой... Но это же по-любому есть в исходниках! Хотя чужие бинарники я тоже стараюсь не запускать

* ()
[#]  
note173

Ничего настолько важного дома не храню, все нужное синхронизировано с дропбоксом и U1, использую ПО с хорошей репутацией.

*** ()