Как включить корневую учетную запись? Я знаю, что это обычно не рекомендуется, но я бы хотел настроить неинтерактивный скрипт для резервного копирования моего сервера с помощью rsync. Я мог бы использовать --rsync-path="sudo rsync"
, но тогда мне нужно было бы хранить свой пароль sudo в открытом виде, что выглядит намного хуже, чем включение учетной записи root.
mybackup
учетные записи пользователей на клиенте и сервереsudo passwd -l mybackup
чтобы эти учетные записи предотвратили прямой вход в системуsudo
, те новые учетные записи для выполнения очень определенного /usr/bin/rsync/ --some-long-command /from/here /to/there
управляйте как корень с NOPASSWD:
в /etc/sudoers
использование sudo visudo
sudo -u mybackup ssh-keygen
sudo -u crontab -e
на одном или другом конце для выполнения удаленного rsync
использование ssh
и ключи как транспортТаким образом, единственная команда, которая может быть выполнена как корень, является той, которую Вы явно позволили, и единственный удаленный пользователь, который может активироваться, это - держатель другой половины установленной ssh пары ключей, которая, потому что этому также заблокировали пароль, может только быть кем-то с sudo доступом самостоятельно или crontab, который Вы настраиваете.
Вы можете отредактировать /etc/sudoers
, чтобы разрешить любому пользователю, выполняющему команду (или всем пользователям), запускать ее как root
без пароля (возможно, это немного опасно для rsync).
Разве вы не можете просто запустить всю команду / скрипт / что угодно как root
? Я предполагаю, что это будет выполняться через cron, поэтому просто добавьте задание root
через:
sudo crontab -e
Примечание: вы можете делать довольно сложные вещи, заключая команду cron в фигурную скобку bash -e "..."
или просто делать это в отдельном скрипте. Предполагая, что это не setuid'd, если root
запускает его (через cron
), он будет работать как root
, что должно решить вашу проблему с разрешениями.
Вы можете (но не должны) дать пользователю root пароль с помощью
sudo passwd root
Редактировать: бит setuid не работает для скриптов. В противном случае вы можете использовать бит setuid в программе резервного копирования.
sudo chown root backup
sudo chmod u+s backup
Может быть, вы даже хотите запустить резервное копирование как задание cron?