Назад | Перейти на главную страницу

rdiff-backup с sudo на удаленном хосте: ListError Permission denied

В настоящее время я столкнулся со следующей проблемой:

Я настроил rdiff-backup на резервной машине под управлением Ubuntu и хотел бы иметь возможность делать резервную копию моей производственной машины под управлением CentOS; Моя установка выглядит следующим образом:

Я надеялся, что смогу максимально ограничить количество пользователей резервного копирования, но сохранив привилегию «читать все». Когда я запускаю свой сценарий резервного копирования, я получаю ListErrors:

ListError etc/httpd/conf/.ssl/[...] [Errno 13] Permission denied: '/etc/httpd/conf/.ssl/[...]'

Я не совсем понимаю, почему пользователю резервного копирования, выполняющему все команды с sudo, не разрешено читать некоторые файлы. Был бы так счастлив, если бы кто-нибудь указал мне правильное направление.

Я узнал одну вещь: ssh <remote_host> 'sudo whoami' дает мне следующее сообщение об ошибке: sudo: sorry, you must have a tty to run sudo. Я не уверен, связано ли это как-то с проблемой rdiff-backup.

Заранее большое спасибо!

Только что нашел кое-что интересное на справочная страница authorized_keys:

command = "команда"

Указывает, что команда выполняется всякий раз, когда этот ключ используется для аутентификации. Команда, предоставленная пользователем (если есть), игнорируется.

Так что я в основном добавил sudo к пользовательской команде, указанной в authorized_keys, чтобы она выглядела так: command="sudo rdiff-backup --server --restrict-read-only /",from="{backup machine's IP}",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa [KEY HERE]

Следующая проблема заключалась в том, что CentOS по умолчанию требует tty для удаленных команд sudo (см. Defaults requiretty в вашем файле sudoers); Я не уверен, что это блестящая настройка, но я закомментировал эту часть. Это в основном не позволяет пользователю вводить ssh <hostname> 'sudo <cmd>'вместо этого вам нужно выделить tty, используя ssh -t <hostname> 'sudo <cmd>'. Если кто-то найдет лучшее решение, дайте мне знать.