Передача файла и изменение пользователя с помощью Java в Unix Box - PullRequest
0 голосов
/ 30 сентября 2018

Я хочу перенести файл из windows в окно unix (linux), используя Java, а затем перейти в режим суперпользователя.Я попытался использовать библиотеку JSCH, то есть SFTP с Java.

Я застрял на шаге, чтобы перейти на супер пользователя.

Шаги, которые я выполнил, похожи на Как передать файл через SFTP в Java?

Я знаю, что подобные вопросы задавались, но я не могу сменить пользователя с помощью этого подхода.

Просьба, пожалуйста, не отмечать это как дубликат.

Может кто-нибудь помочь мне с шагами, или любой другой подход?Пример будет полезен для того же.Заранее спасибо.

Edit-1 - образец фрагмента по ссылке как передать файл через SFTP в java? , который используется в качестве отправленной ссылки

 public  void send (String fileName) {
    String SFTPHOST = "host:IP";
    int SFTPPORT = 22;
    String SFTPUSER = "username";
    String SFTPPASS = "password";
    String SFTPWORKINGDIR = "file/to/transfer";

    Session session = null;
    Channel channel = null;
    ChannelSftp channelSftp = null;
    System.out.println("preparing the host information for sftp.");
    try {
        JSch jsch = new JSch();
        session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT);
        session.setPassword(SFTPPASS);
        java.util.Properties config = new java.util.Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);
        session.connect();
        System.out.println("Host connected.");
        channel = session.openChannel("sftp");
        channel.connect();
        System.out.println("sftp channel opened and connected.");
        channelSftp = (ChannelSftp) channel;
        channelSftp.cd(SFTPWORKINGDIR);
        File f = new File(fileName);
        channelSftp.put(new FileInputStream(f), f.getName());
        log.info("File transfered successfully to host.");
    } catch (Exception ex) {
         System.out.println("Exception found while tranfer the response.");
    }
    finally{

        channelSftp.exit();
        System.out.println("sftp Channel exited.");
        channel.disconnect();
        System.out.println("Channel disconnected.");
        session.disconnect();
        System.out.println("Host Session disconnected.");
    }
}   

При этом я могу подключиться к удаленной системе, но не могу сменить пользователя.

Edit-2 : Проведя дополнительные исследования, я обнаружил, что использование SFTP с JSCH api может помочь мне передать файл, но не сменить пользователя.Если я изменю канал на «exec», я могу сменить пользователя, но оба не будут работать в одном сеансе.Так что оба не работают одновременно.

Есть ли другой способ (возможно, SSH, передача SCP?)

Таким образом, вопрос остается нерешенным - хотите передать файл и изменить пользователя через Java.

...