Привет,
я прошу помочь разобраться мне со следующей ситуацией.
Имеется следующий код:
root@hl02:~# cat myopen.c
#define _GNU_SOURCE
#include <dlfcn.h>
#include <stdio.h>
#include <fcntl.h>
typedef int (*orig_open_f_type)(const char *pathname, int flags);
int open(const char *pathname, int flags, ...)
{
printf ("File %s; flags %d\n", pathname, flags);
orig_open_f_type orig_open;
orig_open = (orig_open_f_type)dlsym(RTLD_NEXT,"open");
return orig_open(pathname,flags);
}
Компилирую и подгружаю с LD_PRELOAD, запуская touch testfile
root@hl02:~# gcc -shared -fPIC myopen.c -o myopen.so -ldl -g
root@hl02:~# LD_PRELOAD=./myopen.so touch testfile
File testfile; flags 2369
root@hl02:~# ls -l testfile
--wS--xr-x 1 root root 0 Nov 13 08:39 testfile
Вопрос: откуда берутся эти permissions "--wS--xr-x" когда создается новый файл?
Был бы очень благодарен за любую помощь
С уважением, Игорь