Могу ли я увеличить мощность 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.

  • chmod и chown не работают в sudo, называемом скриптом
  • Запросить пароль sudo, а не дать ошибку доступа
  • Ubuntu 16.04 su может требовать USB-устройства, но другие пользователи не могут
  • исключить команды из прав пользователя sudo
  • форсирование sudo на удаленном сервере rsync
  • Мне нужно подключиться к пользователю IPA и запустить программу как root без паролей
  • 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 - лучшая ОС в мире.