Должен ли я включить учетную запись root для rsync?

Как включить корневую учетную запись? Я знаю, что это обычно не рекомендуется, но я бы хотел настроить неинтерактивный скрипт для резервного копирования моего сервера с помощью rsync. Я мог бы использовать --rsync-path="sudo rsync", но тогда мне нужно было бы хранить свой пароль sudo в открытом виде, что выглядит намного хуже, чем включение учетной записи root.

10
задан 7 April 2014 в 23:01

3 ответа

  1. Создайте новый, отдельный mybackup учетные записи пользователей на клиенте и сервере
  2. Заблокируйте пароли с sudo passwd -l mybackup чтобы эти учетные записи предотвратили прямой вход в систему
  3. Позвольте, через sudo, те новые учетные записи для выполнения очень определенного /usr/bin/rsync/ --some-long-command /from/here /to/there управляйте как корень с NOPASSWD: в /etc/sudoers использование sudo visudo
  4. Создайте новые ключи SSH без пароля для локального для удаленного использования хоста sudo -u mybackup ssh-keygen
  5. Добавьте к sudo -u crontab -e на одном или другом конце для выполнения удаленного rsync использование ssh и ключи как транспорт

Таким образом, единственная команда, которая может быть выполнена как корень, является той, которую Вы явно позволили, и единственный удаленный пользователь, который может активироваться, это - держатель другой половины установленной ssh пары ключей, которая, потому что этому также заблокировали пароль, может только быть кем-то с sudo доступом самостоятельно или crontab, который Вы настраиваете.

10
ответ дан 7 April 2014 в 23:01
  1. Вы можете отредактировать /etc/sudoers, чтобы разрешить любому пользователю, выполняющему команду (или всем пользователям), запускать ее как root без пароля (возможно, это немного опасно для rsync).

  2. Разве вы не можете просто запустить всю команду / скрипт / что угодно как root? Я предполагаю, что это будет выполняться через cron, поэтому просто добавьте задание root через:

    sudo crontab -e
    

    Примечание: вы можете делать довольно сложные вещи, заключая команду cron в фигурную скобку bash -e "..." или просто делать это в отдельном скрипте. Предполагая, что это не setuid'd, если root запускает его (через cron), он будет работать как root, что должно решить вашу проблему с разрешениями.

0
ответ дан 7 April 2014 в 23:01

Вы можете (но не должны) дать пользователю root пароль с помощью

sudo passwd root

Редактировать: бит setuid не работает для скриптов. В противном случае вы можете использовать бит setuid в программе резервного копирования.

sudo chown root backup
sudo chmod u+s backup

Может быть, вы даже хотите запустить резервное копирование как задание cron?

0
ответ дан 7 April 2014 в 23:01

Другие вопросы по тегам:

Похожие вопросы: