@ERROR: chdir falhou mas o diretório existe

2
Eu tenho um DNS-320 da D-Link e eu tenho -devices / "> FFP instalado e estou tentando colocar rsync em execução nele.

Até agora eu tenho o daemon instalado e eu defini um módulo no meu rsyncd.conf da seguinte forma:

max connections = 10
secrets file = /ffp/etc/rsyncd.secret

use chroot = false
read only = no
list = true
strict modes = false
#hosts deny = *
timeout = 600
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.mkv *.avi *.mpg *.jpg *.rar
pid file = /var/run/rsyncd.pid
reverse lookup = no

[root]
hosts allow = *
read only = false
gid = allaccount
uid = nobody
auth users = greg
path = /mnt/HD/HD_a2/rsync
comment = Fish
list = yes

/mnt/HD/HD_a2 é o disco interno e /mnt/HD/HD_a2/rsync existe:

root@nas:/mnt/HD/HD_a2/rsync# pwd  
/mnt/HD/HD_a2/rsync

com as seguintes permissões:

root@nas:/mnt/HD/HD_a2# ls -la
total 154589
drwxrwxrwx 23 root   root            4096 Oct  2 19:44 .
drwxr-xr-x  3 root   root            1024 Oct  2 17:20 ..
drwxrwxrwx  4 root   root            4096 Dec 29  2013 Ajaxpf
drwxrwxrwx 21 nobody allaccount      4096 Oct  2 15:45 NAS
dr-xr-xr-x  4 root   root            4096 Sep 24 17:45 Public
drwxr-xr-x  3 root   root            4096 Sep 24 17:45 Users
drwxr-xr-x 17 root   root            4096 Aug 27 14:11 ffp
-rw-r--r--  1 root   root            1117 Oct  2 17:20 ffp.log
-rwxr-xr-x  1 root   root            1942 Sep 23 17:29 fun_plug
drwxr-xr-x  2 root   root            4096 Jul 15  2012 logs
drwxrwxrwx  2 nobody allaccount      4096 Oct  2 21:09 rsync

Eu tenho o usuário greg definido no meu arquivo rsync.secret e posso conectar com sucesso do meu cliente (Windows) e listar o módulo:

C:\Batch\rsync> rsync greg@nas::  
root            Fish

No entanto; Quando tento enviar um arquivo, recebo @ERROR: chdir failed :

C:\Batch\rsync> rsync -vvvv SRC test.txt greg@nas::root/test.txt  
opening tcp connection to nas port 873  
Connected to nas (192.168.10.5)  
note: iconv_open("UTF-8", "UTF-8") succeeded.  
sending daemon args: --server -vvvve.Lsf . root/test.txt  
@ERROR: chdir failed  
[sender] _exit_cleanup(code=5, file=/usr/src/ports/rsync/rsync-3.0.9-1/src/rsync-3.0.9/main.c, line=1516): entered  
rsync error: error starting client-server protocol (code 5) at /usr/src/ports/rsync/rsync-3.0.9-1/src/rsync-3.0.9/main.c  
(1516) [sender=3.0.9]  
[sender] _exit_cleanup(code=5, file=/usr/src/ports/rsync/rsync-3.0.9-1/src/rsync-3.0.9/main.c, line=1516): about to call
 exit(5)

Estou usando o Cygwin rsync versão 3.0.9 no cliente e rsync versão 3.1.0 no servidor.

No servidor, rsync está sendo executado como root:

root@nas:/mnt/HD/HD_a2# ps aux | grep rsync  
root     10074  0.0  0.3   1996   376 ?        Ss   21:57   0:00 /ffp/bin/rsync --daemon --config=/ffp/etc/rsyncd.conf --log-file=/var/log/rsync.log --ipv4 -vvvv

Por que chdir está falhando?

root pode gravar em /mnt/HD/HD_a2/rsync :

root@nas:/mnt/HD/HD_a2/rsync# touch /mnt/HD/HD_a2/rsync/touch  
root@nas:/mnt/HD/HD_a2/rsync# ls -la  
total 8  
drwxrwxrwx  2 nobody allaccount 4096 Oct  2 22:21 .  
drwxrwxrwx 23 root   root       4096 Oct  2 19:44 ..    
-rw-r--r--  1 root   root          0 Oct  2 22:21 touch  

e rsync estão sendo executados como root .

Não há nada útil no registro no servidor:

2014/10/02 22:19:35 [10391] rsyncd version 3.1.0 starting, listening on port 873  
2014/10/02 22:19:41 [10394] connect from UNDETERMINED (192.168.10.37)  

Então, por que chdir está falhando? ou como posso diagnosticar ainda mais o problema?

UPDATE # 1

Considerando que esta é uma duplicata de Configurando o daemon rsync anônimo , mas as soluções pertencem SELinux sendo o problema. O DNS-320 executa uma versão incorporada e simplificada do Linux, que não inclui os comandos getenforce e setenforce do SELinux, portanto, se é isso, como sugerido nos comentários , como posso corrigi-lo?

Como essas ferramentas não estão disponíveis, o que mais poderia ser?

    
por Greg B 02.10.2014 / 23:26

1 resposta

2

Eu apenas corri para este problema em um dispositivo QNAP com este erro;

ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(2547) [Receiver=3.0.7]

Eu resolvi de uma forma estranha editando o arquivo rsync.conf para

use chroot = true

Quando a sincronização inicial terminar, eu a defino novamente em

use chroot = false

E agora funciona.

    
por 28.11.2016 / 16:12

Tags