Як я можу створити користувача з доступом лише до читання до всіх файлів? (тобто root без дозволу на запис)


9

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

Будь-які ідеї, як цього досягти?


Відповіді:


7

Я можу запропонувати інший метод вирішення вашої проблеми, який не потребує значного обслуговування.

Ви можете створити ключі ssh, які мають обмежений доступ до певних програм. Мені не подобається надання кореневим необмеженим доступом, але іноді потрібно включити певні команди за допомогою дистанційного керування. За допомогою клавіш ssh ви можете запускати програму резервного копіювання за допомогою команди ssh.

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

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


1
Мені подобається ідея. Для простого перетягування файлів за допомогою rsyncвсіх варіантів no-*, зазначених у людині, повинно бути безпечно. Особливо НЕ-псевдотермінал в поєднанні з від не є хорошим початком для підвищення безпеки. Приклад:from="the_pulling_hostname_or_IP",no-pty,...
user569825

1

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


1

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

root: x: 0: 0 :: / root: / bin / sh

Читаючи зліва направо, розділені кольорами, ви маєте ім’я користувача, пароль (зашифрований + затінений), ідентифікатор користувача, ідентифікатор групи, коментар, домашній каталог та оболонку. З наведеного вище прикладу

rorootusr: x: 512: 450: Root User RO: / home / rorootusr: / bin / bash

У третьому полі (512) ви зміните його на 0. 450 - це ідентифікатор групи для кореня. Збережіть сеанс редагування, і ви закінчите. Тепер rorootusr матиме кореневий доступ, але є виключно членом групи root і має лише доступ до системи.

Сподіваюся, це допомагає, З найкращими побажаннями, Томе.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.