FileZilla zgłasza komunikat „Odmowa zezwolenia”, ale opróżnia plik (usuwa całą zawartość pliku)

1

Ten problem jest bardzo dziwny. Mam dostęp FTP do witryny, nad którą pracuję, ale wydaje się, że występuje problem z uprawnieniami. W FileZilla Jeśli spróbuję edytować i ponownie załadować plik na serwer, pojawia się Permission deniedbłąd, ale jednocześnie zawartość edytowanego pliku zostaje wymazana z serwera! Skończyło się na tym, że zdalny plik został uszkodzony (cała zawartość usunięta - 0B!), Ale nie mam uprawnień, aby to naprawić.

Większość uprawnień jest ustawiona na 775 dla folderów i 664 na pliki.

  • Dlaczego mogę otrzymywać permission deniedbłąd? Co jest nie tak z moimi uprawnieniami?
  • Jeśli tak naprawdę nie mam uprawnień do zapisu do pliku, dlaczego jego zawartość jest usuwana?

Dołączam tutaj dwa dzienniki FileZilla, jeden z wyłączonym debugowaniem:

10:32:02    Status: Connecting to [IP.ADD.RE.SS:PORT]...
10:32:05    Status: Connected to [IP.ADD.RE.SS]
10:32:05    Status: Retrieving directory listing...
10:32:05    Status: Listing directory /
10:32:06    Status: Directory listing of "/" successful
10:32:12    Status: Connecting to [IP.ADD.RE.SS:PORT]...
10:32:14    Status: Connected to [IP.ADD.RE.SS]
10:32:15    Status: Starting download of /wp-config.php
10:32:15    Status: remote:/wp-config.php => local:/tmp/fz3temp-1/wp-config.php
10:32:16    Status: File transfer successful, transferred 3.4 KB in 1 second
10:32:29    Status: Starting upload of /tmp/fz3temp-1/wp-config.php
10:32:30    Command:    put "/tmp/fz3temp-1/wp-config.php" "wp-config.php"
10:32:30    Error:  /wp-config.php: open for write: permission denied
10:32:30    Error:  File transfer failed
10:32:30    Status: Starting upload of /tmp/fz3temp-1/wp-config.php
10:32:30    Status: Retrieving directory listing of "/"...
10:32:30    Status: Listing directory /
10:32:39    Status: Skipping upload of /tmp/fz3temp-1/wp-config.php
10:32:39    Status: File transfer skipped
10:33:39    Status: Disconnected from server

I inne z włączonym debugowaniem

10:46:32    Status: Connecting to [IP.ADD.RE.SS:PORT]...
10:46:32    Trace:  Going to execute /usr/bin/fzsftp
10:46:32    Response:   fzSftp started, protocol_version=6
10:46:32    Trace:  CSftpControlSocket::ConnectParseResponse(fzSftp started, protocol_version=6)
10:46:32    Trace:  CSftpControlSocket::SendNextCommand()
10:46:32    Trace:  CSftpControlSocket::ConnectSend()
10:46:32    Command:    open "gqwp@[IP.ADD.RE.SS]" [PORT]
10:46:32    Trace:  Server version: SSH-2.0-mod_sftp/0.9.7
10:46:32    Trace:  We believe remote version has SSH-2 RSA padding bug
10:46:32    Trace:  Using SSH protocol version 2
10:46:32    Trace:  Doing Diffie-Hellman group exchange
10:46:33    Trace:  Doing Diffie-Hellman key exchange with hash SHA-256
10:46:33    Trace:  Server also has ssh-dss host key, but we don't know it
10:46:33    Trace:  Host key fingerprint is:
10:46:33    Trace:  ssh-rsa 2048 [LO:NG:SSH:FI:NG:ER:PR:INT]
10:46:33    Trace:  Initialised AES-256 SDCTR client->server encryption
10:46:33    Trace:  Initialised HMAC-SHA1 client->server MAC algorithm
10:46:33    Trace:  Initialised AES-256 SDCTR server->client encryption
10:46:33    Trace:  Initialised HMAC-SHA1 server->client MAC algorithm
10:46:33    Trace:  Pageant is running. Requesting keys.
10:46:34    Trace:  Pageant has 1 SSH-2 keys
10:46:34    Trace:  Attempting keyboard-interactive authentication
10:46:34    Trace:  Using keyboard-interactive authentication. inst_len: 0, num_prompts: 1
10:46:34    Command:    Pass: **************
10:46:34    Trace:  Access granted
10:46:34    Trace:  Opening session as main channel
10:46:34    Trace:  Opened main channel
10:46:34    Trace:  Started a shell/command
10:46:34    Status: Connected to [IP.ADD.RE.SS]
10:46:35    Trace:  CSftpControlSocket::ConnectParseResponse()
10:46:35    Trace:  CSftpControlSocket::ResetOperation(0)
10:46:35    Trace:  CControlSocket::ResetOperation(0)
10:46:35    Trace:  CFileZillaEnginePrivate::ResetOperation(0)
10:46:35    Trace:  CSftpControlSocket::FileTransfer(...)
10:46:35    Status: Starting upload of /tmp/fz3temp-1/wp-config.php
10:46:35    Trace:  CSftpControlSocket::SendNextCommand()
10:46:35    Trace:  CSftpControlSocket::ChangeDirSend()
10:46:35    Command:    cd "/"
10:46:35    Response:   New directory is: "/"
10:46:35    Trace:  CSftpControlSocket::ResetOperation(0)
10:46:35    Trace:  CControlSocket::ResetOperation(0)
10:46:35    Trace:  CSftpControlSocket::ParseSubcommandResult(0)
10:46:35    Trace:  CSftpControlSocket::FileTransferSubcommandResult()
10:46:35    Trace:  CSftpControlSocket::SendNextCommand()
10:46:35    Trace:  FileTransferSend()
10:46:35    Command:    put "/tmp/fz3temp-1/wp-config.php" "wp-config.php"
10:46:35    Error:  /wp-config.php: open for write: permission denied
10:46:35    Trace:  FileTransferParseResponse(2)
10:46:35    Trace:  CSftpControlSocket::ResetOperation(2)
10:46:35    Trace:  CControlSocket::ResetOperation(2)
10:46:35    Error:  File transfer failed
10:46:35    Trace:  CFileZillaEnginePrivate::ResetOperation(2)
10:46:35    Trace:  CSftpControlSocket::FileTransfer(...)
10:46:35    Status: Starting upload of /tmp/fz3temp-1/wp-config.php
10:46:35    Trace:  CSftpControlSocket::ParseSubcommandResult(0)
10:46:35    Trace:  CSftpControlSocket::FileTransferSubcommandResult()
10:46:35    Status: Retrieving directory listing of "/"...
10:46:36    Trace:  sftpcontrolsocket.cpp(836): List called from other command   caller=0x7f3db4003080
10:46:36    Trace:  CSftpControlSocket::ParseSubcommandResult(0)
10:46:36    Trace:  CSftpControlSocket::ListSubcommandResult()
10:46:36    Trace:    state = 1
10:46:36    Trace:  CSftpControlSocket::SendNextCommand()
10:46:36    Trace:  CSftpControlSocket::ListSend()
10:46:36    Trace:    state = 3
10:46:36    Command:    ls
10:46:36    Status: Listing directory /
10:46:37    Trace:  CSftpControlSocket::ListParseResponse()
10:46:37    Trace:  CSftpControlSocket::ResetOperation(0)
10:46:37    Trace:  CControlSocket::ResetOperation(0)
10:46:37    Trace:  CSftpControlSocket::ParseSubcommandResult(0)
10:46:37    Trace:  CSftpControlSocket::FileTransferSubcommandResult()
10:46:41    Trace:  CSftpControlSocket::SendNextCommand()
10:46:41    Trace:  FileTransferSend()
10:46:41    Command:    put "/tmp/fz3temp-1/wp-config.php" "wp-config.php"
10:46:41    Error:  /wp-config.php: open for write: permission denied
10:46:41    Trace:  FileTransferParseResponse(2)
10:46:41    Trace:  CSftpControlSocket::ResetOperation(2)
10:46:41    Trace:  CControlSocket::ResetOperation(2)
10:46:41    Error:  File transfer failed
10:46:41    Trace:  CFileZillaEnginePrivate::ResetOperation(2)
10:46:41    Trace:  CSftpControlSocket::FileTransfer(...)
10:46:41    Status: Starting upload of /tmp/fz3temp-1/wp-config.php
10:46:41    Trace:  CSftpControlSocket::ParseSubcommandResult(0)
10:46:41    Trace:  CSftpControlSocket::FileTransferSubcommandResult()
10:46:41    Status: Retrieving directory listing of "/"...
10:46:41    Trace:  sftpcontrolsocket.cpp(836): List called from other command   caller=0x7f3db4003080
10:46:41    Trace:  CSftpControlSocket::ParseSubcommandResult(0)
10:46:41    Trace:  CSftpControlSocket::ListSubcommandResult()
10:46:41    Trace:    state = 1
10:46:41    Trace:  CSftpControlSocket::SendNextCommand()
10:46:41    Trace:  CSftpControlSocket::ListSend()
10:46:41    Trace:    state = 3
10:46:41    Command:    ls
10:46:41    Status: Listing directory /
10:46:42    Trace:  CSftpControlSocket::ListParseResponse()
10:46:42    Trace:  CSftpControlSocket::ResetOperation(0)
10:46:42    Trace:  CControlSocket::ResetOperation(0)
10:46:42    Trace:  CSftpControlSocket::ParseSubcommandResult(0)
10:46:42    Trace:  CSftpControlSocket::FileTransferSubcommandResult()
10:46:42    Trace:  CSftpControlSocket::SendNextCommand()
10:46:42    Trace:  FileTransferSend()
10:46:42    Command:    put "/tmp/fz3temp-1/wp-config.php" "wp-config.php"
10:46:42    Error:  /wp-config.php: open for write: permission denied
10:46:42    Trace:  FileTransferParseResponse(2)
10:46:42    Trace:  CSftpControlSocket::ResetOperation(2)
10:46:42    Trace:  CControlSocket::ResetOperation(2)
10:46:42    Error:  File transfer failed
10:46:42    Trace:  CFileZillaEnginePrivate::ResetOperation(2)
10:46:42    Status: Retrieving directory listing of "/"...
10:46:42    Trace:  CSftpControlSocket::ParseSubcommandResult(0)
10:46:42    Trace:  CSftpControlSocket::ListSubcommandResult()
10:46:42    Trace:    state = 1
10:46:42    Trace:  CSftpControlSocket::SendNextCommand()
10:46:42    Trace:  CSftpControlSocket::ListSend()
10:46:42    Trace:    state = 3
10:46:42    Command:    ls
10:46:43    Status: Listing directory /
10:46:43    Trace:  CSftpControlSocket::ListParseResponse()
10:46:43    Trace:  CSftpControlSocket::ResetOperation(0)
10:46:43    Trace:  CControlSocket::ResetOperation(0)
10:46:43    Status: Directory listing of "/" successful
10:46:43    Trace:  CFileZillaEnginePrivate::ResetOperation(0)
Томица Кораћ
źródło
I oczywiście nie mów „FTP”, gdy jest to „SFTP”.
Martin Prikryl
Czy możesz spróbować tego samego z WinSCP? Nie ma szczegółowego logowania.
Martin Prikryl
Martin Jestem na Linuksie i wygląda na to, że WinSCP nie jest dostępny dla mojego systemu operacyjnego. Myślisz, że są dla mnie jakieś alternatywy?
Томица Кораћ
Przynajmniej spróbuj innego klienta SFTP (np. Wiersza polecenia OpenSSH sftp), aby sprawdzić, czy masz takie samo zachowanie.
Martin Prikryl

Odpowiedzi:

2

Sprawdzając kod źródłowy FileZilla / PuTTY, jasne jest, że FileZilla rzeczywiście otrzymała błąd „odmowa uprawnień” podczas próby otwarcia pliku do zapisu.

Jeśli zawartość pliku została usunięta pomimo błędu, musi to być błąd / błędna konfiguracja serwera SFTP.

Martin Prikryl
źródło
Martin dziękuję bardzo za całą cierpliwość. Powiem to właścicielowi, żeby zobaczyć, co myśli.
Томица Кораћ
Martin, okazuje się, że otrzymałem niepoprawne dane logowania do serwera. W szczególności powiedziano mi, że powinienem używać SFTP, ale zamiast tego był to FTP, więc miałem zły numer portu i protokół. To spowodowało całe zamieszanie. Gdy tylko właściciel witryny poda poprawne dane uwierzytelniające, wszystko wydaje się w porządku, choć nieco wolniejsze. Oczywiście, głosowałem za odpowiedzią na twoją odpowiedź, a teraz, kiedy ją rozwiązaliśmy, również ją zaakceptuję. Twoje zdrowie!
Томица Кораћ