Estaba escribiendo algunas instrucciones sobre cómo instalar algo (relacionado con TeX; si no pregunta, no arruinaré su día al proporcionar más detalles) y solía sudoinstalar todo el sistema. Alguien comentó que no creían que sudoestuviera disponible en todas las distribuciones de Linux (o Unix).
¿Hay distribuciones de Unix que no tienen sudo, y si es así, cuáles son? ¿Existe un comando universalmente reconocido "Obtener privilegios de superusuario" que se encuentra en todos los sistemas?
fuente

sudopuede estar incluido en la mayoría de las distribuciones, pero no todas configuran a cada usuario como capaz de ejecutarlo.La distribución más utilizada, Ubuntu, se utiliza
sudocomo método recomendado para convertirse en root (cuando se usa la línea de comandos: los usuarios que se adhieren a la GUI recibirán una solicitud de contraseña sin comprender ni preocuparse por lo que sucede debajo del capó). Otras distribuciones pueden o no alentar la configuración de sudo y pueden o no enviarlo. Por otro lado,suestá disponible en todas partes y se puede usar en la mayoría de los sistemas, excepto en aquellos donde solosudoestá disponible porque el usuario no tendrá la contraseña de root.Entre
suysudo, cubrirá a casi todos sus usuarios. La exótica pocos que necesitancalifeoopopfexecsabe qué hacer ya. Incluso si no lo hacen, un sistema que no utilizasunisudoes probable que tenga archivos en lugares desconocidos y suficientes cosas en las que no haya pensado que sus instrucciones probablemente no funcionarán de todos modos.fuente
Para responder a su pregunta, más exactamente, no
sudono se considera universal. A decir verdad, todo el concepto de 'universal' es a menudo una pista falsa. Esto es especialmente cierto con respecto a la compatibilidad de distribución cruzada. Una vez que te lanzas a la multitud de diferentes versiones de software, la universalidad se vuelve poco realista. El guión por naturaleza es pragmático, si fuera pedante, escribir guiones portátiles sería prácticamente imposible.Normalmente calculo mi entorno de ejecución previsto, una distribución de Linux semi-moderna, espero un shell POSIX con las utilidades GNU comunes. Para los scripts que podrían ejecutarse fuera de Linux, solo espero el estándar POSIX completo. Obviamente, muchos scripts son específicos de Linux, o específicos de la distribución, por lo que a menudo se reduce el alcance de la portabilidad.
Para abordar su caso específico de secuencias de comandos,
ese script pegado es un complemento de shell POSIX, siempre escribo Dash compatible.
fuente
sudoser instalado. Requiere la ejecución del superusuario y puede usarsesudosi está disponible. Sisudono está disponible, el script debe ejecutarse como usuario root, o lo harádie.sudo -l. Desafortunadamente, es inutilizable en esta situación, ya que puede requerir la entrada de contraseña. Pensando en esto más cuidadosamente, en realidad creo que todo el concepto podría lograrse mejor a través de una prueba por distribución. Usar asu -cmenos que se ejecute unasudistribución deshabilitada predeterminada, en cuyo caso usarsudo su -c. Como otros han mencionado, es mejor dejar la elevación del superusuario al usuario, consideraría que cualquier scrip-around es conveniente.sudo. Esto debería ejecutar correctamente en la mayoría de distribuciones, en el supuesto defectosu/sudoconfiguraciones. Sé que un Ubuntu obsoleto, prelsb_release, necesitaría ser abordado ... Pero esto realmente es solo un ejemplo, y obviamente podría extenderse.