unix domain socket

tokuchu

А можно как-нибудь изменить права доступа, которые сокет получает по умолчанию?
Есть программа, которая биндится на сокет. Я хочу, чтобы этот сокет создавался с другими правами, но эта программа сама по себе права сокета не меняет.

conv3rsje

Я хочу, чтобы этот сокет создавался с другими правами
umask?

tokuchu

umask?
А менее глобального ничего нет? :)

conv3rsje

umask на этот процесс - уже много? Он же не глобальный.

tokuchu

umask на этот процесс - уже много? Он же не глобальный.
Ну процесс ведь может же ещё и файлы создавать. А этот umask на них тоже ляжет.

doublemother

Ну можешь заюзать что-нибудь типа FAM, отслеживать создание файла и рутом менять на него права.

VitMix

Можно создавать сокет с правами 777 но в директории, в которую только избранные могут заходить.

vall

похоже что можно без umask
fd = socket
fchmod(fd, xxx)
bind(fd)
судя по коду в af_unix.c
mode = S_IFSOCK | (SOCK_INODE(sock)->i_mode & ~current_umask;

tokuchu

похоже что можно без umask
fd = socket
fchmod(fd, xxx)
bind(fd)
судя по коду в af_unix.c
mode = S_IFSOCK | (SOCK_INODE(sock)->i_mode & ~current_umask;
Прикольно, но это только для себя, чтобы создавать сразу с нужными правами. Но lighttpd, сцука, не делает ничего подобного.

tokuchu

Можно создавать сокет с правами 777 но в директории, в которую только избранные могут заходить.
Я в принципе так и хочу сделать, но сокет создаётся с правами root:root, 644.

vall

ну пропатчить его. или в LD_PRELOAD засунуть костыль подменяющий bind :grin:

tokuchu

ну пропатчить его
Да патчить как-то лень и некошерно с точки зрения пакетного менеджера. :)

sergey_m

В пакетном менеджере нет каталога для патчей?

tokuchu

Официально такой фичи в gentoo вроде нет.
Технически есть место, куда можно положить различные хуки и там сделать подсовывание патча. Народ так делает. Но это как-то лениво.
В результате сделал с помощью incrond.

bleyman

Официально такой фичи в gentoo вроде нет.
Да ну не может быть, ты пробовал через CFLAGS или --USE-flags?
Почитай funroll-loops например!

tokuchu

Почитай funroll-loops например!
Хуйня какая-то. :)
Оставить комментарий
Имя или ник:
Комментарий: