You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Zoltan Levardy (JIRA)" <ji...@apache.org> on 2018/07/12 15:46:00 UTC

[jira] [Issue Comment Deleted] (VFS-590) SFTP moveTo operation might fail on permission checks even if the operation itself might succeed

     [ https://issues.apache.org/jira/browse/VFS-590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Zoltan Levardy updated VFS-590:
-------------------------------
    Comment: was deleted

(was: is this something solvable with jsch and vfs?

What I found with v2.2 that parent and the file itself cannot be determined if writable. This is the error what got, however the both the file and parent folder is writable (777), and that must be enough for a rename operation.)

> SFTP moveTo operation might fail on permission checks even if the operation itself might succeed
> ------------------------------------------------------------------------------------------------
>
>                 Key: VFS-590
>                 URL: https://issues.apache.org/jira/browse/VFS-590
>             Project: Commons VFS
>          Issue Type: Bug
>    Affects Versions: Nightly Builds
>            Reporter: L
>            Priority: Major
>
> Continuing with SFTP moveTo, see VFS-588 and VFS-589 for more details.
> The permission checks that VFS performs during moveTo() can result in failure. 
> org.apache.commons.vfs2.provider.AbstractFileObject.moveTo(final FileObject destFile) starts with some checks:
> {code:java}
>     @Override
>     public void moveTo(final FileObject destFile) throws FileSystemException
>     {
>         if (canRenameTo(destFile))
>         {
>             if (!getParent().isWriteable())
>             {
>                 throw new FileSystemException("vfs.provider/rename-parent-read-only.error",
>                         getName(),
>                         getParent().getName());
>             }
>         }
>         else
>         {
>             if (!isWriteable())
>             {
>                 throw new FileSystemException("vfs.provider/rename-read-only.error", getName());
>             }
>         }
> {code}
> The problem is: isWriteable() might fail or even hang. Performing moveTo without this check might successfully rename the file.
> isWriteable() in case of SFTP can fail if the server disables SSH channelExec. Or if it does not support "id" command.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)