Получение root прав при работе в WinSCP

  • 03.06.2016
  • 66 929
  • 33
  • 19.03.2019
  • 82
  • 78
  • 4
Получение root прав при работе в WinSCP

Поскольку хорошим тоном считается отключать доступ под root'ом в любой UNIX системе, то любители поработать с файлами через WinSCP могут испытать разочарование из-за отсутствия возможности проводить какие-либо операции с директориями и файлами, к которым у них нет доступа. Однако решение есть.

Даем права root при работе через WinSCP

Для начала нужно найти файл sftp-server:

whereis sftp-server

В ответ терминал выдаст примерно что-то следующее:

sftp-server: /usr/lib/sftp-server /usr/share/man/man8/sftp-server.8.gz

Запоминаем путь /usr/lib/sftp-server (вместо него может быть другой, зависит от дистрибутива), и переходим к редактированию конфига /etc/sudoers:

sudo nano /etc/sudoers

В самом конце файла, с новой строки пишем:

ВАШЛОГИН ALL=NOPASSWD:/usr/lib/sftp-server

Где ВАШЛОГИН - это логин пользователя, который должен работать с рут правами, а /usr/lib/sftp-server - это путь, который мы узнали выше с помощью команды whereis.

Если нужно добавить больше, чем одного пользователя, то просто с новой строки повторяем написаное выше.

Теперь осталось дело за малым - отконфигурировать WinSCP. Открываем свойства соеденения, в пункте "Протокол передачи" обязательно выставляем SFTP.

winscproot1

Далее нажимаем кнопку "Еще", и там уже, в панели слева, выбираем пункт "Среда - SFTP". В самой верхней строчке под названием "Сервер SFTP" пишем следующее:

sudo /usr/lib/sftp-server

winscproot2

Сохраняем и пользуемся WinSCP с полным рут доступом ко всем файлам в системе.

Была ли эта статья Вам полезна?

Комментарии к статье (33)

    • Дмитрий

    Помогло и заработало, спасибо!!! И еще рестарт sshd сделать надо "sudo systemctl restart sshd"

    • Гость

    Не сработала, при подключении просит пароль пользователя, и не проходит не чего

    • Максим

    Безопасно ли это?

    • Гость

    Не работает. "На сервере вообще запущен SFTP?" Ubuntu 22.04

    • Для того, чтобы иметь представление в чем проблема, нужно видеть полный текст ошибки из окна WinSCP.

      • Игоррь

      У меня была такая же ошибка я не прописал sudo /usr/lib/sftp-server в winSCP вместо этого выбрал другой стандартный вариант обрати внимание на этот шаг

    • Аноним

    Работает, спасибо!!!!

    • Аноним

    рулез автор, БИГ здоровья ! =)

    • Владимир

    Спасибо, это сработало на Ubuntu 20.04.3 LTS. Но у меня вопрос на сколько это безопасно? Стоит ли оставлять так на постоянку или лучше настраивать при необходимости и возвращать обратно?

      • Recluse

      На мой взгляд, если нет надобности, то лучше оставить без root прав - в WinSCP очень легко выполнить какое-нибудь неудачное лишнее движение, которое может стоить работоспособности какого-нибудь сервиса.

        • Александр

        а как вернуть всё назад, убрать root? убрал эту строчку всё равно заходит под root

          • Recluse

          Убрать добавленную вручную строку в /etc/sudoers.

    • Гость

    А что если whereis sftp-server возвращает только sftp-server: /usr/share/man/man8/sftp-server.8.gz ?
    Дальше идеи закончились? Ваш метод у меня не работает пока так.

      • Recluse

      В конфиге sshd (/etc/ssh/sshd_config) есть строчка Subsystem sftp, и какое значение у неё стоит?

        • Аноним

        Такой строчки нет

        • Gauri

        У меня этот параметр назывался на "Subsystem sftp", а "Subsystem sftp", в остальном - огромное спасибо, заработало.
        Ну и sudoers безопаснее редактировать через "sudo visudo".

    • приветики

    убунту 20,04 всё ок

    • Арнольд

    Спасибо, все сработало! Единственное, что пришлось sudo nano запускать через PuTTY, прямо через команду WinSCP не запустилось. Большой респект автору!

    • Сергей

    да, помогло
    настройки прямо из этой статьи подошли . Все работает..
    Даже для чайника !

    • Хех

    Debian 9 - все заработало.
    Спасибо

    • Марат

    Добрый день!
    Напишите пожалуйста как открыть etc/sudoers

      • Recluse

      Так в статье же написано - выполнить команду в терминале:

      sudo nano /etc/sudoers
        • Марат

        Появляется вот такое сообщение.
        Не могу найти sudo
        Системная ошибка. Код: 2.
        Не удается найти указанный файл.

        Может быть это потому что у меня Windows 10. Как быть в этом случае?

          • Recluse

          Судя по приложенной ошибке, там просто не установлен пакет sudo. Если у Вас есть доступ к учетной записи с root правами, Вы можете зайти под ней, и выполнить все эти же действия, только без команды sudo, просто набрав

          nano /etc/sudoers

          Но предварительно я бы почитал инструкцию по использованию редактора nano.

    • Ирина

    СПААААААААСИБОООООООООООООООООООООО

    • Павел

    Примите благодарность! Отлично заработало.

    • Vasya

    Огромное спасибо!

    • Александр

    спасибо. Все заработало

    • Михаил

    Спасибо огромное и низкий вам поклон!

    • vvv

    thx

    • Владимир

    Спасибо!

    • Бро

    Спасибо, бро!

    • Евгений

    Мне очень помогло! Спасибо!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.