Intereting Posts
Найти, если какая-либо строка файла является подмножеством данных в другом файле Debian VM Может видеть другие компьютеры в сети, но не может подключиться к WWW Инициирование систем и управление услугами в разных дистрибутивах Что означает «d» в «dmesg»? NIS и / etc / passwd Как подключить клиентов проверить «новизну» / «is-read» / var / spool / mail / $ USER, например pam_mail для пользовательского сценария motd GNU Parallel – grepping n строк для m регулярных выражений как настроить альпийский список всех удаленных папок IMAP? Удаленный сценарий оболочки Введите кодовую фразу для Виртуальная машина Fedora 14 Xen не обнаруживает сеть Проверка и изменение разрешений специальных папок Как подсчитать количество интерфейсов в мосте Как я могу найти файл конфигурации для rsyslog, если он не используется по умолчанию? Используя цикл «for», запустите сценарий для всех файлов в каталоге

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

Если вы можете прочитать файл на исходном компьютере как обычный пользователь (а не 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