Ну ткните кто-нить уже носом меня, пож-ста, третью ночь не сплю :D
[console]globus@aspera:/tmp/321/babel/vert$ ls -ld
drwxrwxr-x 2 ftp globus 40 май 29 23:11 .
globus@aspera:/tmp/321/babel/vert$ touch prob
globus@aspera:/tmp/321/babel/vert$ ls -l
total 0
-rw-r--r-- 1 globus globus 0 май 29 23:16 prob
globus@aspera:/tmp/321/babel/vert$ chmod 600 prob
globus@aspera:/tmp/321/babel/vert$ chgrp ftp prob
globus@aspera:/tmp/321/babel/vert$ ls -l
total 4
-rw------- 1 globus ftp 5 май 29 23:31 prob
globus@aspera:/tmp/321/babel/vert$ echo ftpr > prob
globus@aspera:/tmp/321/babel/vert$ ls -l
total 4
-rw------- 1 globus globus 5 май 29 23:17 prob
globus@aspera:/tmp/321/babel/vert$ cat prob
ftpr
globus@aspera:/tmp/321/babel/vert$ rm prob
globus@aspera:/tmp/321/babel/vert$ ls -l
total 0
globus@aspera:/tmp/321/babel/vert$ [/console]
В аналогичной ситуации я создаю, модицицирую и удаляю файл. Владельца сменить не могу, я ж не root.
[console]drwxrwxr-x 2 globus ftp 111 май 24 23:14 upload
-rw------- 1 ftp ftp 0 май 24 22:30 j5b154er.txt[/console]
Он хочет владельца сменить, но у него родитель root
Почему vsftpd не может? Обрывается на этом этапе. Вроде всё для этого соответствует... Я уж и strace покопался
Потомок:
rt_sigaction(SIGALRM, {0x7f797b688a10, ~[RTMIN RT_1], SA_RESTORER, 0x7f797a46e420}, NULL, 8) = 0
alarm(300) = 300
recvfrom(0, "STOR /upload/j5b154er.txt\r\n", 4096, MSG_PEEK, NULL, NULL) = 27
read(0, "STOR /upload/j5b154er.txt\r\n", 27) = 27
fcntl(4, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
write(4, "Thu May 29 20:58:04 2014 [pid 66"..., 102) = 102
fcntl(4, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
write(6, "\v", 1) = 1
read(6, "\1\0\0\0", 4) = 4
open("/upload/j5b154er.txt", O_WRONLY|O_CREAT|O_EXCL|O_APPEND, 0666) = 5
fstat(5, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
fcntl(5, F_GETFL) = 0x8401 (flags O_WRONLY|O_APPEND|O_LARGEFILE)
fcntl(5, F_SETFL, O_WRONLY|O_APPEND|O_LARGEFILE) = 0
+++ killed by SIGSYS +++Родитель:
listen(3, 32) = 0
accept(3, {sa_family=AF_INET, sin_port=htons(60604), sin_addr=inet_addr("127.0.0.1")}, [16]) = 4
clone(child_stack=0, flags=0x8000000|SIGCHLD) = 667
close(4) = 0
accept(3, 0x7fff7ad4a790, [28]) = ? ERESTARTSYS (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
alarm(1) = 0
rt_sigreturn(0x1) = -1 EINTR (Interrupted system call)
alarm(0) = 1
wait4(-1, NULL, WNOHANG, NULL) = 667
wait4(-1, NULL, WNOHANG, NULL) = -1 ECHILD (No child processes)
accept(3, {sa_family=AF_INET, sin_port=htons(60610), sin_addr=inet_addr("127.0.0.1")}, [16]) = 4
clone(child_stack=0, flags=0x8000000|SIGCHLD) = 723
close(4) = 0
accept(3, 0x7fff7ad4a790, [28]) = ? ERESTARTSYS (To be restarted)
--- SIGTERM (Terminated) @ 0 (0) ---Вроде ошибок не видно, умирает и перезапускается дочерний процесс
Хотя, есть незакрытый баг у vsftpd в дебиане:
#631785 [m|Hu| ] [vsftpd] strac'ing vsftpd master process hangs connected clients