Wydaje mi się, że utknąłem między ograniczeniem NFS a ograniczeniem Crona.Jak uruchomić polecenie jako inny użytkownik niż root cronjob?
Więc mam root cron (na RHEL5), który uruchamia skrypt powłoki, który, między innymi, musi zsynchronizować niektóre pliki przez mount NFS. Pliki na podłączeniu NFS są własnością użytkownika apache z modułem 700, więc tylko użytkownik apache może uruchomić komendę rsync - działanie jako root powoduje błąd uprawnień (NFS jest rzadkim przypadkiem, gdzie użytkownik root jest nie wszystkie potężne?)
Kiedy chcę tylko uruchomić rsync ręcznie, mogę użyć "sudo -u apache rsync ..." Ale sudo no workie in cron - mówi "sudo: sorry, you musi mieć tty do uruchomienia sudo ".
Nie chcę uruchamiać całego skryptu jako apache (to znaczy z crontab apache'a), ponieważ inne części skryptu wymagają korzenia - to tylko jedno polecenie, które musi działać jako apache. I naprawdę wolałbym nie zmieniać trybu plików, ponieważ spowoduje to znaczące zmiany w innych aplikacjach.
Musi być sposób na wykonanie "sudo -u apache" z cron?
dziękuję! rob
Może być lepiej obsługiwana przez przeniesienie tego do SuperUser.com. – Robert
To jest stare pytanie, ale wciąż znajduje się dość wysoko w rankingach, a żadna z odpowiedzi nie wyjaśnia, dlaczego uprawnienia root'a nie miały zastosowania do mount NFS. Dla każdego, kto się o to potyka, powodem jest root_squash. Ten blog ma całkiem przyzwoite wyjaśnienie, dlaczego ta opcja jest konieczna i zazwyczaj jest ustawiona domyślnie. http://fulautolinux.blogspot.com/2015/11/nfs-norootsquash-and-suid-basic-nfs.html – BryKKan