GNU/Linux >> Tutoriales Linux >  >> Linux

¿Puedo hacer que un script siempre se ejecute como root?

Ten mucho cuidado:¡los scripts combinados con setuid son peligrosos!

Primero, eche un vistazo a esta pregunta/respuesta, especialmente a esta respuesta y advertencia de seguridad.

Si aún desea ejecutar su script con setuid establecido, entonces puede escribir un programa C corto como contenedor y establecer el setuid bit en el binario compilado.

Ejemplo de envoltorio:

int main(void) {        
    setuid(0);
    clearenv();
    system("/absolute/path/to/your/script.sh");
}

Otra solución usando sudo (mencionado aquí):

  1. Como root, evite el acceso de escritura (y tal vez otro) a su secuencia de comandos:

    chown root /absolute/path/to/your/script.sh
    chmod 700 /absolute/path/to/your/script.sh
    
  2. Verifique que nadie excepto root pueda reemplazar el script , p.ej. modificando los derechos de acceso de la carpeta principal:

    chown root /absolute/path/to/your/
    chmod 755 /absolute/path/to/your/
    
  3. Modificar los derechos de acceso de sudo en /etc/sudoers con visudo :

    ALL    ALL = (root) NOPASSWD: /absolute/path/to/your/script.sh
    

    Puede encontrar más detalles sobre la configuración (p. ej., restringir el acceso a usuarios o grupos específicos) en la página de manual de sudoers.

Luego, todos los usuarios pueden ejecutar el script como root sin contraseña:

sudo /absolute/path/to/your/script.sh

Esto es similar a usar la solución wrapper/setuid anterior.


La forma más fácil y segura es usar bits SETUID en los permisos de archivo. De esa manera, los permisos de comando se elevarán a permisos de propietario de archivo.

para evitar que se edite el script, no configure los bits de escritura para todos.


Linux
  1. Ejecutar secuencia de comandos de Python a través de crontab

  2. No se puede eliminar un directorio en Unix

  3. ¿Cómo hago que un archivo sea de solo lectura de forma permanente en Linux para que ni siquiera el root pueda editarlo?

  4. No puedo hacer menuconfig

  5. Ejecutando Pycharm como root desde el lanzador

¿Se puede conectar un script Bash a un archivo?

¿Puede un script ser ejecutable pero no legible?

¿Cómo hacer retroactivamente que un script se ejecute como raíz?

¿Cómo ejecutar un comando en un script de Shell?

¿Puede un archivo .sh ser malware?

¿Por qué no puedo eliminar este archivo como root?