Перенести файл и сменить пользователя с помощью Java на unix box

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

Я застрял на этапе перехода на суперпользователя.

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

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

Просьба не отмечать это как повторяющееся.

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

Редактировать-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.");
    }
}   

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

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

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

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

Вам нужно будет показать нам, что вы пробовали, чтобы мы могли помочь! Вы пробовали это

Nicholas K 30.09.2018 19:34

Спасибо, Николас. Попробую опубликовать ссылку. Я уже разместил ссылку, которую опробовал. Поскольку код похож, я избегал копировать и вставлять. stackoverflow.com/questions/14830146/…

bhargav desai 01.10.2018 05:24

Покажите нам код, который вы пробовали, а не ссылку!

Nicholas K 01.10.2018 05:26

Отредактировали мой qs. Надеюсь, это поможет. Спасибо

bhargav desai 01.10.2018 05:38

Мой голос "против" удален. Что вы хотите делать после перехода на суперпользователя?

Nicholas K 01.10.2018 06:09

Спасибо. Скопируйте в другой каталог с правами суперпользователя.

bhargav desai 01.10.2018 06:21

Почему бы просто не войти в систему как суперпользователь?

Nicholas K 01.10.2018 15:04

Ссылка, которую вы указали в 1-м комментарии, не сработала. Проблема не в том, чтобы войти в систему / перейти на суперпользователя, мне также нужно передать файлы в том же сеансе, что не работает. Также опубликовали рассматриваемые правки. Спасибо

bhargav desai 02.10.2018 16:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
8
176
0

Другие вопросы по теме