Powiedzmy, że mam skrypty bash do tworzenia kopii zapasowych / synchronizacji / pobierania z Internetu / zadań aktualizacji. Zamierzam je uruchomić zgodnie z harmonogramem z crontabem. Czy bezpiecznie jest tworzyć crontab dla roota, czy też potrzebuję dedykowanego użytkownika Linuksa? A jeśli tego potrzebuję, dlaczego?
UPD: W rzeczywistości istnieją trzy opcje: 1) root - Ok. To zła opcja. 2) istniejący użytkownik. 3) dedykowany użytkownik.
Czy oddany użytkownik jest lepszy od istniejącego (np. Właściciel stacji roboczej, zwykły użytkownik)? Biorąc pod uwagę, że nie mogę utworzyć dedykowanego użytkownika nologin, ponieważ używam rsync przez ssh i będę musiał dodać nowego użytkownika na zdalnym komputerze, z którym synchronizuję.
/bin/false
tego użytkownika jako powłoki.Odpowiedzi:
To zawsze lepiej, aby uruchomić rzeczy jako użytkownik inny niż root z dokładnie taką samą dostępu i uprawnień, ile potrzebuje, i nic więcej.
To, czy uruchomienie „roota” jest „bezpieczne”, zależy od tego, co robi ( echo „”> / dev / null wydaje się względnie nieszkodliwe :)), ale zawsze jest mniej bezpieczne niż uruchamianie go jako użytkownik inny niż root, ponieważ ty nigdy nie wiadomo, jakiej ewentualności możesz przeoczyć, gdzie coś może wpłynąć na coś, na co nie powinno mieć wpływu.
Oto coś, co mi się przydarzyło raz, na przykład: co jeśli przypadkowo napiszesz niebezpieczne polecenie bash do pliku skryptu przez awarię kopiowania, w której skopiowałeś część swojej historii bash do skryptu (który na przykład zawiera trochę rm -rf polecenie na ścieżce względnej, zamiast wierszy z postu superużytkownika z przykładowym kodem). Czy byłem szczęśliwy, że uruchomiłem cronjob pod właściwym użytkownikiem :) Teraz wszystko, co się stało, polegało na tym, że konfiguracja git tego użytkownika została utracona ...
źródło
can't remove .. permission denied
w moim przypadku były to najczęściej złe filtry do polecenia rm. Ale chcę rozważyć inną opcję: działanie jako istniejący użytkownik, ponieważ mam ten dylemat do automatyzacji stacji roboczych. Czy możesz sprawdzić zaktualizowane pytanie?