Для резервного копирования моего сервера я хотел бы получить удаленный доступ к нему через SSH. Чтобы минимизировать все риски, он хочет, чтобы пользователь имел доступ только для чтения, но ко всем файлам, как root. Однако у него не должно быть никаких прав на запись.
Есть идеи, как этого добиться?
Ответы:
Могу ли я предложить другой метод для решения вашей проблемы, который требует меньшего количества обслуживания.
Вы можете создавать ключи SSH, которые имеют ограниченный доступ к определенным программам. Я не люблю предоставлять root неограниченный доступ, но иногда вам нужно разрешить выполнение определенных команд через удаленный доступ. С помощью ключей ssh вы можете запустить программу резервного копирования с помощью команды ssh.
Проверьте раздел 'AUTHORIZED_KEYS FILE FORMAT' на своей странице руководства sshd (я предполагаю, что вы используете OpenSSH).
http://man.openbsd.org/OpenBSD-current/man8/sshd.8
источник
rsync
всеno-*
-options , как указано в человеке должно быть безопасным. Особенно no-pty в сочетании с from является хорошим началом для повышения безопасности. Пример:from="the_pulling_hostname_or_IP",no-pty,...
Вы можете достичь этого с помощью ACL. Вам все еще нужен скрипт, работающий от имени пользователя root, который меняет права доступа для каждого файла. Посмотрите справочные страницы для ACL, setfacl и getfacl, если вам интересно.
источник
Есть несколько другой способ создать это без использования ACL. Но вы должны соблюдать осторожность здесь. Во-первых, создайте группу, например, с именем roroot (только для чтения root). Затем примените этот идентификатор группы ко всем каталогам. Сделайте разрешения для групповых битов равными r-- или 400 восьмеричным числам, после чего вы можете создать учетную запись пользователя, как обычный пользователь, например, rorootusr, со следующим идентификатором, установленным на то, что находится в вашей системе, сделайте его член группы roroot только , не делайте его частью колеса, корзины и т. д., в зависимости от того, какие группы используются в вашей установке. Следующий бит будет клудги. Откройте файл / etc / passwd с помощью vim / nano / emacs / joe / любого редактора, который качает вашу лодку, и найдите идентификатор, который вы только что создали, т.е. rorootusr, файл passwd будет выглядеть так
При чтении слева направо, разделенных двоеточиями, у вас есть имя пользователя, пароль (зашифрованный + затененный), идентификатор пользователя, идентификатор группы, комментарий, домашний каталог и оболочка. Из приведенного выше примера
Это третье поле (512), в котором вы измените его на 0. 450 будет идентификатором группы для roroot. Сохраните сеанс редактирования, и все готово. Теперь у rorootusr будет доступ с правами root, но он является единственным членом группы roroot и имеет доступ только для чтения к системе.
Надеюсь, это поможет, С наилучшими пожеланиями, Том.
источник