Hasta donde yo sé y parece que otras personas tienen la misma opinión, sudo
es un comando que ejecuta algo con privilegios administrativos.
Sin embargo, cuando corro rcconf
puedo ver esta línea:
[*] sudo Provide limited super user privileges to specific users
Entonces, ¿qué sentido tiene este servicio? ¿O es esto incluso un servicio?
Respuestas:
Respuesta corta
Para revocar las acciones de autenticación "en caché" de los usuarios al reiniciar. No es un demonio, solo un script ejecutado en el momento del arranque.
Respuesta extensa
Al inspeccionar el archivo de inicio
/etc/init.d/sudo
que 'inicia el servicio', puede ver fácilmente lo que está haciendo:Entonces, básicamente, solo toca algunos archivos
/var/lib/sudo
al inicio del sistema para tener una marca de tiempo de modificación muy antigua. Como resultado, las acciones de autenticación otorgadas 'en caché' se revocan al inicio del servicio (que ocurre en el arranque).¿Algún detalle más sobre el
/var/lib/sudo
directorio y esas marcas de tiempo, por favor? Bueno, desde el mapage desudo(8)
:fuente
El
sudo
archivo 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
sudo
la diferencia entre ser root y ser un usuario que usasudo
para obtener privilegios de "root like" (privilegios administrativos o de superusuario) es lo siguiente:Como raíz
Como sudo
¿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
,/lib
y/bin
carpetas (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
/boot
cumpliera con la DELllave. Aquí es dondesudo
entra 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/sudoers
tiene 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 sudoers
en una terminal. Por ejemplo, el formato normal es:ANFITRIÓN DE USUARIO = COMANDOS
Por ejemplo,
cyrex server1 = /bin/ls
le dará al usuario cyrex en el servidor host1 acceso para ejecutar el comando ls.Por ejemplo,
cyrex server1 (root) = /bin/ls
le dará al usuario cyrex en el servidor host1 acceso para ejecutar el comando ls como root.Por ejemplo,
cyrex ALL = /bin/ls
le dará al usuario cyrex en todos los hosts acceso para ejecutar el comando ls.Por ejemplo,
cyrex ALL = ALL
le 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 comandoskill
ykillall
como root sin pedir una contraseña.fuente
!!
operador bang bang, pero ¿qué hace el servicio (NO el comando)sudo
? Sería genial si pudiera actualizar su respuesta para realmente responder la pregunta.