Nowe posty

Autor Wątek: skrypty wykonywane w crontab-ie [SElinux]  (Przeczytany 996 razy)

martin1978

  • Gość
skrypty wykonywane w crontab-ie [SElinux]
« dnia: 2018-10-16, 08:56:09 »
Witam
Czy jest możliwość wykonania takiej operacji przy użyci SELinux:?
Piszę własny skrypt np. test.sh
skrypt ten tworzy plik result.
Oba pliki są zapisywane w /home/user/scirpt/
Do Crontab-a wpisuje zadanie test.sh które wykonuje się cyklicznie co dwa dni.
Pytanie:
Czy jest możliwość przypisania typu SELinux dla pliku test.sh, żeby ten skrypt test.sh tylko wykonywał crond?
Żeby nie było możliwości uruchomienia skryptu np. ./test.sh poprzez jakiegokolwiek użytkownika systemu.
Chodzi o to, aby ten skrypt test.sh mógł wykonywać/uruchamiać tylko crond.
Z góry dziękuję za odpowiedzi
Pozdrawiam

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: skrypty wykonywane w crontab-ie [SElinux]
« Odpowiedź #1 dnia: 2018-10-16, 14:03:43 »
Podstawy SELinuksa są tu. Nie wiem, dla jakiego systemu to chcesz - w Gentoo na przykład interakcja cron-a z SE wygląda tak:
* Systemowe crony robione są z domeny system_cronjob_t
* Crony użytkowników robione są z domeny cronjob_t


Dodatkowo:
* Daemon cron jako taki działa praktycznie zawsze z UID/GID 0 (jako root), zrzucając uprawnienia do obsługi rekordów nieuprzywilejowanych.
* Skrypt zawsze możesz odpalić jako "/bin/interpreter /ścieżka/skrypt", nie jest wtedy egzekwowana obecność flagi "x", wystarczy goły "r".

Czyli docelowym modelem jest taki, żeby ograniczyć dostęp do skryptu na pełny dla właściciela, rx dla cronjob_t i figa dla pozostałych. Sam nie korzystam z SE, ale dalej powinno pójść z góry.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

martin1978

  • Gość
Odp: skrypty wykonywane w crontab-ie [SElinux]
« Odpowiedź #2 dnia: 2018-10-17, 10:33:12 »
Działam w systemie Centos 7.4.
Dzięki, ale czytałem ten opis https://wiki.gentoo.org/wiki/SELinux/cron#cronjob_t
. I widocznie w Centos-ie jest inne nazewnictwo (SEL), bo cronjob_t nie znajduje mi go.
semanage fcontext -a -t cronjob_t /user/user/file.sh

Po wykonaniu tej komendy mówi mi że ValueError: Typ cronjob_t  jest nieprawidłowy, musi być typem pliku lub urządzenia.

Ale dzięki za pozostałem rady. Będę dalej szukał.