Как я могу создать пользователя с доступом только для чтения ко всем файлам? (т.е. root без прав записи)

25927
Mononofu

Для резервного копирования моего сервера я хотел бы получить удаленный доступ к нему через SSH. Чтобы минимизировать все риски, он хочет, чтобы пользователь имел доступ только для чтения, но ко всем файлам, как root. Однако у него не должно быть никаких прав на запись.

Есть идеи, как этого добиться?

9
Связанный: [Разрешения файловой системы: Пользователь, который может сделать резервную копию всех файлов] (http://unix.stackexchange.com/q/267908/80216). G-Man 8 лет назад 0

3 ответа на вопрос

7
Darren Hall

Могу ли я предложить другой метод для решения вашей проблемы, который требует меньшего количества обслуживания.

Вы можете создавать ключи SSH, которые имеют ограниченный доступ к определенным программам. Я не люблю предоставлять root неограниченный доступ, но иногда вам нужно разрешить выполнение определенных команд через удаленный доступ. С помощью ключей ssh ​​вы можете запустить программу резервного копирования с помощью команды ssh.

Проверьте раздел 'AUTHORIZED_KEYS FILE FORMAT' на вашей странице руководства sshd (я предполагаю, что вы используете OpenSSH).

http://man.openbsd.org/OpenBSD-current/man8/sshd.8

Мне нравится идея. Для простого * извлечения * файлов через `rsync` все` no- * `-опции, описанные в * man *, должны быть безопасными. Особенно * no-pty * в сочетании с * from * - хорошее начало для повышения безопасности. Пример: `from =" the_pulling_hostname_or_IP ", no-pty, ...` user569825 12 лет назад 1
1
Kim

Вы можете достичь этого с помощью ACL. Вам все еще нужен скрипт, работающий от имени пользователя root, который меняет права доступа для каждого файла. Посмотрите справочные страницы для ACL, setfacl и getfacl, если вам интересно.

1
t0mm13b

Есть несколько другой способ создать это без использования ACL. Но вы должны соблюдать осторожность здесь. Во-первых, создайте группу, например, с именем roroot (только для чтения root). Затем примените этот идентификатор группы ко всем каталогам. Сделайте разрешения для групповых битов равными r- или 400 восьмеричным числам, после чего вы сможете создать учетную запись пользователя, как обычный пользователь, например, rorootusr, со следующим идентификатором, установленным на то, что находится в вашей системе, сделайте его член группы roroot только, не делайте его частью колеса, мусорного ведра и т. д., в зависимости от того, какие группы используются в вашей установке. Следующий бит будет клудги. Откройте файл / etc / passwd с помощью vim / nano / emacs / joe / любого другого редактора, который качает вашу лодку, и найдите идентификатор, который вы только что создали, т.е. rorootusr, файл passwd будет выглядеть так

корень: х: 0: 0 :: / корень: / бен / ш 

При чтении слева направо, разделенных двоеточиями, у вас есть имя пользователя, пароль (зашифрованный + затененный), идентификатор пользователя, идентификатор группы, комментарий, домашний каталог и оболочка. Из приведенного выше примера

rorootusr: x: 512: 450: RO пользователя Root: / home / rorootusr: / bin / bash 

Это третье поле (512), в котором вы измените его на 0. 450 будет идентификатором группы для roroot. Сохраните сеанс редактирования, и все готово. Теперь у rorootusr будет доступ с правами root, но он является единственным членом группы roroot и имеет доступ только для чтения к системе.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

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