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

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 
  • Безопасно ли отключать пароль для пользователя, если он использует только SSH-ключ?
  • `sudo -u user` в строке shebang
  • Почему программы работают с sudo, не имеют системной темы?
  • Использовать rtcwake без ввода пароля
  • Использование sudo для доступа к другой учетной записи на одной машине
  • useradd в CentOS с домашним каталогом и привилегиями sudo
  • Как только sudo su'd root, есть ли команда, чтобы увидеть мое имя пользователя?
  • Как отправить на фоновый процесс, запущенный с sudo?
  • Команда sudo не является источником /root/.bashrc
  • добавить участников группы колес, доступ к суду
  • sudo: невозможно инициализировать PAM: нет такого файла или каталога
  • Как я могу записать cd в каталог с правами root?
  • Linux и Unix - лучшая ОС в мире.