Linux, потоки и FSUID
Известно, что в POSIX потоки одного процесса разделяют ID пользователя и группы. Иными словами, «легальным» путём создать потоки с разными UID не получится.
Но в Linux кроме 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 ничего не говорит о том, должны ли эти атрибуты быть общими для всех потоков процесса или нет. Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: нетОкт
2010
Засада с wc -l
Всю жизнь считал, что результат выполнения команды wc -l — количество строк в файле. А вот и нет! Далее »
Окт
2010
Ошибка сборки модуля VMware vsock для ядра Linux 2.6.35
При сборке модуля vsock VMware Player 3.x или VMware WorkStation 7.1 для ядра Linux 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, но при каждом запуске будет пересобирать и устанавливать модули заново. Неприятно, но лечится. Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: нетОкт
2010
R1Soft CDP с ядром 2.6.35
При попытке собрать модуль под ядро Linux 2.6.35 r1soft-cki выдаёт примерно следующий текст:
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 в таких условиях создать не может. Далее »
Окт
2010
Ошибка сборки модуля VMware vmmon на 64-битной архитектуре
При сборке модуля vmmon VMware Player 3.x или VMware WorkStation 7.1 на 64-битной архитектуре могут возникать подобные ошибки компиляции:
/tmp/vmware-root/modules/vmmon-only/linux/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’
К счастью, проблема решаема. Далее »
Автор: Wandering Soul, опубликовано в: Linux, комментариев: нетСен
2010
Error 13: Invalid or unsupported executable format на ext4
Если на файловой системе ext4 после обновления ядра и перезагрузки GRUB выдаёт ошибку
Error 13: Invalid or unsupported executable format
То переустанавливать Linux не нужно, есть более простой способ. Далее »
Автор: Wandering Soul, опубликовано в: Linux, комментариев: нетСен
2010
Особенности работы функции checkdnsrr()
Функция checkdnsrr() используется для проверки существования записей DNS. Например, фреймворк Kohana использует эту функцию для проверки наличия MX-записи домена, указанного в адресе электронной почты.
Тем не менее, существуют некоторые подводные камни, связанные с использованием данной функции, о которых разработчикам нужно знать. Далее »
Автор: Wandering Soul, опубликовано в: PHP, комментариев: нетСен
2010
Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport
Ситуация: нужно закрыть UDP-порты в трёх диапазонах: 1…52, 54…122, 124…1024. При этом если стук в порт идёт из привилегированного порта (то есть с номером 0…1023), то соединение нужно просто сбрасывать, если же стук идёт с непривилегированного порта, то расценивать это как сканирование и выполнять какие-то действия.
Например, обращение к порту 137 по протоколу UDP может быть как атакой какого-нибудь червя, так и безобидным запросом от NetBIOS. И если запросы, исходящие от NetBIOS, вполне безобидны («рабочий» трафик), то сканирование портов обычно не так безобидно. Далее »
Автор: Wandering Soul, опубликовано в: Linux, комментариев: нетАвг
2010
Борьба с ботами-взломщиками средствами rsyslogd
В предыдущих частях статей цикла «Скажи «Нет!» взломщику» со взломщиками мы боролись при помощи связки swatch + iptables: swatch проводил анализ системного журнала сообщений, iptables использовался для блокировки непрошеных гостей.
Тем не менее, используя swatch на нескольких серверах, я не могу сказать, что я полностью им доволен: слишком уж он хрупок. Завершение дочернего tail приводит к тихой гибели самого swatch, в системе могут оставаться зомби и т.п.
Одна из альтернатив — использование rsyslogd. Далее »
Апр
2010
xCache 1.3.0 для PHP 5.2.x для Debian/Ubuntu Linux
Всем, кто хочет обновить xCache до последней версии, но не знает, как это сделать (либо не хочет собирать из исходников). Далее »
Автор: Vladimir, опубликовано в: Linux, PHP, Администрирование, комментариев: 9Мар
2010

Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

