El sudoarchivo de servicio existe para garantizar que los privilegios solicitados no permanezcan después de un reinicio. Básicamente garantiza que después de reiniciar, los usuarios normales que solicitaron permisos de root permanecerán como usuarios normales.
Una explicación detallada sobre sudo
Toda la explicación a continuación es obtener toda la información para todos los que leen esta pregunta y luego explicar qué está haciendo allí el archivo sudo en la carpeta de servicio.
Cuando instala Ubuntu o cualquier otra distribución que use sudola diferencia entre ser root y ser un usuario que usa sudopara obtener privilegios de "root like" (privilegios administrativos o de superusuario) es lo siguiente:
Como raíz
- No se le solicita una contraseña para cada uno o todos los comandos que ejecuta en una sesión
- No todos los comandos que ejecutas se registrarán de forma predeterminada
- El sistema supone que sabe lo que está haciendo (Razón por la cual no solicita una contraseña cada vez que ejecuta un comando)
- No hay una segunda oportunidad o una opción de último minuto si comete un error
Como sudo
- Se le solicita una contraseña para cada uno o todos los comandos que ejecuta en una sesión. Por ejemplo, si abre un terminal y ejecuta un comando que necesita privilegios administrativos, le pedirá la contraseña una vez para esa sesión hasta que cierre el terminal o cierre la sesión. Esto varía según el comando que use y dónde. Puede preguntar una o varias veces.
- Todos los comandos que ejecute se registrarán ya que en realidad está solicitando permiso para usar un comando privilegiado de superusuario.
- El sistema asume que está solicitando permiso temporalmente y el derecho administrativo se prestará temporalmente (hasta que cierre la sesión, cierre la terminal, etc.)
- Tiene una opción de último minuto para corregir cualquier error. Esto se realiza en el momento en que se le solicita la contraseña.
¿Por qué se creó SUDO?
La creación de SUDO se realizó porque en el pasado, el uso de root creaba más problemas que soluciones. Los usuarios tenían todos los derechos, lo que significaba que si lo hicieron una pequeña limpieza de primavera y literalmente borrados del /usr, /liby /bincarpetas (porque pensaban que no les falta) .. adivinar lo que sucedería. Muchos problemas en el pasado se debían a que los usuarios no sabían el poder que tenían al usar root. Básicamente tenían root pero no entendían Linux, la jerarquía del sistema de archivos, qué archivos eran importantes, etc. (Algo así como tener un ferrari y no saber conducir ... ¡en una autopista!)
SUDO también es utilizado por aplicaciones GUI (como Update Manager) cuando necesitan privilegios administrativos temporales para hacer algo. Solo lo necesitan para una cantidad específica de comandos (normalmente 1) y luego vuelven al privilegio de nivel de usuario. Esto es para evitar tener privilegios de root todo el tiempo y evitar cometer un error si el usuario decide eliminar alguna parte importante del sistema.
Además, proporciona una mejor seguridad porque el usuario raíz viene deshabilitado de forma predeterminada.
Por último, si tiene una PC de escritorio o un servidor, realmente no quiere que todos sean root, ni que tenga todos los privilegios de administrador. Muy mala idea si tu hermanita o hermanitos comienzan a preguntarse qué sucedería si /bootcumpliera con la DELllave. Aquí es donde sudoentra para disminuir la posibilidad de que algo malo suceda.
¿Qué significa proporcionar privilegios limitados de superusuario a usuarios específicos ?
Los usuarios de sudo o sudoers en realidad tienen un archivo de configuración que les dice cuán limitado o abierto es el comando sudo para un usuario específico. El archivo /etc/sudoerstiene toda la información para limitar o dar acceso a un usuario de sudo. Por defecto viene con acceso a todo, pero puede configurarlo o limitarlo como lo desee.
Para obtener información sobre cómo usar el tipo de archivo sudoers man sudoersen una terminal. Por ejemplo, el formato normal es:
ANFITRIÓN DE USUARIO = COMANDOS
Por ejemplo, cyrex server1 = /bin/lsle dará al usuario cyrex en el servidor host1 acceso para ejecutar el comando ls.
Por ejemplo, cyrex server1 (root) = /bin/lsle dará al usuario cyrex en el servidor host1 acceso para ejecutar el comando ls como root.
Por ejemplo, cyrex ALL = /bin/lsle dará al usuario cyrex en todos los hosts acceso para ejecutar el comando ls.
Por ejemplo, cyrex ALL = ALLle dará al usuario cyrex en todos los hosts acceso para ejecutar todos los comandos.
Por ejemplo luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall, me permitirá ejecutar sudo para los comandos killy killallcomo root sin pedir una contraseña.
