Usar script sin root

Escribo un script de mantenimiento con diferentes comandos. el script tiene comandos sudo dentro.

Ahora quiero usar crontab, pero mi primer problema es: ¿Cómo puedo usar el script a nivel de usuario sin privilegios de root? ¿Es eso posible?

Después de eso, quiero copiar el script en /usr/local/maintenance y quiero usar crontab para ejecutar el script cada primer jueves.

EDITAR: ok, lo decido ahora para el lanzamiento. Ahora tengo un plist en Global Agents, funciona bien. Pero sólo los archivos de usuario. ¿Cómo puedo usar launchD para comandos sudo?

Estas deberían ser dos preguntas también, ¿por qué desea copiar el guión y no solo ejecutarlo desde ese juramento? Si el script tiene sudo, requiere privilegios elevados y, por lo tanto, debe ejecutarse como root u otro usuario
el script también debería ejecutarse cuando el usuario no está en mi red. O lo que quieres decir con "¿por qué quieres copiar el guión y no simplemente ejecutarlo desde ese juramento?" No entiendo la otra oración: ok, olvídate de root. Quiero ejecutarlo con Sudo pero con el usuario registrado (por ejemplo, el script elimina el caché del usuario pero también el caché del sistema).
crontab no puede ejecutar sudo dado que están borrando cachés. Escribiría como dos scripts separados, uno para local y otro para sistema.
@Mark Ya veo. ¿Y con uno de los scripts ejecutar el otro script? local -> sistema o sistema local. el guión es así:rm -rf ~/Library/Caches sudo rm -rf /System/Library/Caches
La idea de la división es permitir que uno se ejecute como root y el otro como local, el problema es que combinarlos te da el problema de sudo. Así que más fácil de usar dos scripts.
En cuanto a la última línea, lea un tutorial sobre los usuarios de Unix que ejecutan como sudo significa ejecutar como root. Tus preguntas implican que no entendiste cómo funcionan los permisos y usuarios de Unix

Respuestas (1)

Primero, la mejor manera de ejecutar un script cron como root es agregarlo al crontab del usuario root. EDITOR="vi" ; sudo crontab -u root -ele permitirá editar el crontab raíz. Una vez que esté haciendo eso, no necesita usar `sudo; dentro de su guión.

En cuanto a ejecutarlo todos los jueves, consulte la página de manual de la tabla crontab man crontab -s 5y le explicará todo lo que necesita saber.

sudo crontab -u root no funciona. cuando intento crontab -e -u root tomo un editor, pero no lo guarda. Intento * 13 * * 5 script.sh
Bien, edité el comando para solucionar el posible problema de editar el crontab. La versión anterior funcionó para mí, pero no en un bash de vainilla.