Linux, потоки и FSUID

Известно, что в POSIX одного процесса разделяют ID пользователя и группы. Иными словами, «легальным» путём создать с разными UID не получится.

Но в кроме UID/GID, EUID/EGID, SUID/SGID есть еще FSUID/FSGID — Filesystem User/Group ID, используемые ядром Linux для доступа к файловой системе.

Для изменения FSUID и FSGID можно использовать вызовы seteuid() и setegid() (так как при изменении действующего (effective) ID пользователя/группы изменяется и ID доступа к файловой системе), либо вызовы setfsuid() и setfsgid().

Понятно, что в многопоточном приложении изменение EUID или EGID может не быть возможным, так как затронет все потоки процесса. Но, так как FSUID/FSGID специфичны для Linux, стандарт POSIX ничего не говорит о том, должны ли эти атрибуты быть общими для всех потоков процесса или нет. Далее »

Автор: , опубликовано в: Linux, комментариев: нет
31
Окт
2010

Засада с wc -l

Всю жизнь считал, что результат выполнения команды wc -l — количество строк в файле. А вот и нет! Далее »

Автор: , опубликовано в: Linux, комментариев: 2
30
Окт
2010

Ошибка сборки модуля VMware vsock для ядра Linux 2.6.35

При сборке модуля vsock Player 3.x или WorkStation 7.1 для ядра 2.6.35 могут возникать подобные ошибки компиляции:

CC [M] /tmp/vmware-root/modules/vsock-only/linux/af_vsock.o
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciStreamConnect’:
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3233: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3256: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3268: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciAccept’:
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3328: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3344: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3378: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciPoll’:
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:3476: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciStreamSendmsg’:
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:4116: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:4153: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:4206: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciStreamRecvmsg’:
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:4440: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:4480: error: ‘struct sock’ has no member named ‘sk_sleep’
/tmp/vmware-root/modules/vsock-only/linux/af_vsock.c:4546: error: ‘struct sock’ has no member named ‘sk_sleep’

Это не фатально, так как VMware может работать и без vsock, но при каждом запуске будет пересобирать и устанавливать модули заново. Неприятно, но лечится. Далее »

Автор: , опубликовано в: Linux, комментариев: нет
14
Окт
2010

R1Soft CDP с ядром 2.6.35

При попытке собрать модуль под ядро  2.6.35 r1soft-cki выдаёт примерно следующий текст:

[-]
View Code Text
Checking for binary module
Waiting                      |        
No binary module found
Gathering kernel information
Gathering kernel information complete.
Creating kernel headers package
Checking '/tmp/r1soft-cki.1286865605' for kernel headers
Unable to find a 'include/linux/autoconf.h'. This file is required to build a kernel module
Unable to find a valid source directory.
Please install the kernel headers for your operating system.
To install kernel headers execute:
apt-get install linux-headers-`uname -r`

Очевидно, что все требуемый пакеты установлены, иначе не было бы данной статьи. Не менее очевидно, что модуль ядра r1soft-cki в таких условиях создать не может. Далее »

Автор: , опубликовано в: Linux, Администрирование, комментариев: нет
14
Окт
2010

Ошибка сборки модуля VMware vmmon на 64-битной архитектуре

При сборке модуля Player 3.x или WorkStation 7.1 на 64-битной архитектуре могут возникать подобные ошибки компиляции:

/tmp/vmware-root/modules/vmmon-only//iommu.c: In function ‘IOMMU_SetupMMU’:
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:156: error: implicit declaration of function ‘iommu_map_range’
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c: In function ‘IOMMU_VMCleanup’:
/tmp/vmware-root/modules/vmmon-only/linux/iommu.c:403: error: implicit declaration of function ‘iommu_unmap_range’

К счастью, проблема решаема. Далее »

Автор: , опубликовано в: Linux, комментариев: нет
30
Сен
2010

Error 13: Invalid or unsupported executable format на ext4

Если на файловой системе после обновления ядра и перезагрузки выдаёт ошибку

Error 13: Invalid or unsupported executable format

То переустанавливать не нужно, есть более простой способ. Далее »

Автор: , опубликовано в: Linux, комментариев: нет
25
Сен
2010

Особенности работы функции checkdnsrr()

Функция checkdnsrr() используется для проверки существования записей . Например, фреймворк Kohana использует эту функцию для проверки наличия MX-записи домена, указанного в адресе электронной почты.

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

Автор: , опубликовано в: PHP, комментариев: нет
24
Сен
2010

Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport

Ситуация: нужно закрыть UDP-порты в трёх диапазонах: 1…52, 54…122, 124…1024. При этом если стук в порт идёт из привилегированного порта (то есть с номером 0…1023), то соединение нужно просто сбрасывать, если же стук идёт с непривилегированного порта, то расценивать это как сканирование и выполнять какие-то действия.

Например, обращение к порту 137 по протоколу UDP может быть как атакой какого-нибудь червя, так и безобидным запросом от NetBIOS. И если запросы, исходящие от NetBIOS, вполне безобидны («рабочий» трафик), то сканирование портов обычно не так безобидно. Далее »

Автор: , опубликовано в: Linux, комментариев: нет
31
Авг
2010

Борьба с ботами-взломщиками средствами rsyslogd

В предыдущих частях статей цикла «Скажи «Нет!» взломщику» со взломщиками мы боролись при помощи связки swatch + : swatch проводил анализ системного журнала сообщений, iptables использовался для блокировки непрошеных гостей.

Тем не менее, используя swatch на нескольких серверах, я не могу сказать, что я полностью им доволен: слишком уж он хрупок. Завершение дочернего tail приводит к тихой гибели самого swatch, в системе могут оставаться зомби и т.п.

Одна из альтернатив — использование . Далее »

Автор: , опубликовано в: Администрирование, Безопасность, комментариев: 7
21
Апр
2010

xCache 1.3.0 для PHP 5.2.x для Debian/Ubuntu Linux

Всем, кто хочет обновить до последней версии, но не знает, как это сделать (либо не хочет собирать из исходников). Далее »

Автор: , опубликовано в: Linux, PHP, Администрирование, комментариев: 9
26
Мар
2010