Подключение к sftp-серверу и изменение прав доступа к файлам и папкам

Мне нужно подключить мой java-код к sftp-серверу с помощью jsch, и эта часть в порядке.

Моя проблема в том, что я хочу получить файлы с пути на сервере и удалить все. Я могу получить файлы, но я не могу удалить. Я читал об этой проблеме, и ошибка связана с разрешениями. Вот образ filezilla с разрешениями. введите здесь описание изображения

И это один из моих методов:

public void changePermissions(int permissions,String path)
{
    int Octal = Integer.parseInt(Integer.toString(permissions), 8);
    Try<Session> of = Try.of(() -> {
        JSch jsch = new JSch();

        this.session = jsch.getSession("myuser", "xxx.xxx.xxx.2 ", 22);
        this.session.setPassword("mypassword1");

        this.session.setConfig("StrictHostKeyChecking", "no");

        this.session.connect();
        String comando = "sudo chmod 777 -R "+path;
        Channel canal = this.session.openChannel("exec");

        System.out.println("OEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE");
        InputStream in = canal.getInputStream();
        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
        canal.setOutputStream(baos);
        ((ChannelExec) canal).setCommand("cd "+path);
        ((ChannelExec) canal).setCommand("pwd");
        ((ChannelExec) canal).setCommand("sudo -S -p '' "+comando);
        String s = new String(baos.toByteArray());
        System.out.println(s);

        return this.session;
    });
}

И этот другой мой код Java

public void changePermissions(String path){
    Try<ChannelSftp> tryConection = Try.of(() -> {

            ChannelSftp channelSftp = (ChannelSftp) this.session
                    .openChannel("sftp");

            channelSftp.connect();
            return channelSftp;
        });

    Try<Boolean> of1 = Try.of(() -> {
        tryConection.get().chmod(511,path);
       return true;
    }
    Try<Boolean> of = Try.of(() -> {
                tryConection.getOrElseThrow(e -> new Error("failed :( " + e.getMessage())).rmdir(path);
                return true;
            });
    }

Объект сеанса, который я получаю с помощью другого метода, который является правильным при выполнении.

Первый вариант ничего не показывает, а второй вариант показывает в логах "3: Отказано в доступе"


person Julián Carvajal Montoya    schedule 18.03.2019    source источник
comment
Владельцем файлов является root, вы входите в систему как myuser, поэтому вы не можете изменить права доступа к файлу.   -  person Lothar    schedule 19.03.2019
comment
Невозможно? или может существовать по другому? поскольку в терминальном режиме файлы позволяют изменять разрешения с помощью sudo.   -  person Julián Carvajal Montoya    schedule 19.03.2019
comment
sudo требует ввода пароля. Это ничего не дает набору команд sftp.   -  person Lothar    schedule 19.03.2019
comment
@JuliánCarvajalMontoya Если вы делаете sudo вручную в оболочке, нужен ли пароль?   -  person Martin Prikryl    schedule 19.03.2019
comment
В любом случае, ваш код команды sudo неверен. См. Выполнение списка команд из ArrayList с помощью JSch exec в Java. Вы не можете вызывать setCommand несколько раз .   -  person Martin Prikryl    schedule 19.03.2019