Aby utworzyć kopię zapasową mojego serwera, chciałbym uzyskać do niego zdalny dostęp poprzez SSH. Aby zminimalizować wszelkie ryzyko, użytkownik chce użytkownika, który ma tylko dostęp do odczytu, ale do wszystkich plików, tak jak root. Nie powinien jednak mieć żadnych praw do zapisu.
Jakieś pomysły, jak to osiągnąć?
Odpowiedzi:
Czy mogę zaproponować inną metodę rozwiązania problemu, która jest mniej intensywna w utrzymaniu.
Możesz tworzyć klucze ssh, które mają ograniczony dostęp do określonych programów. Nie lubię przyznawać rootowi nieograniczonego dostępu, ale czasami trzeba włączyć pewne polecenia, aby były uruchamiane zdalnie. Za pomocą klawiszy ssh można uruchomić program do tworzenia kopii zapasowych za pomocą komendy ssh.
Sprawdź sekcję „AUTHORIZED_KEYS FILE FORMAT” na stronie sshd man (zakładam, że używasz OpenSSH).
http://man.openbsd.org/OpenBSD-current/man8/sshd.8
źródło
rsync
wszystkie z tychno-*
-opcje zgodnie z opisem w mężczyzna powinien być bezpieczny. W szczególności no-pty w połączeniu z z to dobry początek, aby zwiększyć bezpieczeństwo. Przykład:from="the_pulling_hostname_or_IP",no-pty,...
Można to osiągnąć za pomocą list ACL. Nadal potrzebujesz skryptu działającego jako root, który zmienia uprawnienia każdego pliku. Zobacz strony podręcznika ACL, setfacl i getfacl, jeśli jesteś zainteresowany.
źródło
Istnieje inny sposób tworzenia tego bez użycia list ACL. Ale musisz tu ćwiczyć ostrożnie. Najpierw utwórz grupę, na przykład o nazwie roroot (root tylko do odczytu). Następnie zastosuj ten identyfikator grupy do wszystkich katalogów. Ustaw uprawnienia dla bitów grupowych na r-- lub 400 ósemkowe, a następnie możesz utworzyć konto użytkownika tak jak zwykły użytkownik, na przykład rorootusr, z następnym ustawieniem identyfikatora na cokolwiek, co jest w systemie członek grupy roroot tylko , nie sprawiaj, aby była częścią koła, kosza itp., w zależności od tego, jakie są twoje grupy na instalacji. Następny kawałek będzie niezgrabny. Otwórz plik / etc / passwd, używając vim / nano / emacs / joe / cokolwiek edytora, który zatka twoją łódź, i poszukaj identyfikatora, który właśnie utworzyłeś, tj. rorootusr, plik passwd będzie wyglądał następująco
Czytanie od lewej do prawej rozdzielone dwukropkami masz nazwę użytkownika, hasło (zaszyfrowane + shadowed), identyfikator użytkownika, identyfikator grupy, komentarz, katalog domowy i powłokę. Z podanego powyżej przykładu
To trzecie pole (512), które zmienisz na 0. 450 będzie identyfikatorem grupy dla roroot. Zapisz sesję edycji i gotowe. Teraz rorootusr będzie miał dostęp do roota, ale jest wyłącznie członkiem grupy roroot i ma dostęp tylko do systemu.
Mam nadzieję że to pomoże, Z poważaniem, Tomek.
źródło