Сегодня я столкнулся с этой проблемой и решил ее без необходимости изменять файлы конфигурации или предоставлять разрешения на уровне root для учетных записей пользователей. Моя конкретная установка заключалась в том, что пользователь A
на машине foo
должен был скопировать все пользовательские каталоги из foo
на машину bar
в каталог резервной копии
, принадлежащий пользователю A
. (Пользователь A
имеет привилегии sudo для foo
.)
Команда, которую я использовал, приведена ниже. Он был вызван пользователем A
в каталоге / home
на foo
.
sudo rsync -avu -e "ssh -i /home/A/.ssh/id_rsa -l A" * B:/home/backup
Это запускает rsync как sudo, чтобы можно было получить доступ ко всем пользовательским каталогам на foo
, но он сообщает rsync использовать ssh для доступа к машине bar
с использованием пользователя A
учетные данные. Мои потребности немного отличались от приведенного выше вопроса, но это позволило мне быстро получить резервную копию всех пользовательских каталогов на конкретной машине, которой я управляю, без нарушения конфигурации системы.
La salida de route --help
se escribe con un error estándar; salida no estándar. Para grep
esa salida, deberá redirigirla a la salida estándar:
$ route --help 2>&1 | grep -m1 'add'
route [-v] [-FC] {add|del|flush}... Modify routing table for AF.
La sintaxis 2>&1
le dice al shell, "tome lo que está escrito como error estándar y, en su lugar, escríbalo en la salida estándar" (técnicamente, dice "tome lo que está escrito en el descriptor de archivo 2,y, en su lugar, escríbalo en cualquier lugar donde esté escribiendo el descriptor de archivo 1" ). -m1
le dice a grep
que deje de buscar después de una coincidencia, para evitar la tercera -desde la última línea -.