Могу ли я увеличить мощность sudo в каталогах / файлах distination на оболочке bash?

У меня есть 2 сервера Ubuntu: 12.04.5 LTS и 16.04.1 LTS, в локальной сети, где я являюсь администратором обоих серверов и могу быть суперпользователем на них. Предположим, что каждый сервер – это A и B, и я теперь вхожу на сервер A.

Когда я хочу скопировать файл из A в каталог в B, где для размещения файла требуется корневой ресурс B, как я могу это сделать?

Мое судебное разбирательство было следующим, но это не сработало из-за отсутствия полномочий для сервера B:

sudo scp /foobar/foo/bar.txt user@serverB:/bar.txt scp: /bar.txt: Permission denied 

Мощность sudo влияет только на разрешение источника и не влияет на разрешение каталога назначения.

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

И логин root не разрешен для обоих серверов, поскольку стандартная конфигурация Ubuntu такова.

Если кто-то из вас знает какой-то хороший способ, пожалуйста, научите меня. Я использую оболочку bash.

  • Где я могу найти документацию о команде «sudo !!»
  • подача пароля без какого-либо окна терминала (стандартный вывод)
  • Команда «sudo rm \\» зависает - хотите, чтобы система не наносила ущерба системе
  • Массовое развертывание пакета на несколько серверов Linux на разных континентах
  • Можно ли сохранить как sudo из nano после того, как вы забыли работать как sudo?
  • Как завершается работа Bash с помощью sudo?
  • Проблема с sudoing ssh - `sudo ssh ...` не работает
  • Как долго пароль для выполнения команды с sudo-кешем?
  • 3 Solutions collect form web for “Могу ли я увеличить мощность sudo в каталогах / файлах distination на оболочке bash?”

    Если вы можете прочитать файл на исходном компьютере как обычный пользователь (а не root), рассмотрите pull scp, а не push:

     serverB:~$ sudo scp user@serverA:/foobar/foo/bar.txt /bar.txt 

    Если вы не можете прочитать файл на исходном компьютере, вам необходимо выполнить два описанных вами действия. Невозможно работать с sudo на нескольких машинах.

    Umm … почему бы вам не создать каталог на сервере B, где вам не нужны повышенные права, скопируйте файл в это место, а затем просто переместите его туда, где вы хотите, когда вы входите в систему на сервере B. KISS .

    Я рекомендую вам использовать rsync чтобы вы могли использовать sudo в машине для взлома, следуйте этой инструкции:

    1. Узнайте путь к rsync: which rsync
    2. Отредактируйте файл / etc / sudoers: sudo visudo
    3. Добавьте строку <username> ALL=NOPASSWD:<path to rsync> , где username – имя пользователя пользователя, которое rsync будет использовать для входа в систему. Этот пользователь должен иметь возможность использовать sudo

    Затем на исходном компьютере укажите, что sudo rsync будет использоваться:

     rsync ... --rsync-path="sudo rsync" ... 

    Использование его без NOPASSWD на конечном компьютере приведет к сообщению

     sudo: no tty present and no askpass program specified 
    Linux и Unix - лучшая ОС в мире.