2011-11-18 19 views
9

Tengo pocas secuencias de comandos bash que se suman a las tareas cron con el tiempo especificado, pero debe ejecutarse como usuario raíz. Estoy intentando ejecutar esos scripts, es decir, trabajos crob, pero se necesita permiso del usuario root, ya que estoy ejecutando estos trabajos en la instancia de ubuntu ec2 donde el usuario root está restringido. ¿Cuál sería el trabajo para ejecutar esos scripts como usuario root?Cómo ejecutar el trabajo cron como usuario en lugar del usuario raíz

Gracias

+1

no estoy seguro de entender la pregunta. ¿Tal vez los comandos 'super' o' sudo' podrían ayudarlo? –

+0

Esto pertenece a ServerFault, no a StackOverflow. – Amy

+0

Has estado aquí el tiempo suficiente para saber que esto no pertenece aquí. Si quieres saber cómo programar un script bash en Linux bajo una cuenta de usuario diferente, prueba [unix.se]. Si EC2 juega un papel importante en esto, pruebe [sf]. – Will

Respuesta

7

hay varias posibilidades:

1) añadir la secuencia de comandos (s) al crontab de root. Para hacer esto usted tiene que hacer sudo su - o su - para convertirse en root, a continuación, añadir los trabajos de cron mediante el uso de crontab -e

2) permitir a un usuario que no sea root para utilizar un crontab, y añadir el trabajo de cron para crontab de ese usuario, por utilizando crontab -e y establecer el indicador set-UID del script y cambiar la propiedad a raíz, por lo que se ejecutará como root chmod +s scriptname; chown root scriptname

10

Puede hacer un script ejecuta como root utilizando el setuid flag, lo que hace que un script se ejecute como su propietario:

chmod +s yourscript 
chown root yourscript 

Simplemente haga yourscript plazo el comando que desea ejecutar como root .

Tenga en cuenta que con este método, cualquier usuario puede ejecutar el script.

+0

Muchas plataformas ignorarán 'setuid' en los archivos de script por razones de seguridad. – tripleee

2

Basile tiene razón con su comentario. Si desea ejecutar algo como root en Ubuntu, use sudo.

Si desea ejecutar un script (o algunos comandos) de forma automática con derechos de superusuario sin tener que escribir una contraseña, ejecute

sudo visudo 

para editar el archivo de sudoers. Para hacer sudo dejar de pedir una contraseña para una secuencia de comandos específicos (o comandos) insertar

username ALL = NOPASSWD: /path/to/script 

donde username es el nombre del usuario que llama sudo.

Cuestiones relacionadas