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

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

1
задан 8 April 2014 в 00:01

2 ответа

Вы можете отредактировать /etc/sudoers, чтобы разрешить любому пользователю выполнять команду (или всех пользователей), чтобы запустить ее как root без пароля (возможно, это немного опасно с помощью rsync). Разве вы не можете просто запустить всю команду / скрипт / как root? Я предполагаю, что это будет запущено через cron, поэтому просто добавьте задание root с помощью:
sudo crontab -e
Примечание: вы можете делать довольно сложные вещи, обернув свою команду cron в скобке bash -e "..." или просто сделайте это в отдельном скрипте. Предполагая, что это не setuid'd, если root запускает его (через cron), он будет работать как root, поэтому он должен решить вашу проблему с разрешением.
7
ответ дан 25 May 2018 в 23:36
  • 1
    Проблема в том, что если я настрою скрипт на своем локальном компьютере и запустил его как root, у него будут проблемы с правами на сервере. Если я настрою сценарий на своем сервере и запустил его как root, то локальная машина будет с правами на разрешение. Другими словами, мне нужно иметь права root как на локальной, так и на серверной машинах. – Olivier Lalonde 7 January 2011 в 04:34
  • 2
    Вы можете написать сценарий на каждом конце и разрешить его запуск с sudo обычными пользователями. Это было бы безопаснее, чем просто разрешить rsync. – Oli♦ 7 January 2011 в 14:48
  • 3
    Судо - отличная идея. Вы можете точно указать, какой пользователь может запустить какую команду. Сделай это. – Frank 8 January 2011 в 01:00

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

sudo passwd root

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

sudo chown root backup
sudo chmod u+s backup

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

6
ответ дан 25 May 2018 в 23:36
  • 1
    Вам не нужно указывать «root». поскольку sudo работает как пользователь root root root. (sudo whoami возвращает, root), поэтому требуется только sudo passwd. – Marco Ceppi♦ 7 January 2011 в 08:34
  • 2
    setuid не работает для скриптов – enzotib 7 January 2011 в 12:53
  • 3
    Правильно, скрипты выполняются оболочкой, названной в строке she-bang. Извините за дезинформацию. – Frank 8 January 2011 в 00:57

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

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