En una configuración típica, el comando es irrelevante. Debe ingresar su contraseña la primera vez que usa sudo, y no necesita su contraseña en ese shell en particular durante los próximos 15 minutos.
Desde la perspectiva de la computadora, no existe tal cosa como un "comando que necesita sudo". Cualquier usuario puede intentar ejecutar cualquier comando. El resultado puede ser un mensaje de error como "Permiso denegado" o "No existe dicho archivo o directorio", pero siempre es posible ejecutar el comando.
Por ejemplo, si se ejecuta du
en un árbol de directorios que tiene contenido para el que no tiene permiso de acceso, obtendrá errores de permiso. Eso es lo que significa "permiso denegado". Si ejecuta sudo du
, sudo se ejecuta du
como root, por lo que no obtiene errores de permiso (ese es el punto de la cuenta raíz: root¹ siempre tiene permiso). Cuando ejecuta sudo du
, se du
ejecuta como root y sudo
no está involucrado en absoluto después de du
haber comenzado. Si du encuentra errores de permiso es completamente irrelevante para la forma en que opera sudo.
Hay comandos que necesitan sudo para hacer algo útil . La utilidad es un concepto humano. Debe usar sudo (u otros métodos para ejecutar el comando como root) si el comando hace algo útil cuando se ejecuta como root pero no cuando se ejecuta en su cuenta.
Si sudo le pide su contraseña depende de dos cosas.
- Según la configuración, sudo decide si necesita ser autenticado. Por defecto, sudo requiere una contraseña. Esto se puede desactivar de varias maneras, incluida la configuración de la
authenticate
opción en falso y tener una regla aplicable con la NOPASSWD
etiqueta.
- Si sudo requiere su contraseña, puede ser contenido usar un valor en caché. Eso está bien porque la razón por la cual sudo necesita su contraseña no es para autenticar quién la está llamando (sudo sabe qué usuario la invocó), sino para confirmar que sigue siendo usted quien está en los comandos y no alguien que tomó el control de su teclado. De manera predeterminada, sudo está dispuesto a creer que todavía está en los comandos si ingresó su contraseña hace menos de 15 minutos (esto se puede cambiar con la
timeout
opción). Debe haber ingresado la contraseña en la misma terminal (de modo que si permanece conectado en una terminal, deje esa terminal desatendida y luego use otra terminal, alguien puede "tty_tickets
¹ casi, pero eso está más allá del alcance de este hilo.